ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ²

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

НСпрСмСнным условиСм ΠΈ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ смыслом Π·Π°Π΄Π°Ρ‡ΠΈ коммивояТёра являСтся поиск самого Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΏΡ€ΠΈ любом ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² способов поиска Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Если ΠΌΡ‹ Π½Π΅ ΠΏΡ€ΠΎΡΡ‡ΠΈΡ‚Π°Π»ΠΈ всС ΠΏΡƒΡ‚ΠΈ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ самоС Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ΅. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ? — ΡΡ‚ΠΎ поиск ошибки Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ² (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ ΠΎΡΠΎΠ±ΡƒΡŽ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»ΠΈ Ρ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… устройств, Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ связи ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… машин. Π‘Π°Π·ΠΎΠΉ для прСподавания этих дисциплин наряду с ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… физичСских ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ стали алгСбраичСскиС, логичСскиС ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ исслСдования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ дискрСтной ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ возросла ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² — Π²Π΅Ρ‚Π²ΠΈ дискрСтной ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π“Ρ€Π°Ρ„Ρ‹ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… областях ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ названиями: «ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹» Π² Π³Ρ€Π°ΠΆΠ΄Π°Π½ΡΠΊΠΎΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π΅, «ΡΠ΅Ρ‚ΠΈ» — Π² ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΈΠΊΠ΅, «ΡΠΎΡ†ΠΈΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹» — Π² ΡΠΎΡ†ΠΈΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ΅, «ΠΌΠΎΠ»Π΅ΠΊΡƒΠ»ΡΡ€Π½Ρ‹Π΅ структуры» — Π² Ρ…ΠΈΠΌΠΈΠΈ, «Π΄ΠΎΡ€ΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹», элСктричСскиС ΠΈΠ»ΠΈ Π³Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСти ΠΈ Ρ‚. Π΄.

Родившись ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΎΠΊ ΠΈ ΠΈΠ³Ρ€, Ρ‚Π°ΠΊΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Π° ΠΎ ΠΊΠ΅Π½ΠΈΠ³ΡΠ±Π΅Ρ€Π³ΡΠΊΠΈΡ… мостах ΠΈ ΠΈΠ³Ρ€Π° Π“Π°ΠΌΠΈΠ»ΡŒΡ‚ΠΎΠ½Π°, тСория Π³Ρ€Π°Ρ„ΠΎΠ² стала ΠΌΠΎΡ‰Π½Ρ‹ΠΌ срСдством исслСдования ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ ΡΠ»ΠΎΠΆΠ½Ρ‹Ρ… систСм. Для спСциалистов ΠΏΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ°ΠΌ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ связи тСория Π³Ρ€Π°Ρ„ΠΎΠ² — это ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ язык выраТСния понятий ΠΈΠ· ΡΡ‚ΠΎΠΉ области; ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ связь с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠΌ ΠΏΡ€ΠΈΡ…одится ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ. ГрафичСская интСрпрСтация Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π³Ρ€Π°Ρ„ΠΎΠ² Π΄Π°Π½Π° Π½Π° Рис. 1.1 Π±. Π’Π°ΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ — Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ схСму. На Ρ‚Π°ΠΊΠΈΡ… Π³Ρ€Π°Ρ„ΠΎΠ²Ρ‹Ρ… модСлях ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ быстродСйствиС схСмы. Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна вСроятностным Π³Ρ€Π°Ρ„ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ характСристики Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π“Ρ€Π°Ρ„ΠΎΠΌ Ρ‚ΠΈΠΏΠ° «Π΄Π΅Ρ€Π΅Π²ΠΎ» ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ практичСски Π»ΡŽΠ±ΡƒΡŽ структуру ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ прСдприятия.

Π¨ΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ тСория Π³Ρ€Π°Ρ„ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° ΠΏΡ€ΠΈ исслСдовании Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΈ конструировании Π±ΠΎΠ»ΡŒΡˆΠΈΡ… систСм ΠΊΠ°ΠΊ тСхничСских, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ компиляторы.

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… этих исслСдований Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΠ΅, нСизвСстныС Ρ€Π°Π½Π΅Π΅ Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΠΊΠΎ-Π³Ρ€Π°Ρ„ΠΎΠ²Ρ‹Π΅ понятия. ВСория Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для спСциалистов Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ проСктирования для построСния эффСктивных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΡ… ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ. ИспользованиС Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π° Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² ΠΎΠΊΠ°Π·Π°Π»ΠΎ сущСствСнноС влияниС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² конструкторского проСктирования схСм. НСпосрСдствСнноС ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС практичСских систСм, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСти, систСмы связи, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π³Ρ€Π°Ρ„Π°ΠΌ большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит Π² Ρ€Π°Π²Π½ΠΎΠΉ стСпСни, ΠΊΠ°ΠΊ ΠΎΡ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Π½Π°ΡΡ‚оящСС врСмя основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ сосрСдоточСно Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π° Π³Ρ€Π°Ρ„ΠΎΠ². Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ основной ΡƒΠΏΠΎΡ€ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ пособии дСлаСтся Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ способы прСдставлСния Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π½Π° Π­Π’Πœ.

1. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия

Для описания строСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСм, состоящих ΠΈΠ· ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой элСмСнтов, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ графичСскиС схСмы, изобраТая элСмСнты Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ (ΠΊΡ€ΡƒΠΆΠΊΠ°ΠΌΠΈ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ Ρ‚. Π΄.), Π° ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ — линиями ΠΈΠ»ΠΈ стрСлками, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΌΠΈ элСмСнты. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ€ΠΎΠ΄Π΅ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° Ρ€ΠΈΡ. 1.1. На Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½ΠΈ ΡΠΏΠΎΡΠΎΠ± изобраТСния элСмСнтов, Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΉ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ значСния — Π²Π°ΠΆΠ½ΠΎ лишь, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ°Ρ€Ρ‹ элСмСнтов соСдинСны линиями. Однако, эту ΠΆΠ΅ структуру ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈ Π±Π΅Π· графичСского изобраТСния, Π° ΠΏΡ€ΠΎΡΡ‚ΠΎ пСрСчислив ΠΏΠ°Ρ€Ρ‹ связанных ΠΌΠ΅ΠΆΠ΄Ρƒ собой элСмСнтов: (1,4), (4,5), (5,3), (3,2), (2,1), (1,3). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π²Π° списка: список элСмСнтов ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°Ρ€ элСмСнтов. ВмСстС ΠΎΠ½ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ матСматичСски Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «Π³Ρ€Π°Ρ„ΠΎΠΌ». Π“Ρ€Π°Ρ„ состоит ΠΈΠ· Π΄Π²ΡƒΡ… мноТСств — мноТСства Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Ρ€Π΅Π±Π΅Ρ€, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅Π±Ρ€Π° ΡƒΠΊΠ°Π·Π°Π½Π° ΠΏΠ°Ρ€Π° Π²Π΅Ρ€ΡˆΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ это Ρ€Π΅Π±Ρ€ΠΎ соСдиняСт.

Π’ Π»ΠΈΡΡ‚ΠΈΠ½Π³Π΅ 1 приводится ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° (Рис. 1.1 Π²) Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ python с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ NetworkX ΠΈ matplotLib.

Листинг 1.

try:

import matplotlib. pyplot as plt

except:

raise

import networkx as nx

G=nx.cycle_graph (24)

pos=nx.spring_layout (G, iterations=200)

nx.draw (G, pos, node_color=range (24), node_size=800, cmap=plt.cm. Blues)

plt.show () # display

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ понятиС ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΈΠ»ΠΈ ΠΎΡ€Π³Ρ€Π°Ρ„. Π­Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„, Ρ€Π΅Π±Ρ€Π°ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ присвоСно Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. НаправлСнныС Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΡƒΠ³Π°ΠΌΠΈ ΠΈΠ»ΠΈ просто Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° Рис. 1.1 Π³. ΠΏΠ°Ρ€Π° Π²Π΅Ρ€ΡˆΠΈΠ½ (4, 5) ΠΈ (5, 4) Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π΅Π±Ρ€ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡ… ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Для ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ² Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ понятия:

— Ρ€Π΅Π±Ρ€ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ, Ссли ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊ ΡΡ‚ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Π΅, ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, Ссли ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΡ‚ ΡΡ‚ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹;

— Π²Ρ…одящая ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ — это число входящих Π² Π½Π΅Π΅ Ρ€Π΅Π±Π΅Ρ€;

— ΠΈΡΡ…одящая (ΠΈΠ»ΠΈ выходящая) ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ — это число выходящих ΠΈΠ· Π½Π΅Π΅ Ρ€Π΅Π±Π΅Ρ€;

— ΠΏΡƒΡ‚ΡŒ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ A Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ B — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π±Π΅Ρ€ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΉΡ‚ΠΈ ΠΈΠ· A Π² B; Π΄Π»ΠΈΠ½Π° ΠΏΡƒΡ‚ΠΈ опрСдСляСтся, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ (число Ρ€Π΅Π±Π΅Ρ€); простой ΠΏΡƒΡ‚ΡŒ — ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΡƒΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ (ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ€Π΅Π±Ρ€Π°) Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ;

— ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» — это Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ простой ΠΏΡƒΡ‚ΡŒ Π² ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅;

— ΡΠΈΠ»ΡŒΠ½ΠΎ связный ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ — это ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„, Π³Π΄Π΅ ΠΈΠ· Π»ΡŽΠ±ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π² Π»ΡŽΠ±ΡƒΡŽ Π΅ΡΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ (для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½ A ΠΈ B Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡƒΡ‚ΡŒ ΠΈΠ· A Π² B, Ρ‚Π°ΠΊ ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΈΠ· B Π² A);

— ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° сильной связности — это Ρ‡Π°ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„Π°, которая сама ΠΏΠΎ ΡΠ΅Π±Π΅ сильно связна, Π½ΠΎ Π΅Π΅ Π½Π΅Π»ΡŒΠ·Ρ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΎΡΡ‚Π°Π»Π°ΡΡŒ сильно связной; ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ сильной связности ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π±Ρ€Π°, Π½ΠΎ Π²ΡΠ΅ Ρ€Π΅Π±Ρ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ сторону;

— ΡΠΌΠ΅ΠΆΠ½Ρ‹Π΅ Ρ€Π΅Π±Ρ€Π° — Ρ€Π΅Π±Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅Π²ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ.

Π’Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ся ΠΊΠΎΠ½Ρ†Π΅Π²Ρ‹ΠΌΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ (ΠΈΠ»ΠΈ просто ΠΊΠΎΠ½Ρ†Π°ΠΌΠΈ) Ρ€Π΅Π±Ρ€Π° .

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌ Ρ€Π΅Π±Ρ€ΠΎ e Π² Ρ‚Π°ΠΊΠΎΠΌ случаС называСтся ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹ΠΌ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π Π΅Π±Ρ€ΠΎ, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, соСдиняСт эти Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. Π”Π²Π΅ ΠΊΠΎΠ½Ρ†Π΅Π²Ρ‹Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π΅Π±Ρ€Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ сосСдними.

Однако, сущСствуСт ΠΈ Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π²Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ Π΄Π²Π° Ρ€Π΅Π±Ρ€Π°. Если Π² Π³Ρ€Π°Ρ„Π΅ сущСствуСт Ρ‚Π°ΠΊΠΎΠ΅ соСдинСниС, Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΡΡ‚, Ρ‡Ρ‚ΠΎ Π² Π³Ρ€Π°Ρ„Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π±Ρ€Π°. Π“Ρ€Π°Ρ„ с ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ³Ρ€Π°Ρ„ΠΎΠΌ.

Π’Π°ΠΊΠΆΠ΅, Ρ€Π΅Π±Ρ€ΠΎ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ с ΡΠΎΠ±ΠΎΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Π±Ρ€ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ΅Ρ‚Π»Π΅ΠΉ.

ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡ Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ опрСдСлСния понятия Π³Ρ€Π°Ρ„Π°. Π§Π°Ρ‰Π΅ всСго Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π³Ρ€Π°Ρ„Ρ‹ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π³Ρ€Π°Ρ„Ρ‹ Π±Π΅Π· ΠΏΠ΅Ρ‚Π΅Π»ΡŒ ΠΈ ΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… Ρ€Π΅Π±Π΅Ρ€. Π’Π°ΠΊΠΈΠ΅ Π³Ρ€Π°Ρ„Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌ Π³Ρ€Π°Ρ„ΠΎΠΌ.

ΠŸΠΎΠ΄Π³Ρ€Π°Ρ„ΠΎΠΌ Π³Ρ€Π°Ρ„Π° G Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся Π³Ρ€Π°Ρ„, всС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈ Π΄ΡƒΠ³ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТатся срСди Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ Π΄ΡƒΠ³ Π³Ρ€Π°Ρ„Π° G. Всякий ΠΏΠΎΠ΄Π³Ρ€Π°Ρ„ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΏΡƒΡ‚Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈΠ»ΠΈ Ρ€Π΅Π±Π΅Ρ€.

Π‘Π°ΠΌ Π³Ρ€Π°Ρ„ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΡΠ²ΠΎΠΈΠΌ ΠΏΠΎΠ΄Π³Ρ€Π°Ρ„Π°ΠΌ называСтся Π½Π°Π΄Π³Ρ€Π°Ρ„ΠΎΠΌ (суграфом ΠΈΠ»ΠΈ супСрграфом). На Рис. 1.2 прСдставлСн ΠΏΠΎΠ΄Π³Ρ€Π°Ρ„ Π³Ρ€Π°Ρ„Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ (Рис. 1.1 Π³.).

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π³Ρ€Π°Ρ„ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ понятиС пустой Π³Ρ€Π°Ρ„, Π³Ρ€Π°Ρ„, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅Π±Π΅Ρ€ ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½.

ΠŸΠΎΠ»Π½Ρ‹ΠΌ называСтся Π³Ρ€Π°Ρ„, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π²Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ смСТны.

2. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΎΠ²

ВСория Π³Ρ€Π°Ρ„ΠΎΠ² Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π³Π΅ΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах (Π“Π˜Π‘). Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ»ΠΈ вновь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π΄ΠΎΠΌΠ°, сооруТСния, ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Ρ‹ ΠΈ Ρ‚. ΠΏ. Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, Π° ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡ… Π΄ΠΎΡ€ΠΎΠ³ΠΈ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Π΅ сСти, Π»ΠΈΠ½ΠΈΠΈ элСктропСрСдачи ΠΈ Ρ‚. ΠΏ. — ΠΊΠ°ΠΊ Ρ€Ρ‘Π±Ρ€Π°. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вычислСний, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Π³Ρ€Π°Ρ„Π΅, позволяСт, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΉΡ‚ΠΈ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ объСздной ΠΏΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ блиТайший ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΌΠ°Π³Π°Π·ΠΈΠ½, ΡΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚.

ВСория Π³Ρ€Π°Ρ„ΠΎΠ² содСрТит большоС количСство Π½Π΅Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π³ΠΈΠΏΠΎΡ‚Π΅Π·.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ сфСры примСнСния Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ²:

— Π’ Ρ…ΠΈΠΌΠΈΠΈ (для описания структур, ΠΏΡƒΡ‚Π΅ΠΉ слоТных Ρ€Π΅Π°ΠΊΡ†ΠΈΠΉ, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ„Π°Π· Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Π° Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ²); ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ химия — ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ молодая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ…ΠΈΠΌΠΈΠΈ, основанная Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ². ВСория Π³Ρ€Π°Ρ„ΠΎΠ² прСдставляСт собой ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ основу Ρ…Π΅ΠΌΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ВСория Π³Ρ€Π°Ρ„ΠΎΠ² позволяСт Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ число тСорСтичСски Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΠ·ΠΎΠΌΠ΅Ρ€ΠΎΠ² Ρƒ ΡƒΠ³Π»Π΅Π²ΠΎΠ΄ΠΎΡ€ΠΎΠ΄ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… органичСских соСдинСний;

— Π’ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (Π³Ρ€Π°Ρ„-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°);

— Π’ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΈ Ρ‚ранспортных систСмах. Π’ Ρ‡Π°ΡΡ‚ности, для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅;

— Π’ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ΅;

— Π’ Π»ΠΎΠ³ΠΈΡΡ‚ΠΈΠΊΠ΅;

— Π’ ΡΡ…Π΅ΠΌΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ (топология мСТсоСдинСний элСмСнтов Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠ»ΠΈ микросхСмС прСдставляСт собой Π³Ρ€Π°Ρ„ ΠΈΠ»ΠΈ Π³ΠΈΠΏΠ΅Ρ€Π³Ρ€Π°Ρ„).

Π’Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ особый Π²ΠΈΠ΄ Π³Ρ€Π°Ρ„Π°, Π΄Π΅Ρ€Π΅Π²ΠΎ. Π”Π΅Ρ€Π΅Π²ΠΎ — это связный ацикличСский Π³Ρ€Π°Ρ„. Π‘Π²ΡΠ·Π½ΠΎΡΡ‚ΡŒ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡƒΡ‚Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ любой ΠΏΠ°Ρ€ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½, Π°Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ — отсутствиС Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½ имССтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ. На Рис. 1.3 прСдставлСно Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ.

Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ — дрСвовидная структура Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² (Π΄Π΅Ρ‚Π΅ΠΉ). Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ называСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΡƒΠ·Π»ΠΎΠΌ, Π° Π΄Π΅Ρ‚ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π»Π΅Π²Ρ‹ΠΌ ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΌ наслСдниками.

3. ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ²

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ алгоритмичСских ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρƒ свойств Π³Ρ€Π°Ρ„ΠΎΠ² Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… способов описания Π³Ρ€Π°Ρ„ΠΎΠ², Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Ρ… для практичСских вычислСний, Π² Ρ‚ΠΎΠΌ числС с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π­Π’Πœ. Рассмотрим Ρ‚Ρ€ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных способа прСдставлСния Π³Ρ€Π°Ρ„ΠΎΠ².

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈ Π²ΡΠ΅ Ρ€Π΅Π±Ρ€Π° Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° ΠΈΠ»ΠΈ всС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈ Π²ΡΠ΅ Π΄ΡƒΠ³ΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ΅Ρ‚Π»ΠΈ) ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹ начиная с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π“Ρ€Π°Ρ„ (Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ‚ΠΈΠΏΠ°, Π³Π΄Π΅ — число Π²Π΅Ρ€ΡˆΠΈΠ½, Π° — число Ρ€Π΅Π±Π΅Ρ€ (ΠΈΠ»ΠΈ Π΄ΡƒΠ³). Для Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° элСмСнты этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Для ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ:

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ‚ΠΈΠΏΠ°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ получСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ. Для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ Π³Ρ€Π°Ρ„Π° (Рис. 2.1 Π°) ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, прСдставлСнная Π½Π° (Рис. 2.1 Π±).

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ прСдставлСниС Π³Ρ€Π°Ρ„Π° Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ ΠΈΠ³Ρ€Π°Π΅Ρ‚ вСсьма Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ‚СорСтичСских исслСдованиях, практичСски этот способ вСсьма нСэффСктивСн. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ столбцС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… элСмСнта, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ этот способ прСдставлСния Π³Ρ€Π°Ρ„Π° нСэкономным ΠΏΡ€ΠΈ большом количСствС Π²Π΅Ρ€ΡˆΠΈΠ½. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ практичСских Π·Π°Π΄Π°Ρ‡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ вСсьма Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎ.

ΠžΡ†Π΅Π½ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ Ρ‚Π°ΠΊΠΎΠΉ простой Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅: для Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π΅Π΅ «ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅» — мноТСство ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠ² Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, Ρ‚. Π΅. мноТСство всСх Π²Π΅Ρ€ΡˆΠΈΠ½, нСпосрСдствСнно достиТимых ΠΈΠ·, ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ всСх Π²Π΅Ρ€ΡˆΠΈΠ½, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½Π° нСпосрСдствСнно достиТима.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ΅ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ элСмСнта (+1 ΠΈΠ»ΠΈ -1). Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Ссли ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° +1, Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ столбцС Π½Π°Π΄ΠΎ Π½Π°ΠΉΡ‚ΠΈ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ записано число -1. НомСр строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стоит это число, Π΄Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, нСпосрСдствСнно достиТимой ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. Если ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° -1, Π² ΡΡ‚ΠΎΠ»Π±Ρ†Π΅ Π½Π°Π΄ΠΎ Π½Π°ΠΉΡ‚ΠΈ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ записана 1, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ нСпосрСдствСнно достиТима данная Π²Π΅Ρ€ΡˆΠΈΠ½Π°. Для получСния всСго «ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ» Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ поиск для всСх Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… элСмСнтов k-ΠΉ строки. НаиболСС Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ являСтся поиск Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ элСмСнта Π² ΡΡ‚ΠΎΠ»Π±Ρ†Π΅. Число Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ поиска Ρ€Π°Π²Π½ΠΎ стСпСни Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. Π‘ΡƒΠ΄Π΅ΠΌ Π² ΡΡ‚ΠΎΠΌ случаС Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° окруТСния Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ составляСт (порядка).

МоТно ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ поиск «ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ» всСх Π²Π΅Ρ€ΡˆΠΈΠ½ Π·Π°ΠΉΠΌΠ΅Ρ‚ врСмя порядка произвСдСния числа Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° Π½Π° ΡΡƒΠΌΠΌΡƒ стСпСнСй всСх Π²Π΅Ρ€ΡˆΠΈΠ½, которая, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π° числу Π΄ΡƒΠ³ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска «ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ» составляСт, Ρ‚. Π΅. поиск Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ врСмя порядка произвСдСния числа Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ Π΄ΡƒΠ³.

Π‘ΠΎΠ»Π΅Π΅ эффСктивной ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΉ структурой, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°Ρ„, слуТит ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности Π²Π΅Ρ€ΡˆΠΈΠ½, ΠΈΠ»ΠΈ Π±ΡƒΠ»Π΅Π²Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π³Ρ€Π°Ρ„Π°. Π­Ρ‚ΠΎ квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π’ ΠΏΠΎΡ€ΡΠ΄ΠΊΠ° n, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

для Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π°:

для ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π°:

Для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ Π³Ρ€Π°Ρ„Π° (Рис. 2.2 Π°) ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, прСдставлСнная Π½Π° (Рис. 2.2 Π±).

Рис. 2.2 Π°

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·Ρ€Π΅Π·ΠΎΠ².

Рассмотрим ΠΎΡ€Π³Ρ€Π°Ρ„. Если — нСпустоС подмноТСство мноТСства, Ρ‚ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π΄ΡƒΠ³, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΡ… Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, являСтся Ρ€Π°Π·Ρ€Π΅Π·ΠΎΠΌ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹ΠΌ. ΠžΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΊ Π²Π΅Ρ€ΡˆΠΈΠ½Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Допустим, ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΎΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΊ Π²Π΅Ρ€ΡˆΠΈΠ½Π΅. Π’ΠΎΠ³Π΄Π° говорят, Ρ‡Ρ‚ΠΎ ориСнтация Π΄ΡƒΠ³ΠΈ ΠΈΠ· ΡΠΎΠΎΡ‚вСтствуСт ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π΅Π·Π°, Ссли Π΄ΡƒΠ³Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΎΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈΠ· Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ ΠΈΠ·.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·Ρ€Π΅Π·ΠΎΠ² Π³Ρ€Π°Ρ„Π° с m Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ m столбцов ΠΈ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ строк, сколько Π² ΡΡ‚ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ имССтся Ρ€Π°Π·Ρ€Π΅Π·ΠΎΠ². Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Если Π³Ρ€Π°Ρ„ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ,

Если Π³Ρ€Π°Ρ„ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ,

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ Ρ€Π°Π·Ρ€Π΅Π·ΠΎΠ².

ЦикломатичСская ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

Π¦ΠΈΠΊΠ» Π² Π³Ρ€Π°Ρ„Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ: ΠΏΠΎ Ρ‡Π°ΡΠΎΠ²ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ² часовой стрСлки. НаправлСниС, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΠΎΠ΅ для ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ†ΠΈΠΊΠ»Π°, опрСдСляСт Π΅Π³ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

Рассмотрим Π΄ΡƒΠ³Ρƒ e с ΠΊΠΎΠ½Ρ†Π΅Π²Ρ‹ΠΌΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ ΠΊ ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ†ΠΈΠΊΠ» C. Π‘ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ориСнтация Π΄ΡƒΠ³ΠΈ e соотвСтствуСт ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°, Ссли Π²Π΅Ρ€ΡˆΠΈΠ½Π° встрСчаСтся ΠΏΡ€ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π΅ Ρ†ΠΈΠΊΠ»Π° C Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΅Π³ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ, Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. ЦикломатичСская ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π³Ρ€Π°Ρ„Π° G с m Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ m ΠΈ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ строк, сколько Ρ†ΠΈΠΊΠ»ΠΎΠ² имССтся Π² Π³Ρ€Π°Ρ„Π΅ G. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Если Π³Ρ€Π°Ρ„ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ,

Если Π³Ρ€Π°Ρ„ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ,

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠšΠΈΡ€Ρ…Π³ΠΎΡ„Π°

Π”Π°Π½ простой Π³Ρ€Π°Ρ„ с Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ. Π’ΠΎΠ³Π΄Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠšΠΈΡ€Ρ…Π³ΠΎΡ„Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’Π°ΠΊΠΆΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠšΠΈΡ€Ρ…Π³ΠΎΡ„Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π³Π΄Π΅ — это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π°, Π° — ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты — Π½ΡƒΠ»ΠΈ:

Если Π³Ρ€Π°Ρ„ являСтся Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΌ, Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠšΠΈΡ€Ρ…Π³ΠΎΡ„Π° обобщаСтся. Π’ ΡΡ‚ΠΎΠΌ случаС элСмСнтами Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠšΠΈΡ€Ρ…Π³ΠΎΡ„Π° Π±ΡƒΠ΄ΡƒΡ‚ суммы вСсов Ρ€Ρ‘Π±Π΅Ρ€, ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Π΅. Для смСТных (связанных) Π²Π΅Ρ€ΡˆΠΈΠ½, Π³Π΄Π΅ — это вСс (ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ) Ρ€Π΅Π±Ρ€Π°. Для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… нСсмСТных (нСсвязанных) Π²Π΅Ρ€ΡˆΠΈΠ½ полагаСтся .

Для взвСшСнного Π³Ρ€Π°Ρ„Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности записываСтся с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ проводимостСй Ρ€Π΅Π±Π΅Ρ€, Π° Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ суммы проводимостСй Ρ€Π΅Π±Π΅Ρ€ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠšΠΈΡ€Ρ…Π³ΠΎΡ„Π°.

4. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ свойства Π³Ρ€Π°Ρ„ΠΎΠ²

ΠŸΡƒΡΡ‚ΡŒ G — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ (n, m) — Π³Ρ€Π°Ρ„ с k ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ связности. Если G — Π½Π΅ Π»Π΅Ρ, Ρ‚ΠΎ Π² Π½Π΅ΠΌ (Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… связности) ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ†ΠΈΠΊΠ»Ρ‹. Рассмотрим ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ†ΠΈΠΊΠ» ΠΈ ΡƒΠ΄Π°Π»ΠΈΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π΅Π±Ρ€ΠΎ. ΠŸΡ€ΠΈ этом количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ связности Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ся. Если послС этого Π΅Ρ‰Π΅ останутся Ρ†ΠΈΠΊΠ»Ρ‹, Ρ‚ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈ ΡΠ½ΠΎΠ²Π° ΡƒΠ΄Π°Π»ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΅Π³ΠΎ Ρ€Π΅Π±Ρ€ΠΎ. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ этот процСсс Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΡ‡Π΅Π·Π½ΡƒΡ‚ всС Ρ†ΠΈΠΊΠ»Ρ‹. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ΄Π³Ρ€Π°Ρ„, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, являСтся лСсом ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ связности, ΠΊΠ°ΠΊ ΠΈ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ G, называСтся остовом Π³Ρ€Π°Ρ„Π° G.

Π’Π΅ΠΎΡ€Π΅ΠΌΠ°. Число Ρ€Π΅Π±Π΅Ρ€ Π³Ρ€Π°Ρ„Π° G, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ для получСния остова, Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ ΡΠΏΠΎΡΠΎΠ±Π° удалСния ΠΈ Ρ€Π°Π²Π½ΠΎ m-n+k.

Π’Π΅ΠΎΡ€Π΅ΠΌΠ° (ΠšΠΈΡ€Ρ…Π³ΠΎΡ„). Число остовов Π² ΡΠ²ΡΠ·Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ G порядка n>=2 Ρ€Π°Π²Π½ΠΎ алгСбраичСскому дополнСнию любого элСмСнта ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠšΠΈΡ€Ρ…Π³ΠΎΡ„Π° K(G) Π³Ρ€Π°Ρ„Π° G.

Π’Π΅ΠΎΡ€Π΅ΠΌΠ°. ΠžΡ€Π³Ρ€Π°Ρ„ сильно связСн, Ссли Π² Π½Π΅ΠΌ сущСствуСт основной цикличСский ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚.

5. РСшСниС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡

Алгоритм ДСйкстры.

Алгоритм ДСйкстры — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Ρ‘Π½Π½Ρ‹ΠΉ нидСрландским ΡƒΡ‡Π΅Π½Ρ‹ΠΌ Π­. ДСйкстрой Π² 1959 Π³ΠΎΠ΄Ρƒ. Находит ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π΅ расстояниС ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π° Π΄ΠΎ Π²ΡΠ΅Ρ… ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Алгоритм Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π³Ρ€Π°Ρ„ΠΎΠ² Π±Π΅Π· Ρ€Ρ‘Π±Π΅Ρ€ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ вСса. Алгоритм ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Ρ‚Схнологиях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ OSPF ΠΈ IS-IS.

Алгоритм ДСйкстры Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΎ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΡ… путях ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ для взвСшСнного ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° G = (V, E) с ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ s, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ вСса всСх Ρ€Ρ‘Π±Π΅Ρ€ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ((u, v)? 0 для всСх (u, v)E).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ. Поиск вСдСтся Π½Π° Π΄Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ (Рис. 3.1). ВСса ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π»ΠΈΠ½Π΅ Ρ€Π΅Π±Π΅Ρ€.

Листинг 2.

import networkx as nx

import matplotlib. pyplot as plt

G = nx. DiGraph () #ОбъявляСм ΠΎΡ€Π³Ρ€Π°Ρ„ G

G.add_nodes_from (range (1, 7)) #ДобавляСм Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° чисСл (1.7)

for i in range (1,10):

G.add_edge (i, i-1) #ДобавляСм Ρ€Π΅Π±Ρ€ΠΎ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ i Ρ i-1

for i in range (1,10):

if (i+5<10):

G.add_edge (i, i+5, weight = i*0.5+2)#УстанавливаСм вСса Π½Π° Ρ€Π΅Π±Ρ€Π°

nx.draw (G, node_color = 'm', font_color = 'w')

plt.show ()

print (nx.dijkstra_path (G, 2, 8)) #Поиск ΠΈ Π²Ρ‹Π²ΠΎΠ΄ массива Π²Π΅Ρ€ΡˆΠΈΠ½

# ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для нахоТдСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°. Поиск начинаСтся с Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ 2 ΠΈ ΠΈΠ΄Π΅Ρ‚ Π΄ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ 8.

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

[2, 1, 6, 5, 4, 3, 8]

Алгоритм поиска.

0. G — Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ с Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ. ВрСбуСтся Π½Π°ΠΉΡ‚ΠΈ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ s Π²ΠΎ Π²ΡΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π³Ρ€Π°Ρ„Π° G.

1. (Начало). ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ label(s) = 0, perm(s) = 1 ΠΈ pred(s) = s. Для всСх v <> s ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ label(v) = ?, perm(v) = 0, pred(v) = v.

2. ΠŸΡƒΡΡ‚ΡŒ i = 0 ΠΈ u = s. (u - послСдняя ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½ с Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ — это Π²Π΅Ρ€ΡˆΠΈΠ½Π° s.)

3. (ВычислСниС label ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ элСмСнтов массива pred). ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ i = i + 1. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½ с Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: 1) ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ M = min {label(v), label(u) + w (u, v)}. 2) Если M<label(v), Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ label(v) = M ΠΈ pred(v) = u.

4. (Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½ ui.) Π‘Ρ€Π΅Π΄ΠΈ всСх Π²Π΅Ρ€ΡˆΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, Π½Π°ΠΉΡ‚ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ w с Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. (Если Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ€ΡˆΠΈΠ½ нСсколько, Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ.) ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ perm(w) = 1 ΠΈ ui = w (ui = w, ΠΈ ΠΎΠ½Π° являСтся послСднСй Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ с Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ.)

5. Если i < n — 1, Ρ‚ΠΎ ΠΈΠ΄Ρ‚ΠΈ ΠΊ ΡˆΠ°Π³Ρƒ 3. Π˜Π½Π°Ρ‡Π΅ halt. (ВсС ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹). ΠœΠ΅Ρ‚ΠΊΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π΄Π»ΠΈΠ½Ρ‹ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΡ… ΠΏΡƒΡ‚Π΅ΠΉ. v, pred(v), pred (pred(v)), …, s Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ s-v - ΠΏΡƒΡ‚ΠΈ.

Π—Π΄Π΅ΡΡŒ label — это массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½. Π’Π΅Ρ€ΡˆΠΈΠ½Ρ‹ становятся постоянно ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ ui для ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ i. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ массив perm, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ постоянно ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹. Если perm(v) = 1, Ρ‚ΠΎ v являСтся постоянно ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠ΅Ρ‚ΠΊΠ° v Ρ€Π°Π²Π½Π° d (s, v). Π’Π½Π°Ρ‡Π°Π»Π΅ perm(s) = 1 ΠΈ perm(v) = 0 для всСх v<>s.

Pred - массив ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… осущСствлСн ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ с Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, Ρ‚ΠΎ v, pred(v), pred (pred(v)), …, s Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈΠ· s Π² v.

Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ коммивояТСра.

Π—Π°Π΄Π°Ρ‡Π° коммивояТСра

Π—Π°Π΄Π°Ρ‡Π° коммивояТёра (Π°Π½Π³Π». Travelling salesman problem, TSP) (коммивояТёр — ΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π΅Ρ†) — ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… извСстных Π·Π°Π΄Π°Ρ‡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°ΡΡΡ Π² ΠΎΡ‚ыскании самого Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°, проходящСго Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π³ΠΎΡ€ΠΎΠ΄Π° хотя Π±Ρ‹ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ€Π°Π·Ρƒ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ Π² ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Π³ΠΎΡ€ΠΎΠ΄. Π’ ΡƒΡΠ»ΠΎΠ²ΠΈΡΡ… Π·Π°Π΄Π°Ρ‡ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ выгодности ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° (ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ, самый Π΄Π΅ΡˆΡ‘Π²Ρ‹ΠΉ, совокупный ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅) ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ расстояний, стоимости ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, указываСтся, Ρ‡Ρ‚ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π³ΠΎΡ€ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· — Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π²Ρ‹Π±ΠΎΡ€ осущСствляСтся срСди Π³Π°ΠΌΠΈΠ»ΡŒΡ‚ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ².

БущСствуСт нСсколько частных случаСв ΠΎΠ±Ρ‰Π΅ΠΉ постановки Π·Π°Π΄Π°Ρ‡ΠΈ, Π² Ρ‡Π°ΡΡ‚ности гСомСтричСская Π·Π°Π΄Π°Ρ‡Π° коммивояТёра (Ρ‚Π°ΠΊΠΆΠ΅ называСмая ΠΏΠ»Π°Π½Π°Ρ€Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π΅Π²ΠΊΠ»ΠΈΠ΄ΠΎΠ²ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° расстояний ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ), мСтричСская Π·Π°Π΄Π°Ρ‡Π° коммивояТёра (ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ стоимостСй выполняСтся нСравСнство Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°), симмСтричная ΠΈ Π°ΡΠΈΠΌΠΌΠ΅Ρ‚ричная Π·Π°Π΄Π°Ρ‡ΠΈ коммивояТёра. Π’Π°ΠΊΠΆΠ΅ сущСствуСт ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊ называСмая обобщённая Π·Π°Π΄Π°Ρ‡Π° коммивояТёра.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ постановка Π·Π°Π΄Π°Ρ‡ΠΈ относится ΠΊ ΠΊΠ»Π°ΡΡΡƒ NP-Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΅Ρ‘ Ρ‡Π°ΡΡ‚Π½Ρ‹Ρ… случаСв. ВСрсия «decision problem» (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ такая, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ставится вопрос сущСствуСт Π»ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π½Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ k) относится ΠΊ ΠΊΠ»Π°ΡΡΡƒ NP-ΠΏΠΎΠ»Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π—Π°Π΄Π°Ρ‡Π° коммивояТёра относится ΠΊ Ρ‡ΠΈΡΠ»Ρƒ Ρ‚Ρ€Π°Π½ΡΠ²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…: ΡƒΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшом числС Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ² (66 ΠΈ Π±ΠΎΠ»Π΅Π΅) ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½ΠΈΠΊΠ°ΠΊΠΈΠΌΠΈ тСорСтичСски мыслимыми ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ Π·Π° Π²Ρ€Π΅ΠΌΡ, мСньшСС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² Π»Π΅Ρ‚.

НСпрСмСнным условиСм ΠΈ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ смыслом Π·Π°Π΄Π°Ρ‡ΠΈ коммивояТёра являСтся поиск самого Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΏΡ€ΠΈ любом ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² способов поиска Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Если ΠΌΡ‹ Π½Π΅ ΠΏΡ€ΠΎΡΡ‡ΠΈΡ‚Π°Π»ΠΈ всС ΠΏΡƒΡ‚ΠΈ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ самоС Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ΅. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ? — ΡΡ‚ΠΎ поиск ошибки Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ свСрка ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° с Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ отбрасываСм, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Ρ‚ практичСского смысла Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Ссли ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, использованиС Ρ€Π°Π½Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для части ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ — способ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅). Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ ΡΡ‚Π°Π²ΠΈΠ»ΠΎΡΡŒ Ρ†Π΅Π»ΡŒΡŽ сравнСниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, поэтому ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ считаСт Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ способ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π΅Π³ΠΎ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π΅ΠΌΡƒ? — ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ, Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ для поиска ошибки Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Если Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½Π° ошибка, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ процСсс Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для поиска Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ коммивояТёра Ρ€Π°Π²Π½Π° ΠΈΠ»ΠΈ большС самого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ Π³Ρ€Π°Ρ„Π°.

БиммСтричная Π·Π°Π΄Π°Ρ‡Π° для Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ².

Для возмоТности примСнСния матСматичСского Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π΅Ρ‘ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ матСматичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ коммивояТёра ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π³Ρ€Π°Ρ„Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈ Ρ€Π΅Π±Ρ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π³Ρ€Π°Ρ„Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π³ΠΎΡ€ΠΎΠ΄Π°ΠΌ, Π° Ρ€Π΅Π±Ρ€Π° (i, j) ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ i ΠΈ j — ΠΏΡƒΡ‚ΠΈ сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ этими Π³ΠΎΡ€ΠΎΠ΄Π°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π΅Π±Ρ€Ρƒ (i, j)>=0 ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ выгодности ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π³ΠΎΡ€ΠΎΠ΄Π°ΠΌΠΈ, врСмя ΠΈΠ»ΠΈ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΅Π·Π΄ΠΊΠΈ. ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠΌ (Ρ‚Π°ΠΊΠΆΠ΅ Π³Π°ΠΌΠΈΠ»ΡŒΡ‚ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠΌ) называСтся ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Π³Ρ€Π°Ρ„Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ€Π°Π·Ρƒ каТдая Π²Π΅Ρ€ΡˆΠΈΠ½Π° Π³Ρ€Π°Ρ„Π°. Π—Π°Π΄Π°Ρ‡Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΎΡ‚ыскании ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°.

Π’ Ρ†Π΅Π»ΡΡ… упрощСния Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ сущСствования ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ Π·Π°Π΄Π°Ρ‡ΠΈ являСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ связным, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½ сущСствуСт Ρ€Π΅Π±Ρ€ΠΎ. Π’ Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π³ΠΎΡ€ΠΎΠ΄Π°ΠΌΠΈ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ сообщСния, этого ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ Π²Π²ΠΎΠ΄Π° Ρ€Ρ‘Π±Π΅Ρ€ с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ. Из-Π·Π° большой Π΄Π»ΠΈΠ½Ρ‹ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Π±Ρ€ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ, Ссли ΠΎΠ½ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚.

Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ выгодности ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° сопоставляСтся Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ Ρ€Π΅Π±Π΅Ρ€, Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π·Π°Π΄Π°Ρ‡ΠΈ, ваТнСйшими ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ симмСтричная ΠΈ ΠΌΠ΅Ρ‚ричСская Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ коммивояТСра Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ python Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ (Рис. 3.2).

Π’ Π»ΠΈΡΡ‚ΠΈΠ½Π³Π΅ 2 приводится скрипт для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π”Π°Π½Π½Ρ‹ΠΉ скрипт Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ самый «Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹ΠΉ» ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ 1 Π΄ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ 4.

Листинг 2.

import networkx as nx

import matplotlib. pyplot as plt

import numpy

G = nx. Graph ();

for i in range (1,6):

G.add_node (i)

G.add_edge (1, 2, node_color = 'm', weight = 2) # ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ weight Π·Π°Π΄Π°Π΅Ρ‚ вСс Ρ€Π΅Π±Ρ€Π°

G.add_edge (1, 3, node_color = 'm', weight = 1)

G.add_edge (1, 4, node_color = 'm', weight = 20)

G.add_edge (1, 5, node_color = 'm', weight = 10)

G.add_edge (1, 6, node_color = 'm', weight = 15)

G.add_edge (5, 4, node_color = 'm', weight = 1)

G.add_edge (1, 6, node_color = 'm', weight = 10)

G.add_edge (6, 1, node_color = 'm', weight = 4)

G.add_edge (2, 3, node_color = 'm', weight = 10)

G.add_edge (2, 5, node_color = 'm', weight = 5)

G.add_edge (2, 6, node_color = 'm', weight = 20)

G.add_edge (3, 6, node_color = 'm', weight = 6)

G.add_edge (4, 2, node_color = 'm', weight = 15)

G.add_edge (4, 3, node_color = 'm', weight = 40)

G.add_edge (5, 6, node_color = 'm', weight = 10)

G.add_edge (3, 5, node_color = 'm', weight = 3)

nx.draw (G) #ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° Π³Ρ€Π°Ρ„Π°

plt.show ()

adjacency_matrix = nx. adjacency_matrix (G)

print ('ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° стоимости')

print (adjacency_matrix) #Π’Ρ‹Π²ΠΎΠ΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ вСсов

print (nx.shortest_path (G, 1, 4)) #Π’Ρ‹Π²ΠΎΠ΄ самого ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ

print (nx.dijkstra_path (G, 1, 4)) #Π’Ρ‹Π²ΠΎΠ΄ самого «Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ³ΠΎ» ΠΏΡƒΡ‚ΠΈ Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

[1,4] - ΠšΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ

[1,3,5,4] - Π’Ρ‹Π³ΠΎΠ΄Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ

Π—Π°Π΄Π°Ρ‡Π° ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ….

Π—Π°Π΄Π°Ρ‡Π° ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ… — ΠΎΠ΄Π½Π° ΠΈΠ· Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ матСматичСской ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ исслСдовании ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π—Π°Π΄Π°Ρ‡Π° состоит Π² ΠΏΠΎΠΈΡΠΊΠ΅ минимальной суммы Π΄ΡƒΠ³ Π²ΠΎ Π²Π·Π²Π΅ΡˆΠ΅Π½Π½ΠΎΠΌ Π΄Π²ΡƒΠ΄ΠΎΠ»ΡŒΠ½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅.

Π’ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π°Π΄Π°Ρ‡Π° формулируСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ число Ρ€Π°Π±ΠΎΡ‚ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ число исполнитСлСй. Π›ΡŽΠ±ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ любой (Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ) Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ Ρ Π½Π΅ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ. НуТно Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ.

Если число Ρ€Π°Π±ΠΎΡ‚ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ совпадаСт, Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° называСтся Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ…. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Ссли говорят ΠΎ Π·Π°Π΄Π°Ρ‡Π΅ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ… Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… условий, ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π²ΠΈΠ΄Ρƒ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ….

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ таксомоторная компания ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ свободныС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (исполнитСли), ΠΈ Ρ‚Ρ€ΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° (Ρ€Π°Π±ΠΎΡ‚Ρ‹), ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ такси ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС. Π€ΠΈΡ€ΠΌΠ° заботится ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ доставки такси ΠΊ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ «ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ» опрСдСляСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, с ΠΊΠ°ΠΊΠΎΠΉ машина добСрётся Π΄ΠΎ ΠΌΠ΅ΡΡ‚Π° оТидания, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ. РСшСниСм Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ… Π±ΡƒΠ΄Π΅Ρ‚ распрСдСлСниС машин ΠΏΠΎ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°ΠΌ, Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ суммарная Ρ†Π΅Π½Π° (суммарноС врСмя оТидания) минимально.

Π—Π°Π΄Π°Ρ‡Ρƒ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ. Π’ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚Ρ€ΠΈ, Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ свободных такси, Π½ΠΎ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°, ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ, Ρ‚Ρ€ΠΈ. МоТно Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ «ΡΠΈΠ΄ΠΈ Ρ‚ΠΈΡ…ΠΎ, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΠΉ», с Ρ†Π΅Π½ΠΎΠΉ 0 для ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° назначаСтся. Π—Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈ ΡΠ½ΠΎΠ²Π° даст Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Аналогичный ΠΏΡ€ΠΈΡ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠ»ΡƒΡ‡Π°Π΅, ΠΊΠΎΠ³Π΄Π° число Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ число доступных машин, ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π±ΠΎΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° нСскольким исполнитСлям (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ — Π³Ρ€ΡƒΠΏΠΏΠ°, Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π°ΡΡΡ Π² ΠΎΠ΄Π½ΠΎ такси). МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ увСличСния Π΄ΠΎΡ…ΠΎΠ΄Π°, Π° Π½Π΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ†Π΅Π½Ρ‹.

6. ВСнгСрский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

ВСнгСрский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ… Π·Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ врСмя. Он Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π₯Π°Ρ€ΠΎΠ»Π΄ΠΎΠΌ ΠšΡƒΠ½ΠΎΠΌ (Π°Π½Π³Π».) Π² 1955 Π³ΠΎΠ΄Ρƒ. Автор Π΄Π°Π» Π΅ΠΌΡƒ имя «Π²Π΅Π½Π³Π΅Ρ€ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄» Π² ΡΠ²ΡΠ·ΠΈ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни основан Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°Ρ… Π΄Π²ΡƒΡ… вСнгСрских ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠ² (ΠšΡ‘Π½ΠΈΠ³Π° ΠΈ Π­Π³Π΅Ρ€Π²Π°Ρ€ΠΈ (Π°Π½Π³Π».)).

ДТСймс ΠœΠ°Π½ΠΊΡ€Π΅Ρ (Π°Π½Π³Π».) Π² 1957 Π³ΠΎΠ΄Ρƒ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ являСтся (строго) ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ. Π‘ ΡΡ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ извСстСн Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠšΡƒΠ½Π° — ΠœΠ°Π½ΠΊΡ€Π΅ΡΠ° ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠœΠ°Π½ΠΊΡ€Π΅ΡΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ…. ВрСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±Ρ‹Π»Π° O(n4), ΠΎΠ΄Π½Π°ΠΊΠΎ Эдмондс (Π°Π½Π³Π».) ΠΈ ΠšΠ°Ρ€ΠΏ (Π° Ρ‚Π°ΠΊΠΆΠ΅ Π’ΠΎΠΌΠΈΠ΄Π·Π°Π²Π° нСзависимо ΠΎΡ‚ Π½ΠΈΡ…) ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния O(n3). Π€ΠΎΡ€Π΄ ΠΈ Π€Π°Π»ΠΊΠ΅Ρ€ΡΠΎΠ½ (Π°Π½Π³Π».) распространили ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° ΠΎΠ±Ρ‰ΠΈΠ΅ транспортныС Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ 2006 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π―ΠΊΠΎΠ±ΠΈ Π½Π°ΡˆΡ‘Π» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΡ… Π² XIX Π²Π΅ΠΊΠ΅ ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π΅Π³ΠΎ Π² 1890 Π³ΠΎΠ΄Ρƒ Π½Π° Π»Π°Ρ‚Ρ‹Π½ΠΈ.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ.

Π”Π°Π½Π° Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° nΠ§n, Π³Π΄Π΅ элСмСнт Π² i-ΠΉ строкС ΠΈ j-ΠΎΠΌ столбцС соотвСтствуСт стоимости выполнСния j-ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Ρ€Π°Π±ΠΎΡ‚ i-ΠΌ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠΌ. НуТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΊΠΎΠ΅ соотвСтствиС Ρ€Π°Π±ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ расходы Π½Π° ΠΎΠΏΠ»Π°Ρ‚Ρƒ Ρ‚Ρ€ΡƒΠ΄Π° Π±Ρ‹Π»ΠΈ наимСньшими. Если Ρ†Π΅Π»ΡŒ состоит Π² Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ назначСния с Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ, Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ сводится ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сформулированной Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡƒΡ‚Ρ‘ΠΌ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ стоимости C Π½Π° Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ максимальной ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ C.

ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Π°Ρ интСрпрСтация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

Для n Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚, Π΄Π°Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° nΠ§n (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° стоимости), Π·Π°Π΄Π°ΡŽΡ‰Π°Ρ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠΌ. Найти ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ выполнСния Ρ€Π°Π±ΠΎΡ‚, Ρ‚Π°ΠΊΡƒΡŽ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ выполняСт Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ выполняСт Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ.

Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ΄ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΠΌΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π»ΠΈ трансформации, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ лишь Π½Π° ΠΎΠ±Ρ‰ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго запишСм Π·Π°Π΄Π°Ρ‡Ρƒ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅:

Π³Π΄Π΅ a, b, c, d — Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1, 2, 3, 4. ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ a1, a2, a3, a4 ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ выполнСния Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠΌ «a» Ρ€Π°Π±ΠΎΡ‚ 1, 2, 3, 4 соотвСтствСнно. Аналогичный смысл ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ символы. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° квадратная, поэтому ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π¨Π°Π³ 1

УмСньшаСм элСмСнты построчно. Находим наимСньший ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки (Π°1, Π°2, Π°3, Π°4), ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ· Π²ΡΠ΅Ρ… элСмСнтов ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки. ΠŸΡ€ΠΈ этом хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки обнулится. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ выполняСм ΠΈ Π΄Π»Ρ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… строк. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π΅ΡΡ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ноль. Иногда Π½ΡƒΠ»Π΅ΠΉ ΡƒΠΆΠ΅ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ΠšΡ€Π°ΡΠ½Ρ‹Π΅ Π½ΡƒΠ»ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

a2'

a4'

b1'

b2'

b3'

c2'

c3'

c4'

d1'

d3'

d4'

ΠŸΡ€ΠΈ большом количСствС Π½ΡƒΠ»Π΅ΠΉ для поиска назначСния (Π½ΡƒΠ»Π΅Π²ΠΎΠΉ стоимости) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ нахоТдСния максимального паросочСтания Π΄Π²ΡƒΠ΄ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π₯ΠΎΠΏΠΊΡ€ΠΎΡ„Ρ‚Π°-ΠšΠ°Ρ€ΠΏΠ°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли хотя Π±Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ столбцС Π½Π΅Ρ‚ Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… элСмСнтов, Ρ‚ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π¨Π°Π³ 2

Часто Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС Π½Π΅Ρ‚ назначСния, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ случаС:

a2'

a3'

a4'

b1'

b2'

b3'

c2'

c3'

c4'

d1'

d3'

d4'

Π—Π°Π΄Π°Ρ‡Π° 1 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ эффСктивно (Π·Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ) Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠΌ a, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠΌ c, Π·Π°Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° 3 Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ эффСктивно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π½ΠΈΠΊΠ΅ΠΌ.

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚оряСм шаг 1 для столбцов ΠΈ Π²Π½ΠΎΠ²ΡŒ провСряСм, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π¨Π°Π³ 3

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΌΡ‹ Π΄ΠΎΡΡ‚ΠΈΠ³Π½Π΅ΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΡƒΠΆΠ΅ послС шага 2. Но ΠΈΠ½ΠΎΠ³Π΄Π° это Π½Π΅ Ρ‚Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

a2'

a3'

a4'

b1'

b2'

b3'

c2'

c3'

c4'

d1'

d4'

Если Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ d Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ 2, Π½Π΅ΠΊΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ 3, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½ΠΈΠΆΠ΅.

Π‘Π½Π°Ρ‡Π°Π»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ любой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска максимального паросочСтания Π² Π΄Π²ΡƒΠ΄ΠΎΠ»ΡŒΠ½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅, Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС Ρ€Π°Π±ΠΎΡ‚ Ρ‚Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ красным.

a2'

a3'

a4'

b1'

b2'

b3'

c2'

c3'

c4'

d1'

d4'

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ всС строки Π±Π΅Π· Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (строка 1). ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ всС столбцы с Π½ΡƒΠ»ΡΠΌΠΈ Π² ΡΡ‚ΠΈΡ… строках (столбСц 1). ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ всС строки с «ΠΊΡ€Π°ΡΠ½Ρ‹ΠΌΠΈ» нулями Π² ΡΡ‚ΠΈΡ… столбцах (строка 3). ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ, ΠΏΠΎΠΊΠ° Π½ΠΎΠ²Ρ‹Π΅ строки ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒΡΡ.

Π§

a2'

a3'

a4'

Π§

b1'

b2'

b3'

c2'

c3'

c4'

Π§

d1'

d4'

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ Π»ΠΈΠ½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· всС ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ столбцы ΠΈ Π½Π΅ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ строки.

Π§

a2'

a3'

a4'

Π§

b1'

b2'

b3'

c2'

c3'

c4'

Π§

d1'

d4'

ВсС эти дСйствия прСслСдовали лишь ΠΎΠ΄Π½Ρƒ Ρ†Π΅Π»ΡŒ: провСсти наимСньшСС количСство Π»ΠΈΠ½ΠΈΠΉ (Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π΅ΠΉ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π΅ΠΉ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ всС красныС Π½ΡƒΠ»ΠΈ. МоТно Π±Ρ‹Π»ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ вмСсто описанного.

Π¨Π°Π³ 4

Из Π½Π΅ΠΏΠΎΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… линиями элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это a2', a3', a4', c2', c3', c4') Π½Π°ΠΉΡ‚ΠΈ наимСньший. Π’Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· Π²ΡΠ΅Ρ… Π½Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… строк ΠΈ ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎ Π²ΡΠ΅ΠΌ пСрСсСчСниям ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ². Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли наимСньший элСмСнт ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π²Π΅Π½ Π°2', ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ

Π§

a3'-Π°2'

a4'-a2'

Π§

b1'+a2'

b2'

b3'

c2'-Π°2'

c3'-Π°2'

c4'-Π°2'

Π§

d1'+a2'

d4'

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ (шаги 1−4) Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΡ‚Π°Π½Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

РСализация Π½Π° python.

Π’ Π»ΠΈΡΡ‚ΠΈΠ½Π³Π΅ 3 приводится ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, описанного Π²Ρ‹ΡˆΠ΅, Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования python.

Листинг 3.

def improveLabels (val):

««» change the labels, and maintain minSlack.

«««

for u in S:

lu[u] -= val

for v in V:

if v in T:

lv[v] += val

else:

minSlack[v] -= val

def improveMatching (v):

««» apply the alternating path from v to the root in the tree.

«««

u = T[v]

if u in Mu:

improveMatching (Mu[u])

Mu[u] = v

Mv[v] = u

def slack (u, v): return lu[u]+lv[v] - w[u] [v]

def augment ():

««» augment the matching, possibly improving the lablels on the way.

«««

while True:

# select edge (u, v) with u in S, v not in T and min slack

((val, u), v) = min ([(minSlack[v], v) for v in V if v not in T])

assert u in S

if val>0:

improveLabels (val)

# now we are sure that (u, v) is saturated

assert slack (u, v)==0

T[v] = u # add (u, v) to the tree

if v in Mv:

u1 = Mv[v] # matched edge,

assert not u1 in S

S[u1] = True #… add endpoint to tree

for v in V: # maintain minSlack

if not v in T and minSlack[v] > slack (u1, v):

minSlack[v] = [slack (u1, v), u1]

else:

improveMatching (v) # v is a free vertex

return

def maxWeightMatching (weights):

««» given w, the weight matrix of a complete bipartite graph,

returns the mappings Mu: U->V, Mv: V->U encoding the matching

as well as the value of it.

«««

global U, V, S, T, Mu, Mv, lu, lv, minSlack, w

w = weights

n = len (w)

U = V = range (n)

lu = [max ([w[u] [v] for v in V]) for u in U] # start with trivial labels

lv = [0 for v in V]

Mu = {} # start with empty matching

Mv = {}

while len (Mu)

free = [u for u in V if u not in Mu] # choose free vertex u0

u0 = free[0]

S = {u0: True} # grow tree from u0 on

T = {}

minSlack = [[slack (u0, v), u0] for v in V]

augment ()

# val. of matching is total edge weight

val = sum (lu)+sum (lv)

return (Mu, Mv, val)

# a small example

#print maxWeightMatching ([[1,2,3,4], [2,4,6,8], [3,6,9,12], [4,8,12,16]])

# read from standard input a line with n

# then n*n lines with u, v, w[u] [v]

n = 3 #Π Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

w = [[1, 2, 4], #ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° вСсов

[2, 5, 3],

[6, 7, 8]]

print (maxWeightMatching (w))

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

n = 3 #Π Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

w = [[1, 2, 4], #ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° вСсов

[2, 5, 3],

[6, 7, 8]]

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

({0: 2, 1: 1, 2: 0}, {0: 2, 1: 1, 2: 0}, 15)

Π’Ρ‹Π²ΠΎΠ΄

ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ² — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ² Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ эвм, для дальнСйшСй ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Π·Π°Π΄Π°Ρ‡.

1. Π‘Π²Π°ΠΌΠΈ М., Вхуласираман К. Π“Ρ€Π°Ρ„Ρ‹, сСти ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. М.: ΠœΠΈΡ€, 1984

2. Π₯Π°Π³Π³Π°Ρ€Ρ‚ΠΈ Π . ДискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов Москва: ВСхносфСра, 2003 Π³. — 320 с.

3. ВикипСдия — свободная общСдоступная ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ·Ρ‹Ρ‡Π½Π°Ρ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-энциклопСдия, рСализованная Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Π’ΠΈΠΊΠΈ. / http://wikipedia.org (Π”Π°Ρ‚Π° обращСния 23.12.2013)

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ