Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ»ΠΈΠΊΠ° Π² Π³ΡΠ°ΡΠ΅
ΠΠ»ΠΈΠΊΠ° (ΡΠ΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ²)
ΠΠ»ΠΈΠΊΠ° β ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠΎΠ΄Π³ΡΠ°Ρ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ°. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠ»ΠΈΠΊΠ° Π³ΡΠ°ΡΠ° Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΠ½, ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠ½ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π±ΡΠΎ ΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «ΠΠ»ΠΈΠΊΠ° (ΡΠ΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ²)» Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡΡ :
ΠΡΠ³Π° (ΡΠ΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ²) β ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΡΡΡΠΈΠ²ΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ (Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅). # Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π‘ Π’ Π£ Π€ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π¦ΠΈΠΊΠ» (ΡΠ΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ²) β ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΡΡΡΠΈΠ²ΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ (Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅). # Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π‘ Π’ Π£ Π€ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ»ΠΈΠΊΠ° β (Π³ΡΡΠΏΠΏΠ° Π»ΡΠ΄Π΅ΠΉ) ΡΠ°ΠΉΠΊΠ°, Π±Π°Π½Π΄Π°, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ. ΠΠ»ΠΈΠΊΠ° (ΡΠ΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ²) ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠΎΠ΄Π³ΡΠ°Ρ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ°. ΠΠ»ΠΈΠΊΠ° (ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΎΠ²) Π³ΡΡΠΏΠΏΠ° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΡ Ρ ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΎΠ² Π²ΠΈΠΊΡΠΎΡΠΈΠ°Π½ΡΠΊΠΎΠΉ ΡΠΏΠΎΡ ΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π ΠΈΡΠ°ΡΠ΄ΠΎΠΌ ΠΠ°Π΄Π΄ΠΎΠΌ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ² β ΠΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π³Π»ΠΎΡΡΠ°ΡΠΈΠΉ. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ°ΡΡΡ: Π’Π΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ² ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΡΡΡΠΈΠ²ΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ (Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅) β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π‘Π»ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ² β ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΡΡΡΠΈΠ²ΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ (Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅). # Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π‘ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π‘ΠΎΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π³ΡΠ°Ρ β ΠΠ° Π΄Π°Π½Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π² ΠΊΠ°ΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΠ²Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΡΡΠΆΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΠ΄Π°ΠΌ ΠΈ ΠΠ΅ΠΉΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΠ΄Π°ΠΌ ΠΈ ΠΠ΅ΠΉΡ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π΄ΡΡΠ·ΡΡΠΌΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ, Π½ΠΎ Ρ Π½ΠΈΡ Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ Π΄ΡΡΠ³ ΠΠ²Π°.β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°Π΄Π°ΡΠ° ΠΎ ΠΊΠ»ΠΈΠΊΠ΅ β ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ NP ΠΏΠΎΠ»Π½ΡΡ Π·Π°Π΄Π°Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΠΏΠ΅ΡΠ²ΡΠ΅ ΠΎΠ½Π° Π±ΡΠ»Π° ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π° Π² 1972 Π³ΠΎΠ΄Ρ Π ΠΈΡΠ°ΡΠ΄ΠΎΠΌ ΠΠ°ΡΠΏΠΎΠΌ.[1] β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ΅ΡΡΠΈΠ½Π° (Π³ΡΠ°Ρ) β ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΡΡΡΠΈΠ²ΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ (Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅). # Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π‘ Π’ Π£ Π€ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ»ΠΈΠ½Π° ΠΏΡΡΠΈ Π² ΠΎΡΠ³ΡΠ°ΡΠ΅ β ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΡΡΡΠΈΠ²ΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ (Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅). # Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π‘ Π’ Π£ Π€ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ½ΡΠΈΠ΄Π΅Π½ΡΠ½ΠΎΡΡΡ β ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΡΡΡΠΈΠ²ΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ (Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅). # Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π Π‘ Π’ Π£ Π€ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ° ΡΡΠΎΡ ΡΠ°Π· Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ C# ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ (maximum clique problem), ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΏΠΎΠ΄Π³ΡΠ°ΡΠ΅. ΠΠΎΠ΄ Π³ΡΠ°ΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π΄Π°Ρ, ΠΊΠ°ΠΊ Ρ ΠΏΠΎΡΡΠ½Ρ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ Π·Π°Π΄Π°ΡΠ° ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π²Π°ΠΌ? ΠΠ»ΠΈΠΊΠ° β ΡΡΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΡΠ°, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ·Π»ΠΎΠΌ. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° Π½Π° ΡΠΈΡ. 1. Π£Π·Π»Ρ 2, 4 ΠΈ 5 ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΊΠ»ΠΈΠΊΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² ΡΡΠΈ ΡΠ·Π»Π°. ΠΠ°Π΄Π°ΡΠ° ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠΊΠΈ Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² Π³ΡΠ°ΡΠ΅. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΊΠ»ΠΈΠΊΠ° Π΄Π»Ρ Π³ΡΠ°ΡΠ° Π½Π° ΡΠΈΡ. 1 β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠ·Π»ΠΎΠ² < 0, 1, 3, 4 >, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π²Π΅Π½ ΡΠ΅ΡΡΡΠ΅ΠΌ.
Π ΠΈΡ. 1. ΠΡΠ°Ρ Π΄Π»Ρ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅
ΠΠ°Π΄Π°ΡΠ° ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡ , Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ, ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ . ΠΠ°ΠΆΠ΅ Π² Π³ΡΠ°ΡΠ°Ρ ΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π·Π°Π΄Π°ΡΠ° ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΄Π½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π½Π°ΡΠΊΠ΅. ΠΠ΅ΡΠΎΠ΄Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅, Π²ΠΊΠ»ΡΡΠ°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° (tabu search), ΠΆΠ°Π΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° (greedy search), ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠ»Π°ΡΠΎ (plateau search), ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (real-time parameter adaptation) ΠΈ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ (dynamic solution history). ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π΄Π°ΡΠ°Ρ . ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΊΠΎΠ΄, ΡΠ΅ΡΠ°ΡΡΠΈΠΉ Π·Π°Π΄Π°ΡΡ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²Π°ΠΌ, Π° ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅, β ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠ»Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΈ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ°ΡΡΡΡ . ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ β ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ Π³ΡΠ°Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡ. 2 ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΡΠ΄Π° Ρ ΠΊΠ»ΠΎΠ½Ρ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Π ΠΈΡ. 2. ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΡΠ°ΡΠ°
ΠΡΠ»ΠΈ ΡΠ±ΡΠ°ΡΡ ΡΡΠ΄ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ WriteLine, ΠΊΠΎΠ΄, Π²ΡΠ΄Π°ΡΡΠΈΠΉ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 2, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ Π³ΡΠ°ΡΠ° Π½Π° ΡΠΈΡ. 1 Ρ ΡΠ°Π½ΡΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ DimacsClique.clq, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ DIMACS. Π― ΠΊΡΠ°ΡΠΊΠΎ ΠΏΠΎΡΡΠ½Ρ ΡΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ·ΠΆΠ΅. ΠΠΎΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°ΡΠΈΠ½Π°Π΅Ρ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ» Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π³ΡΠ°ΡΠ° Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Ρ Π΅Π³ΠΎ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ Π²ΠΈΠ΄Π΅. ΠΠ°ΠΊ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅. ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈ Π΄Π²Π° ΡΠ·Π»Π° ΡΠΌΠ΅ΠΆΠ½ΡΠΌΠΈ (ΡΠ·Π»Ρ 5 ΠΈ 8 Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅), ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅Π΄Π΅ΠΉ Π΄Π»Ρ ΡΠ·Π»Π° 4 Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Π― ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅Π΄Ρ Π²Π°Ρ ΠΏΠΎ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΈΡ. 2. ΠΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅, ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅. ΠΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C#, Π½ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π·Π° ΠΌΠ½ΠΎΠΉ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π΅ΡΠ»ΠΈ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΠ΅Π΄Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π·Π΄Π΅ΡΡ ΠΊΠΎΠ΄ Π³ΡΠ°ΡΠ° Π·Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π² Π²Π°ΡΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅Π²Π·Π²Π΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ (unweighted) (ΡΠ΅Π±ΡΠ°ΠΌ Π³ΡΠ°ΡΠ° Π½Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ), Π½Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ (ΡΠ΅Π±ΡΠ° Π½Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ) Π³ΡΠ°ΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΎΠΌ. ΠΠ° ΡΠΈΡ. 3 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π±ΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ Π³ΡΠ°ΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅. Π₯ΠΎΡΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Ρ Π½Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ Π³ΡΠ°ΡΠΎΠΌ, ΠΏΡΠΈΠ½ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ (from-nodes), Π° ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ β Π²Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ (to-nodes). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ 1 ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ΅Π±ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0 β Π΅Π³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΡΠ° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½Π° ΠΈ ΡΡΠΎ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ·Π»Ρ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΌΠ΅ΠΆΠ½ΡΠΌΠΈ ΡΠ°ΠΌΠΈΠΌ ΡΠ΅Π±Π΅.
Π ΠΈΡ. 3. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π½Π°Π΄ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΡΡΡΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΌΠ΅ΠΆΠ½ΡΡ ΡΠ·Π»ΠΎΠ², Π° ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ Π³ΡΠ°ΡΠ°ΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΊ Π·Π°Π΄Π°ΡΠ΅ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅. ΠΡΠΈ Π³ΡΡΠ±ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³Π»Π°Π²Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ β Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΠ°ΡΡΠΈΡΠ° 9Γ9 Π½Π° ΡΠΈΡ. 3 Π±ΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅ΡΡΡΠ΅Ρ Π±Π°ΠΉΡΠΎΠ²ΡΡ ΡΠ΅Π»ΡΡ ΠΈΠ»ΠΈ Π±ΡΠ»Π΅Π²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎ ΠΌΠ°ΡΡΠΈΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π° Π±Ρ 9 * 9 * 4 = 324 Π±Π°ΠΉΡΠ°. ΠΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ 0 ΠΈΠ»ΠΈ 1, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄ΠΎ 32 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΡΠ°Π²Π°, ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ 32-Π±ΠΈΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ 00000000-00000000-00000000-10110000, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 128 + 32 + 16 = 176. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΌΠ°ΡΡΠΈΡΡ Ρ ΡΠ°Π½ΠΈΠ»Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ Π±ΠΈΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΠ΅Π±ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ, ΡΠΎ ΠΌΠ°ΡΡΠΈΡΠ° 9Γ9 ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π° Π±Ρ Π²ΡΠ΅Π³ΠΎ 36 Π±Π°ΠΉΡΠΎΠ².
Π ΠΈΡ. 4. ΠΠ»Π°ΡΡ BitMatrix
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ BitMatrix ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ BitMatrix ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 9Γ9, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ Π½ΡΠ»ΡΠΌΠΈ (false), Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅Π²Π·Π²Π΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ, Π½Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Ρ Π΄Π΅Π²ΡΡΡΡ ΡΠ·Π»Π°ΠΌΠΈ. ΠΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΡΠΎΠΊΡ 5, ΡΡΠΎΠ»Π±Π΅Ρ 8 Π² true (1), ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ΅Π±ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ 5 ΠΈ 8. Π’ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΡΠΎΠΊΡ 8, ΡΡΠΎΠ»Π±Π΅Ρ 5 Π² true (1), ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π±ΡΠ° Π³ΡΠ°ΡΠ° Π±ΡΠ»ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΠΌ. Π§Π΅ΡΠ²Π΅ΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ 2, ΡΡΠΎΠ»Π±ΡΠ΅ 6, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, ΠΈΠΌΠ΅Π΅ΡΡΡ Π»ΠΈ ΡΠ΅Π±ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ 2 ΠΈ 6, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ false (0). ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈ Π΄Π²Π° ΡΠ·Π»Π° ΡΠΌΠ΅ΠΆΠ½ΡΠΌΠΈ, β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
ΠΠ»Π°ΡΡ Π³ΡΠ°ΡΠ°
Π Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ BitMatrix, Π½Π΅ΡΡΡΠ΄Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π³ΡΠ°ΡΠ°, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π΄Π»Ρ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π΄Π°Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π³ΡΠ°ΡΠ°ΠΌΠΈ. Π‘ΡΡΡΠΊΡΡΡΠ° ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠΈΡ. 5. ΠΠ»Π°ΡΡ Π³ΡΠ°ΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½ System, System.IO ΠΈ System.Collections. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅-ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ» ΠΊΠ»Π°ΡΡ Π³ΡΠ°ΡΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅ΡΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠΎΠ².
Π ΠΈΡ. 5. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Π³ΡΠ°ΡΠ°
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Π³ΡΠ°ΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ:
Π― ΠΏΡΠΈΡΠ²ΠΎΠΈΠ» ΠΊΠ»Π°ΡΡΡ Π³ΡΠ°ΡΠ° ΠΈΠΌΡ MyGraph. ΠΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ±Π»Π°Π·Π½ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π³ΡΠ°ΡΠ°, Π½ΠΎ Π²Π°ΡΠΈΠ°ΡΠΈΠΉ Π³ΡΠ°ΡΠΎΠ² ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π³ΡΠ°ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π·Π°Π΄Π°Ρ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π·Π΄Π΅ΡΡ ΠΊΠ»Π°ΡΡ Π³ΡΠ°ΡΠ° Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ ΠΈ ΡΡ ΠΎΠΆΠΈΡ Π·Π°Π΄Π°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠΎΠ³ Π±Ρ Π½Π°Π·Π²Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΊΠ°ΠΊ-ΡΠΎ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ MaxCliqueGraph. Π ΠΊΠ»Π°ΡΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΠΏΠΎΠ»Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠ²ΠΎΠ΅ β ΠΎΠ±ΡΠ΅ΠΊΡ BitMatrix, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅. ΠΠΎΠ»Ρ numberNodes ΠΈ numberEdges Ρ ΡΠ°Π½ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ·Π»ΠΎΠ² (Π΄Π΅Π²ΡΡΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅) ΠΈ ΡΠΈΡΠ»ΠΎ Π½Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ΅Π±Π΅Ρ Π² Π³ΡΠ°ΡΠ΅ (13 Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅).
ΠΠΎΠ³Π΄Π° ΡΠ΅ΡΠ°Π΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π³ΡΠ°ΡΠ°ΠΌΠΈ, Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΈΠΉ ΡΠ·Π΅Π», Ρ. Π΅. ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·Π»ΠΎΠ² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΎ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΠ·Π»ΠΎΠΌ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π³ΡΠ°ΡΠ° Π½Π° ΡΠΈΡ. 1 ΡΠ·Π΅Π» 5 ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΅Ρ ΡΠΎΡΠ΅Π΄Π΅ΠΉ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅Π΄Π΅ΠΉ, ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ·Π»Π°, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ ΡΠ·Π»Π° (degree of the node), ΠΈΠ»ΠΈ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ (Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π³ΡΠ°ΡΠΎΠ² ΠΏΠΎΠ½ΡΡΠΈΡ ΡΠ·Π»Π° ΠΈ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ). ΠΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ Β«Π½Π° Π»Π΅ΡΡΒ», ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ true (1) Π² ΡΡΡΠΎΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ·Π»Π°. ΠΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΡΠΉ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΎΡΠ΅Π΄Π΅ΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Π³ΡΠ°ΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΡΠ°ΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π³ΡΠ°ΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ numberNeighbors Π±ΡΠ»ΠΎ Π±Ρ Π΄Π΅Π²ΡΡΡ ΡΡΠ΅Π΅ΠΊ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ [3,3,2,3,6,3,1,3,2], ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌΠΈ, ΡΡΠΎ ΡΠ·Π΅Π» 0 ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΡΠΎΡΠ΅Π΄Π°, ΡΠ·Π΅Π» 1 β ΡΡΠΈ ΡΠΎΡΠ΅Π΄Π°, ΡΠ·Π΅Π» 2 β Π΄Π²Π° ΡΠΎΡΠ΅Π΄Π° ΠΈ Ρ. Π΄.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Π³ΡΠ°ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», Π³Π΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π³ΡΠ°ΡΠ°, ΠΈ ΡΡΡΠΎΠΊΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π΄Π°Π½Π½ΡΡ . ΠΠ΄Π΅ΡΡ Ρ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ LoadDimacsFormatGraph. Π’Π°ΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΊΠ»Π°ΡΡ Π³ΡΠ°ΡΠ° Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ Π²Ρ Π»ΡΠ±ΠΈΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ², ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΡΠΌΠ°ΡΠ° ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅.
Π ΡΠ΅ΡΠ΄ΡΠ΅Π²ΠΈΠ½Π΅ ΠΊΠ»Π°ΡΡΠ° MyGraph Π»Π΅ΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ LoadDimacsFormatGraph, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΉΠ»Π° Π³ΡΠ°ΡΠ°. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π΄Π΅ΡΡ ΡΠΎΡΠΌΠ°Ρ DIMACS. ΠΠ±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠ° DIMACS ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊ: Discrete Mathematics and Theoretical Computer Science. DIMACS ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΎ Π³Π»Π°Π²Π΅ Ρ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ Π Π°ΡΠ³Π΅ΡΡΠ° (Rutgers University).
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½Π° ΡΠΈΡ. 2, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΉΠ» DimacsGraph.clq, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ Π½Π° ΡΠΈΡ. 6. Π‘ΡΡΠΎΠΊΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ Π±ΡΠΊΠ²Ρ Β«cΒ», ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ. ΠΠ΄Π½Π° ΡΡΡΠΎΠΊΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π±ΡΠΊΠ²Ρ Β«pΒ», Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΊΠ°Π·Π°Π½Π° ΡΡΡΠΎΠΊΠ° Β«edgeΒ» Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠΈΡΠ»ΠΎΠΌ ΡΠ΅Π±Π΅Ρ. Π‘ΡΡΠΎΠΊΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ Π±ΡΠΊΠ²Ρ Β«eΒ», ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ΅Π±ΡΠ°. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΡΠ°ΠΉΠ» ΡΠΎΡΠΌΠ°ΡΠ° DIMACS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΡΠΈΡΠ»Π° Ρ ΠΎΡΡΡΠ΅ΡΠΎΠΌ ΠΎΡ 1; ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ΅Π±ΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.
Π ΠΈΡ. 6. Π€Π°ΠΉΠ» Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DIMACS
ΠΠ΅ΡΠΎΠ΄ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ:
Π― Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡΡ ΠΊ ΡΡΡΠΎΠΊΠ΅ Β«pΒ» Π² ΡΠ°ΠΉΠ»Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Trim, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠΉ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ:
Π‘ΡΡΠΎΠΊΡ Β«pΒ» Ρ ΡΠ°Π·Π±ΠΈΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° String.Split. Π ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ tokens[0] Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ Π»ΠΈΡΠ΅ΡΠ°Π» Β«pΒ», tokens[1] β Β«edgeΒ», tokens[2] β Β«9Β», Π° tokens[3] β Β«13Β». ΠΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° int.Parse (Ρ ΠΌΠΎΠ³ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Convert.ToInt32) ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠ΅Π±Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² int-Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΡΠ΅ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ numNodes ΠΈ numEdges. ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² ΠΏΠΎΠ»Ρ this.numberNodes ΠΈ this.numberEdges ΠΊΠ»Π°ΡΡΠ° Π³ΡΠ°ΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠ΅Π±Π΅Ρ, Ρ Π·Π°ΠΊΡΡΠ²Π°Ρ ΡΠ°ΠΉΠ» Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Ρ ΠΏΠΎΠ»Π΅ Π΄Π°Π½Π½ΡΡ BitMatrix.
Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Ρ Π³ΠΎΡΠΎΠ² ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π°:
Π― ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΡΠ²Π°Ρ ΡΠ°ΠΉΠ» ΠΈ ΡΠΈΡΠ°Ρ Π΅Π³ΠΎ ΠΎΡ Π½Π°ΡΠ°Π»Π°. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ β ΠΈΠ·-Π·Π° Π½Π°Π»ΠΈΡΠΈΡ ΡΡΡΠΎΠΊΠΈ Β«pΒ» Π΄ΠΎ Π»ΡΠ±ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Β«eΒ» β Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½ΡΠΆΠ΄Ρ Π΄Π²Π°ΠΆΠ΄Ρ ΡΠΈΡΠ°ΡΡ ΡΠ°ΠΉΠ» ΡΠΎΡΠΌΠ°ΡΠ° DIMACS. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Ρ ΡΠ°Π½ΡΡ Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π±Π΅Ρ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΡΠΌ Π·Π΄Π΅ΡΡ. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Β«eΒ», ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ Β«e 3 6Β», Ρ ΡΠ°Π·Π±ΠΈΡΠ°Ρ ΡΡΡ ΡΡΡΠΎΠΊΡ Β«eΒ», ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡ Π΄Π²Π° ΡΠ·Π»Π° Π² ΡΠΈΠΏ int ΠΈ Π²ΡΡΠΈΡΠ°Ρ 1, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΡΡΠ΅ΡΠ° ΠΎΡ 1 Π½Π° ΠΎΡΡΡΠ΅Ρ ΠΎΡ 0. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ SetValue Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² BitMatrix. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ BitMatrix ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ΅Π½, Ρ ΠΌΠΎΠ³ Π±Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π»ΠΈΡΡ Π²Π΅ΡΡ Π½ΡΡ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° (triangular portion) Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΡΠΎΠΌ Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΌΠ°ΡΡΠΈΠ² numberNeighbors:
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° Ρ ΠΏΡΠΎΡ ΠΎΠΆΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π΅ΠΌΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ true (1), ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΠ΅Π±Π΅Ρ, Π° Π·Π½Π°ΡΠΈΡ, ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅Π΄Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π°. ΠΠ΅ΡΠΎΠ΄ LoadDimacsFormatGraph Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊ:
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ² ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠ΅Π±Π΅Ρ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΏΠΎΠ»Ρ ΠΊΠ»Π°ΡΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²Π½ΡΠΉ Π²ΠΎΠ·Π²ΡΠ°Ρ, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠ° MyGraph ΠΏΡΠΎΡΡΠ°. Π― ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΊΡΡΡΡΠΌ ΠΏΠΎΠ»ΡΠΌ numberNodes ΠΈ numberEdges ΠΊΠ»Π°ΡΡΠ° ΠΊΠ°ΠΊ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ C#-ΠΊΠ»Π°ΡΡΠ° Property:
Π Π°Π±ΠΎΡΠ°Ρ Ρ Π³ΡΠ°ΡΠ°ΠΌΠΈ, ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π° ΠΊΠΎΠ³Π΄Π° Π΅Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ. ΠΠ΄Π΅ΡΡ Ρ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡ, ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° node Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 0 Π΄ΠΎ this.numberNodesβ1, ΡΡΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½Ρ ΡΡΠ·Π²ΠΈΠΌΡΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π·Π° Π³ΡΠ°Π½ΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. ΠΠ±ΡΡΠ½ΠΎ Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π° ΠΏΠΎ Π΅Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΡΠ΄Π°Π»ΡΡ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠΌ BitMatrix, Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈ Π΄Π²Π° ΡΠ·Π»Π° ΡΠΌΠ΅ΠΆΠ½ΡΠΌΠΈ, Π²Π΅ΡΡΠΌΠ° Π»Π΅Π³ΠΊΠΎ:
ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ BitMatrix ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ΅Π½, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π»ΠΈΠ±ΠΎ GetValue(nodeA, nodeB), Π»ΠΈΠ±ΠΎ GetValue(nodeB, nodeA). ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ , ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ Π³ΡΠ°ΡΠ°ΠΌ, Π΄ΠΎΠΌΠΈΠ½ΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠ·Π»ΠΎΠ². ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Π½Π°Π΄ Π±ΠΈΡΠ°ΠΌΠΈ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ BitArray.
ΠΠ»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° MyGraph Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ToString:
Π Π·Π°Π΄Π°ΡΠ΅ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΡΠΏΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ToString Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΡΡΡΠΎΠΊ Π²ΠΌΠ΅ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° StringBuilder. ΠΠ΄Π΅ΡΡ i ΡΠ»ΡΠΆΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ Π² ΡΡΡΠΎΠΊΠ°Ρ BitMatrix, Π° j β ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ Π² ΡΡΠΎΠ»Π±ΡΠ°Ρ . Π‘ΡΡΠΎΠΊΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Environment.NewLine Π²ΠΌΠ΅ΡΡΠΎ Β«\nΒ», ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠΎΠΉ ΠΊΠ»Π°ΡΡ MyGraph Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΌ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΡΠ°ΡΠ°
ΠΡΠ»ΠΈ Π²Ρ Π²Π΅ΡΠ½Π΅ΡΠ΅ΡΡ ΠΊ ΡΠΈΡ. 2, ΡΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡ Π΄Π²Π° Π²Π°ΠΆΠ½ΡΡ ΡΠΈΠΏΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π³ΡΠ°ΡΠ°: ΡΠ°ΠΉΠ»Π° Π΄Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠ° Π΄ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π³ΡΠ°ΡΠ° ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°. ΠΠΎΠ»Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π³ΡΠ°ΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ Ρ Π΄Π°ΠΌ Π»ΠΈΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ.
Π― Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ°ΠΉΠ»Π° Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ValidateGraphFile, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 5. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° MyGraph, ValidateGraphFile ΡΡΠ°Π·Ρ ΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ValidateDimacsGraphFile, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΎΠ΄ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Π² ΡΠΈΠΊΠ»Π΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π²ΡΠ΅ Π»ΠΈ ΡΡΡΠΎΠΊΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π² DIMACS ΡΠΎΡΠΌΡ:
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ ΡΡΡΠΎΠΊ, ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΏΠΎΠΏΡΡΠΊΡ ΠΈΡ ΡΠ°Π·Π±ΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Β«pΒ»:
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΠΎΠΊ Β«eΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°. ΠΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½, Π² ΡΠ΅Π»ΠΎΠΌ, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π»ΡΠ±ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠ°: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠΎΠΊ ΠΈ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ°Π·Π±ΠΎΡΠ° ΡΡΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ValidateGraph. ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠ° Π½Π° ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ°ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΡΠ°ΠΉΠ»Π°Ρ Π΄Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ² β ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ BitMatrix. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
ΠΡΡΠ³ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ true (1) Π² Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΡ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΡΠΏΠ»ΠΎΡΡ ΠΈΠ· false (0) ΠΈΠ»ΠΈ true (1), ΠΈ Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ ΡΡΠΌΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»Π΅-ΠΌΠ°ΡΡΠΈΠ²Π΅ numberNeighbors ΠΎΠ±ΡΠ΅ΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ true (1) Π² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅.
ΠΠΎΠ»ΡΡΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ
ΠΠΆΠ΅ΠΉΠΌΡ ΠΠ°ΠΊΠΊΠ°ΡΡΠΈ (Dr. James McCaffrey) ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Microsoft Research Π² Π Π΅Π΄ΠΌΠΎΠ½Π΄Π΅ (ΡΡΠ°Ρ ΠΠ°ΡΠΈΠ½Π³ΡΠΎΠ½). ΠΡΠΈΠ½ΠΈΠΌΠ°Π» ΡΡΠ°ΡΡΠΈΠ΅ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Microsoft, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Internet Explorer ΠΈ Bing. Π‘ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°ΡΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ mjammc@microsoft.com.
ΠΡΡΠ°ΠΆΠ°Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌ ΠΠΎΠ»Ρ ΠΠΎΡ Ρ (Paul Koch), ΠΡΠ½Ρ ΠΠΈΠ±Π»ΠΈΠ½Π³Ρ (Dan Liebling), ΠΠ½Π½ ΠΡΠΌΠΈΡ Π’ΠΎΠΌΠΏΡΠΎΠ½ (Ann Loomis Thompson) ΠΈ Π¨Π΅ΠΉΠ½Ρ Π£ΠΈΠ»ΡΡΠΌΡΡ (Shane Williams).
ΠΠΎΠΈΡΠΊ ΠΊΠ»ΠΈΠΊ Π² Π³ΡΠ°ΡΠ°Ρ
ΠΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΡΠ΄Π΅Π½ΡΠ° Π¨Π΅Π»ΠΎΠΌΠ°Π½ΠΎΠ²Π° Π .Π.
ΠΠ°ΡΠ΅Π΄ΡΠ° ΠΎΠ±ΡΠ΅ΠΉ ΡΠ΅ΠΎΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°
ΠΠΎΡΠΊΠΎΠ²ΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠΈ, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ
ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΉ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΈΡ Π·Π°Π΄Π°Ρ Π»ΡΠ΄ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π³ΡΠ°ΡΠΈΠΊΠ°ΠΌΠΈ. ΠΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠΎΡΠ΅ΠΊ ΠΈ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΏΡΡΠΌΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΡ ΡΡΠΈ ΡΠΎΡΠΊΠΈ. ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ Π»ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Π·Π°ΠΊΠΎΠ½Π°ΠΌ ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ? ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π±ΡΠ» ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ Π. ΠΠ΅Π½ΠΈΠ³ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ» Π²ΡΠ΅ ΡΡ Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ· ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ ΡΠΎΡΠ΅ΠΊ ΠΈ Π»ΠΈΠ½ΠΈΠΉ, ΠΎΠ±ΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ βΠ³ΡΠ°Ρβ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π» Π³ΡΠ°Ρ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π’Π΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ² Π½Π°ΡΠ»Π° ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΡΠ΄Π° Π·Π°Π΄Π°Ρ. Π ΠΌΠΎΠ΅ΠΌ ΠΊΡΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠ°Π·Π΄Π΅Π» ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ² ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ»Π½ΡΠΌ ΠΏΠΎΠ΄Π³ΡΠ°ΡΠ°ΠΌ, ΡΠΎΠ΅ΡΡΡ ΠΊΠ»ΠΈΠΊΠ°ΠΌ. Π¦Π΅Π»ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ»Π° Π±Ρ ΠΊΠ»ΠΈΠΊΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ Π²Π΅ΡΡΠΈΠ½.
ΠΠΎΠΏΡΡΡΠΈΠΌ Π·Π°Π΄Π°Π½ Π³ΡΠ°Ρ G=(Π₯,Π). ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π·Π°Π΄Π°ΡΠ° ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΊΠΈΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½ Π₯ Π³ΡΠ°ΡΠ° G, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ, Π½Π°ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠ²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° S Γ Π₯, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Π³ΡΠ°Ρ S ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΌ? ΠΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π΄Π°Π΅Ρ ΠΊΠ»ΠΈΠΊΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π³ΡΠ°ΡΠ° G. ΠΡΠΎ ΡΠΈΡΠ»ΠΎ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ Π½ΠΈΠΌ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠ½ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΡΡΡΡΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π³ΡΠ°ΡΠ° ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ°Π±ΠΎΡ, Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈ ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ, ΠΏΠ°ΡΠ°Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΌΡΠ»Π΅Π½ΠΈΡΡ Π½Π° ΠΠΠ, ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ Π² ΡΠ½Π΅ΡΠ³ΠΎΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
Π§Π°ΡΡΡ 1. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ
ΠΠ»Π°Π²Π°1. Π’Π΅ΠΎΡΠΈΡ Π³ΡΠ°ΡΠΎΠ²
ΠΠ΅ΡΡΠΈΠ½Ρ ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π³ΡΠ°ΡΠ°
ΠΠ΅ΡΡΠΈΠ½Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° Π΄ΡΠ³Π°ΠΌΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ Π³ΡΠ°ΡΠ°.
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π»ΠΈΠ½ΠΈΠΉ Π½Π° Π³ΡΠ°ΡΠ΅
ΠΡΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ, Π΅ΡΠ»ΠΈ Π² Π½Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠ°Ρ Π΄ΡΠ³Π° Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π΄Π²Π°ΠΆΠ΄Ρ, ΠΈ ΡΠΎΡΡΠ°Π²Π½ΡΠΌ, Π΅ΡΠ»ΠΈ Π»ΡΠ±Π°Ρ ΠΈΠ· Π΄ΡΠ³ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π°.
ΠΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π΅ΡΡΠΈΠ½ Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π°, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ.
ΠΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· ΡΡΠ΅ΡΠ° ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΅Π³ΠΎ Π΄ΡΠ³.
1. ΠΠ΅ΡΡΠΈΠ½Π°ΠΌΠΈ A ΠΏΠΎΠ΄Π³ΡΠ°ΡΠ° G(A,U A ) ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠ½ Π³ΡΠ°ΡΠ° G(X,U);
2. ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ ΠΏΠΎΠ΄Π³ΡΠ°ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ Π² Π³ΡΠ°ΡΠ΅ G(X,U) ΡΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π²Π΅ΡΡΠΈΠ½ A ΠΏΠΎΠ΄Π³ΡΠ°ΡΠ° G(A,U A ).
ΠΠ°Π·ΠΈΡΠ½ΡΠΌ Π³ΡΠ°ΡΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΡΡΠΈΡΠ½ΡΠΉ Π³ΡΠ°Ρ, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π»Ρ ΠΈ Π·Π°ΠΌΡΠΊΠ°ΡΡΠΈΡ Π΄ΡΠ³.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ Π³ΡΠ°ΡΠ°ΠΌΠΈ
1. ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΎΠ²
ΠΡΡΠΎΡΠ½ΠΈΠΊ