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

Алгоритмы Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…. 
НСзависимыС ΠΈ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ мноТСства

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

Основная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π³Ρ€Π°Ρ„Π°. Π’Π²Π΅Π΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Gg Π΄Π»Ρ хранСния Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π²Π΅Ρ€ΡˆΠΈΠ½ — ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ формируСтся Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС k. Π§Ρ‚ΠΎ являСтся исходной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ для формирования Gg? ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½, своС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага (ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ) Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ЛогичСски ΠΏΡ€Π°Π²ΠΎΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ это мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Алгоритмы Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…. НСзависимыС ΠΈ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ мноТСства (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°

" Алгоритмы Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…. НСзависимыС ΠΈ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ мноТСства"

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π³Ρ€Π°Ρ„ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½ V ΠΈ Π½Π°Π±ΠΎΡ€ E Π½Π΅ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€ Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ G=(V, E). ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΠΈ мноТСств V ΠΈ E Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ N ΠΈ M. НСупорядочСнная ΠΏΠ°Ρ€Π° Π²Π΅Ρ€ΡˆΠΈΠ½ называСтся Ρ€Π΅Π±Ρ€ΠΎΠΌ, Π° ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½Π°Ρ ΠΏΠ°Ρ€Π° — Π΄ΡƒΠ³ΠΎΠΉ. Π“Ρ€Π°Ρ„, содСрТащий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π±Ρ€Π°, называСтся Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ; Π³Ρ€Π°Ρ„, содСрТащий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΡƒΠ³ΠΈ, — ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, ΠΈΠ»ΠΈ ΠΎΡ€Π³Ρ€Π°Ρ„ΠΎΠΌ. Π’Π΅Ρ€ΡˆΠΈΠ½Ρ‹, соСдинСнныС Ρ€Π΅Π±Ρ€ΠΎΠΌ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ смСТными. Π Π΅Π±Ρ€Π°, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ‰ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ смСТными. Π Π΅Π±Ρ€ΠΎ ΠΈ Π»ΡŽΠ±Π°Ρ ΠΈΠ· Π΅Π³ΠΎ Π΄Π²ΡƒΡ… Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ. Говорят, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π±Ρ€ΠΎ (u, v) соСдиняСт Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ u ΠΈ v. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ мноТСством Ρ‚ΠΎΡ‡Π΅ΠΊ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соСдинСны линиями, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π΅Π±Ρ€Π°ΠΌ. Π’ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС любой Π³Ρ€Π°Ρ„ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»ΠΈΠ½ΠΈΠΈ (Ρ€Π΅Π±Ρ€Π°) Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒΡΡ.

Бпособы описания. Π’Ρ‹Π±ΠΎΡ€ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ… для прСдставлСния Π³Ρ€Π°Ρ„Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ эффСктивных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². ΠŸΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основных способа описания Π³Ρ€Π°Ρ„Π°: ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΉ; ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности; списки связи ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡Π½ΠΈ Ρ€Π΅Π±Π΅Ρ€. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π°: ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ смСТности ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Ρ€Π΅Π±Π΅Ρ€.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности — это Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив размСрности N*N.

A [i, j]=

Для хранСния пСрСчня Ρ€Π΅Π±Π΅Ρ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив R Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΠΈ M*2. Π‘Ρ‚Ρ€ΠΎΠΊΠ° массива описываСт Ρ€Π΅Π±Ρ€ΠΎ.

1. НСзависимыС мноТСства

Π—Π°Π΄Π°Ρ‡Π° поиска подмноТСств мноТСства Π²Π΅Ρ€ΡˆΠΈΠ½ V Π³Ρ€Π°Ρ„Π° G, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиям, свойствам, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ достаточно часто.

Π”Π°Π½ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ G=(V, E). НСзависимоС мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½ Π΅ΡΡ‚ΡŒ мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π° G, Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π²Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π² Π½Π΅ΠΌ Π½Π΅ ΡΠΌΠ΅ΠΆΠ½Ρ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ никакая ΠΏΠ°Ρ€Π° Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° Ρ€Π΅Π±Ρ€ΠΎΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, любоС подмноТСство S, содСрТащССся Π² V, ΠΈ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ пСрСсСчСниС S Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠΌ Π²Π΅Ρ€ΡˆΠΈΠ½ смСТных с S ΠΏΡƒΡΡ‚ΠΎ, являСтся нСзависимым мноТСством Π²Π΅Ρ€ΡˆΠΈΠ½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π²Π΅Ρ€ΡˆΠΈΠ½ (1, 2), (3, 4, 5), (4, 7), (5, 6) — нСзависимыС. НСзависимоС мноТСство называСтся ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ нСзависимого мноТСства, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ΠΎ Π±Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΠ»ΠΎ. Если Q ΡΠ²Π»ΡΠ΅Ρ‚ся сСмСйством всСх нСзависимых мноТСств Π³Ρ€Π°Ρ„Π° G, Ρ‚ΠΎ Ρ‡ΠΈΡΠ»ΠΎ

[G]=maxS

SQ

называСтся числом нСзависимости Π³Ρ€Π°Ρ„Π° G, Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ S*, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ этот максимум достигаСтся, называСтся наибольшим нСзависимым мноТСством. Для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° [G]=3, Π° S* Π΅ΡΡ‚ΡŒ (3, 4, 5).

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ нСзависимому мноТСству, Π΅ΡΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Π³Ρ€Π°Ρ„ (ΠΊΠ»ΠΈΠΊΠ°). Π’ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ нСзависимом мноТСствС Π½Π΅Ρ‚ смСТных Π²Π΅Ρ€ΡˆΠΈΠ½, Π² ΠΊΠ»ΠΈΠΊΠ΅ всС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎ смСТны. МаксимальноС нСзависимоС мноТСство Π³Ρ€Π°Ρ„Π° G ΡΠΎΠΎΡ‚вСтствуСт ΠΊΠ»ΠΈΠΊΠ΅ Π³Ρ€Π°Ρ„Π° G', Π³Π΄Π΅ G' - Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π° G.

Для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ G' ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС, ΠΊΠ»ΠΈΠΊΠ° Π³Ρ€Π°Ρ„Π° G' соотвСтствуСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ нСзависимому мноТСству Π³Ρ€Π°Ρ„Π° G. Число нСзависимости Π³Ρ€Π°Ρ„Π° G' Ρ€Π°Π²Π½ΠΎ 4, максимальноС нСзависимоС мноТСство (2, 5, 7, 8), Π΅ΠΌΡƒ соотвСтствуСт ΠΊΠ»ΠΈΠΊΠ° Π³Ρ€Π°Ρ„Π° G.

2. ΠœΠ΅Ρ‚ΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ всСх ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… нСзависимых мноТСств Π³Ρ€Π°Ρ„Π°

Π—Π°Π΄Π°Ρ‡Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². «Π˜Π·ΡŽΠΌΠΈΠ½ΠΊΠΎΠΉ» являСтся отсутствиС нСобходимости Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ мноТСства с Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΡ… Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ сравнСния с Ρ€Π°Π½Π΅Π΅ сформированными мноТСствами. ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ нСзависимого мноТСства (k — Π½ΠΎΠΌΠ΅Ρ€ шага ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ построСния). ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ максимальноС нСзависимоС мноТСство. Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π΅Π³ΠΎ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ процСсс поиска. Π‘ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Ss (Ss:array [1..N] of integer), Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ k ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π›ΠΎΠ³ΠΈΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π°.

procedure Print (k:integer);

var i: byte;

begin

writeln; for i:=1 to k do write (Ss[i], ' `);

end;

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

type Sset=set of 1. N; ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

var A: array [1.N] of Sset;.

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π³Ρ€Π°Ρ„Π°, смСТныС с Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ i, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт массива A.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

Основная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π³Ρ€Π°Ρ„Π°. Π’Π²Π΅Π΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Gg Π΄Π»Ρ хранСния Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π²Π΅Ρ€ΡˆΠΈΠ½ — ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ формируСтся Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС k. Π§Ρ‚ΠΎ являСтся исходной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ для формирования Gg? ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½, своС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага (ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ) Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ЛогичСски ΠΏΡ€Π°Π²ΠΎΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ это мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ (Qp) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ (Qm). ИзмСнСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Qp ΠΈ Qm происходит ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Π½Π° Π²Ρ‹Π±ΠΎΡ€ k-Π³ΠΎ элСмСнта максимального нСзависимого мноТСства. ΠœΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ Π½Π° k ΡˆΠ°Π³Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ i, ΠΈ Π΅ΡΡ‚СствСнно ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅Π΅ ΠΈΠ· Qp ΠΈ Qm ΠΏΡ€ΠΈ поискС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ максимального нСзависимого мноТСства. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ ΡˆΠ°Π³Ρƒ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ (k+1) ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… мноТСств Qp ΠΈ Qm для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ шага Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, смСТныС с Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ i, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ шагС (ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ нСзависимого мноТСства) ΠΈ, разумСтся, саму Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ i. Π˜Ρ‚Π°ΠΊ, общая Π»ΠΎΠ³ΠΈΠΊΠ°.

procedure Find (k:integer; Qp, Qm: Sset);

var Gg: Sset;

i:byte;

begin

if (Qp=[]) and (Qm=[]) then begin Print (k); exit end;

{Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик А}

<οΏ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ мноТСства ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Gg Π΄Π»Ρ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (k ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Ss) ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌ Qp ΠΈ Qm>;

i:=1;

while i<=N do begin

if i in Gg then begin

Ss[k]: =i;

Find (k+1, Qp-A[i] - [i], Qm-A[i] - [i]);

{Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик Π‘}

<οΏ½ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Qp, Qm Π΄Π»Ρ этого уровня (значСния k) ΠΈ, соотвСтствСнно, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ мноТСства ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Gg>;

end;

Inc (i);

end; {while}

end; {Find}

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ. Нам потрСбуСтся простая функция подсчСта количСства элСмСнтов Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° Sset.

function Number (A: Sset):byte;

var i, cnt: byte;

begin

cnt:=0; for i:=1 to N do if i in A then Inc (cnt); Number:=cnt;

end;

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ трассировки для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ уточнСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π‘ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π²Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для внСсСния пояснСний Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‡Π΅Ρ€Π½Ρ‹Ρ… ящиков.

k

Qp

Qm

Gg

Ss

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

[1.5]

[]

[1.5]

(1)

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ

[4,5]

[]

[4,5]

(1,4)

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ящика А.

if Qm<>[] then <οΏ½Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик ΠΠ >

else Gg:=Qp;

Π•Π³ΠΎ ΡΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ· Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π΅Ρ‡Π΅Π³ΠΎ, Ρ‚ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² совпадаСт со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Qp, ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΌΡ‹ «Ρ‚ΡƒΠΏΠΎ» Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ ΠΈΠ· Qp. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²Ρ‹Π·ΠΎΠ²Ρƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Find.

[]

[]

[]

(1,4)

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ максимального нСзависимого мноТСства ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ копию Find.

[5]

[4]

[5]

(1,5)

Π˜ΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ 4 ΠΈΠ· Qp ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π΅Π΅ Π² Qm.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ†ΠΈΠΊΠ» while ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Find. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ — это Π²Π΅Ρ€ΡˆΠΈΠ½Π° 5. И Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Find с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ значСниями ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

[]

[]

[]

(1,5)

Π’Ρ‹Π²ΠΎΠ΄ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ максимального нСзависимого мноТСства.

[]

[4,5]

[]

Π¦ΠΈΠΊΠ» while Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½, Π²Ρ‹Ρ…ΠΎΠ΄ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ копию ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Find.

Π£Ρ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ящика Π‘. ΠŸΠ΅Ρ€Π²ΠΎΠ΅: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ i ΠΈΠ· Qp ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ Π² Qm. Π’Ρ‚ΠΎΡ€ΠΎΠ΅: слСдуСт ΠΎΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ мноТСство Gg. Π’Ρ‹Π±ΠΎΡ€ Π½Π° ΡΡ‚ΠΎΠΌ шагС Π²Π΅Ρ€ΡˆΠΈΠ½, Π½Π΅ ΡΠΌΠ΅ΠΆΠ½Ρ‹Ρ… с i, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… нСзависимых мноТСств, поэтому слСдуСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΡ мноТСств Qp ΠΈ A[i]. Π˜Ρ‚Π°ΠΊ, Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик Π‘.

Qp:=Qp — [i]; Qm:=Qm+[i];

if Number (Qp*A[i])

[2.5]

[1]

[1.5]

Однако послС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ящика Π‘ ΠΈΠΌΠ΅Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

[2.5]

[1]

[2.3]

(2)

[3,5]

[]

[3,5]

(2,3)

[5]

[]

[5]

(2,3,5)

[]

[]

[]

Π’Ρ‹Π²ΠΎΠ΄ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ максимального нСзависимого мноТСства.

[]

[5]

[]

[5]

[3]

[]

Богласно Π»ΠΎΠ³ΠΈΠΊΠ΅ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ящика Π‘ мноТСство ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Gg ΡΡ‚ановится пустым.

[3.5]

[1,2]

[2,3]

(3)

[5]

[2]

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Find, ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Gm ΠΏΡ€ΠΈ этом Π½Π΅ ΠΏΡƒΡΡ‚ΠΎ.

Π”ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ящика ΠΠ. Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1. Если сущСствуСт Π²Π΅Ρ€ΡˆΠΈΠ½Π° j, принадлСТащая Qm, такая, Ρ‡Ρ‚ΠΎ пСрСсСчСниС A[j] ΠΈ Qp ΠΏΡƒΡΡ‚ΠΎ, Ρ‚ΠΎ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ построСниС максимального нСзависимого мноТСства бСссмыслСнно — Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈΠ· A[j] Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² Π½Π΅Π³ΠΎ. Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2. Если Π½Π΅Ρ‚ Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈΠ· Qm, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎ ΠΊΠ°ΠΊΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ ΠΈΠ· Qp ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ? ΠžΡ‚Π²Π΅Ρ‚: Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ i (QpA[j]) для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ значСния jQm, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ пСрСсСчСния мноТСств A[j] ΠΈ Qp ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Π°. Π”Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€. Π˜Ρ‚Π°ΠΊ, Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ящика ΠΠ.

begin

delt:=N+1;

for j:=1 to N do if j in Qm then if Number (A[j]*Qp)

begin i:=j; delt:=Number (A[j]*Qp); end;

Gg:=Qp*A[i];

end

Π—Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ трассировку ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

[5]

[2]

[]

[5]

[1,2,3]

[]

Π’Ρ‹Ρ…ΠΎΠ΄ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠœΡ‹ Π½Π°ΡˆΠ»ΠΈ всС ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ нСзависимыС мноТСства.

3. Π”ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ мноТСства

Для Π³Ρ€Π°Ρ„Π° G=(V, E) Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½ Π΅ΡΡ‚ΡŒ мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½ SV, Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ j, Π½Π΅ Π²Ρ…одящСй Π² S, сущСствуСт Ρ€Π΅Π±Ρ€ΠΎ, ΠΈΠ΄ΡƒΡ‰Π΅Π΅ ΠΈΠ· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ мноТСства S Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ j. Π”ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ мноТСство называСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Ссли Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ мноТСства, содСрТащСгося Π² Π½Π΅ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

Π”ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ мноТСства (1, 2, 3), (4, 5, 6, 7, 8, 9), (1, 2, 3, 8, 9), (1,2, 3, 7) ΠΈ Ρ‚. Π΄. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° (1, 2, 3), (4, 5, 6, 7, 8, 9) ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Если Q — сСмСйство всСх ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… мноТСств Π³Ρ€Π°Ρ„Π°, Ρ‚ΠΎ Ρ‡ΠΈΡΠ»ΠΎ [G]=minS

SQ

называСтся числом доминирования Π³Ρ€Π°Ρ„Π°, Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ S*, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ этот ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ достигаСтся, называСтся наимСньшим Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ мноТСством. Для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° [G]=3.

Π—Π°Π΄Π°Ρ‡Π°. ΠŸΡƒΡΡ‚ΡŒ Π³ΠΎΡ€ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° 16 Ρ€Π°ΠΉΠΎΠ½ΠΎΠ². БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ ΠΌΠΈΠ»ΠΈΡ†ΠΈΠΈ, располоТСнный Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Ρ€Π°ΠΉΠΎΠ½Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот Ρ€Π°ΠΉΠΎΠ½, Π½ΠΎ ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π°Ρ‰ΠΈΠ΅ с Π½ΠΈΠΌ Ρ€Π°ΠΉΠΎΠ½Ρ‹. ВрСбуСтся Π½Π°ΠΉΡ‚ΠΈ наимСньшСС количСство ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² ΠΌΠΈΠ»ΠΈΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅ΡΡ‚Π° ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ контролировался вСсь Π³ΠΎΡ€ΠΎΠ΄.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°ΠΉΠΎΠ½ Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ Π³Ρ€Π°Ρ„Π° ΠΈ Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ соСдиним Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ сосСдним Ρ€Π°ΠΉΠΎΠ½Π°ΠΌ. Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ число доминирования Π³Ρ€Π°Ρ„Π° ΠΈ Ρ…отя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ наимСньшСС Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ мноТСство. Для Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ [G]=4, ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… мноТСств Π΅ΡΡ‚ΡŒ (3, 5, 12, 14). Π­Ρ‚ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅.

4. Π—Π°Π΄Π°Ρ‡Π° ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ

Рассмотрим Π³Ρ€Π°Ρ„. На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π΅Π³ΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности, А ΠΈ Ρ‚ранспонированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами А*. Π—Π°Π΄Π°Ρ‡Π° опрСдСлСния Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ мноТСства Π³Ρ€Π°Ρ„Π° G ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Π° Π·Π°Π΄Π°Ρ‡Π΅ нахоТдСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ наимСньшСго мноТСства столбцов Π²

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

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. 1. Если нСкоторая строка ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ А* ΠΈΠΌΠ΅Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π² Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΠΎΠΌ столбцС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ большС Π½Π΅Ρ‚ столбцов, содСрТащих Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π² ΡΡ‚ΠΎΠΉ строкС, Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ столбСц слСдуСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Π»ΡŽΠ±ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. 2. Рассмотрим мноТСство столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ А*, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строкС. Для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°: U1=(1, 6, 7, 8), U2=(1, 2, 5, 8), U3=(2, 3, 5), U4=(3, 4), U5=(2, 3, 4, 5), U6=(5, 6), U7=(6, 7), U8=(7,8). Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ U4U5. Из ΡΡ‚ΠΎΠ³ΠΎ слСдуСт, Ρ‡Ρ‚ΠΎ 5-ю строку ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ любоС мноТСство столбцов, ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ 4-ю строку, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ 5-ю. ЧСтвСртая строка Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Π΄ пятой.

5. ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ

ΠŸΠΎΠΏΡ‹Ρ‚Π°Π΅ΠΌΡΡ ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ, рассматривая, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π£ Π½Π°Ρ Π΅ΡΡ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„, Π΅Π³ΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности ΠΈ Ρ‚ранспонированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами. Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌ структуру ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ А*. Нас интСрСсуСт, ΠΊΠ°ΠΊΠΈΠ΅ столбцы содСрТат Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС, ΠΊΠ°ΠΊΠΈΠ΅ столбцы содСрТат Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π‘ ΡΡ‚ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ столбцы Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ А*, Π½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΠΌ Π΅Π΅ «Π² ΠΏΠΎΠΊΠΎΠ΅». Π‘ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Bl, Π΅Π΅ Ρ‚ΠΈΠΏ:

type Pr=array [1.MaxN, 1. MaxN+1] of integer;

var Bl: Pr;, Π³Π΄Π΅ MaxN — максимальная Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ плюс Π΅Π΄ΠΈΠ½ΠΈΡ†Π° (тСхничСский ΠΏΡ€ΠΈΠ΅ΠΌ — «Π±Π°Ρ€ΡŒΠ΅Ρ€»), Π±ΡƒΠ΄Π΅Ρ‚ ясно ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ излоТСния (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Press).

ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Bl Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС — [1 2 3. № 0];

всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.

Π’ΠΎ Π΅ΡΡ‚ΡŒ нашС исходноС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС столбцы ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ А* ΠΈΠΌΠ΅ΡŽΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΅Π³ΠΎ. Π‘ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ элСмСнты ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ строки (i) ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Bl. Если Bl [i, j]<>0, Ρ‚ΠΎ ΡΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Bl [i, j], ΠΊΠ°ΠΊ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ столбца ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A*, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт А*. ΠŸΡ€ΠΈ Π΅Π³ΠΎ нСравСнствС Π½ΡƒΠ»ΡŽ элСмСнт Bl ΠΎΡΡ‚аСтся Π½Π° ΡΠ²ΠΎΠ΅ΠΌ мСстС, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Bl, Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки Bl ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ся Π²ΠΏΡ€Π°Π²ΠΎ, ΡΠΆΠΈΠΌΠ°ΡŽΡ‚ΡΡ (Press). Π˜Ρ‚Π°ΠΊ, для N-1 строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Bl. Для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Bl ΠΏΠΎΡΠ»Π΅ этого прСобразования Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

Bl=

4 3 6 1 0… 0

5 7 2 0… 0

Bl= 0 0

0 … 0

Π’ Π½Π°ΡˆΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ стоимости Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π° ΠΈΠ»ΠΈ стоимости столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ А*, ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ наимСньшСй стоимости. ΠŸΡƒΡΡ‚ΡŒ стоимости ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Price (Price:array [1..MaxN] of integer) ΠΈ Π΄Π»Ρ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ значСния [15 13 4 3 8 9 10]. ΠžΡΡ‚Π°Π»Π°ΡΡŒ чисто тСхничСская Π΄Π΅Ρ‚Π°Π»ΡŒ — ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Bl ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ стоимости ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ А. Π›ΠΎΠ³ΠΈΠΊΠ° формирования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½ΠΈΠΆΠ΅ ΠΏΠΎ Ρ‚Сксту (Blocs).

procedure Blocs; {выдСлСния Π±Π»ΠΎΠΊΠΎΠ²}

{Bl — глобальная пСрСмСнная}

procedure Sort;

{Price ΠΈ Bl — Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅}

begin

end;

procedure Press (i, j: integer); {Π‘Π΄Π²ΠΈΠ³Π°Π΅ΠΌ элСмСнты строки с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ i, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (столбца) j, Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π²ΠΏΡ€Π°Π²ΠΎ}

{Bl — глобальная пСрСмСнная}

var k: integer;

begin

k:=j;

while Bl [i, k]<>0 do begin {ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с ΠΏΠ»ΡŽΡ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ. Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ столбцС строки всСгда записан 0.}

Bl [i, k]: =Bl [i, k+1];

Inc (k);

end; {while}

end; {Press}

var i, j, cnt: integer;

begin

FillChar (Bl, SizeOf (Bl), 0);

for i:=1 to N do Bl [1, i]: =i; {прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ всС столбцы}

for i:=1 to N-1 do begin

j:=1; cnt:=0;

while Bl [i, j]<>0 do begin

if A*[i, Bl [i, j]]=0 then begin {столбСц Π½Π΅ Π² ΡΡ‚ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅}

Inc (cnt);

Bl [i+1, cnt]: =Bl [i, j]; {ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку}

Press (i, j);

Dec (j);

end; {if}

Inc (j);

end; {while}

end; {for}

Sort;

end; {Blocs}

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

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

type Model=array [1.MaxN] of boolean;

var Sbetter: Model; Pbetter: integer; {Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅}

S: Model; P: integer; {Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅}

R: Model; {R[i]=true — ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ строка i «ΠΏΠΎΠΊΡ€Ρ‹Ρ‚Π°» Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ}

Π›ΠΎΠ³ΠΈΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ) столбца с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ k Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ) ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

procedure Include (k:integer); {Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ столбСц Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅}

{A*, R, Price, S, P — Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅}

var j: integer;

begin

P:=P+Price[k]; {тСкущая Ρ†Π΅Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ}

S[k]: =true; {столбСц с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ k Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅}

for j:=1 to N do

if A*[j, k]=1 then R[j]: =true; {строки, «ΠΏΠΎΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅» столбцом k}

end; {Include}

procedure Exclude (k:integer); {ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ столбСц ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ}

var j: integer;

begin

p:=p-Price[k];

S[k]:=false;

for j:=1 to N do if (A*[j, k]=1) and R[j] then R[j]: =false;

end; {Exclude}

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, сформировано Π»ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ массив R ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, всС Π»ΠΈ Π΅Π³ΠΎ элСмСнты Ρ€Π°Π²Π½Ρ‹ истинС.

function Result: boolean;

var j: integer;

begin

j:=1;

while (j<=N) and R[j] do Inc (j);

if j=N+1 then Result:=true else Result:=false;

end; {Result}

ΠšΡ€ΠΎΠΌΠ΅ пСрСчислСнных «ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊΠΎΠ²», Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ столбСц с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ k Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Для этого слСдуСт ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ столбСц с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ k ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A* ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π΅Ρ‚ Π»ΠΈ совпадСний Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ true ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов массива R.

function Cross (k:integer):boolean; {пСрСсСчСниС столбца с Ρ‡Π°ΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, сформированным Ρ€Π°Π½Π΅Π΅}

var j: integer;

begin

j:=1;

while (j<=N) and Not (R[j] and (A*[j, k]=1)) do Inc (j);

if j=N+1 then Cross:=true else Cross:=false;

end; {Cross}

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° поиска (Find) ΠΈΠΌΠ΅Π΅Ρ‚ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° (строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Bl) — пСрСмСнная bloc ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² — Find (1,1).

procedure Find (bloc, jnd: integer);

{ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅}

begin

if Result then begin if P

Sbetter:=S;

end;

end

else if Bl [bloc, jnd]=0 then exit

else if Cross (Bl[bloc, jnd]) then begin

Include (Bl[bloc, jnd]);

Find (bloc+1,1);

Exclude (Bl[bloc, jnd]);

end

else if R[bloc] then Find (bloc+1,1);

Find (bloc, jnd+1);

end; {Find}

Нам ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ½Π° Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ.

program R_min;

const MaxN=…;

type… var…

procedure Init; {Π²Π²ΠΎΠ΄ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ…}

begin

end;

procedure Print; {Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°}

begin

end;

{ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, рассмотрСнныС Ρ€Π°Π½Π΅Π΅}

{основная логика}

begin

Init;

Blocs;

Find (1,1);

Print;

end.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ нСзависимому мноТСству, Π΅ΡΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Π³Ρ€Π°Ρ„ (ΠΊΠ»ΠΈΠΊΠ°). Π’ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ нСзависимом мноТСствС Π½Π΅Ρ‚ смСТных Π²Π΅Ρ€ΡˆΠΈΠ½, Π² ΠΊΠ»ΠΈΠΊΠ΅ всС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎ смСТны. МаксимальноС нСзависимоС мноТСство Π³Ρ€Π°Ρ„Π° G ΡΠΎΠΎΡ‚вСтствуСт ΠΊΠ»ΠΈΠΊΠ΅ Π³Ρ€Π°Ρ„Π° G', Π³Π΄Π΅ G' - Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π° G.

АдСльсон-Π’Π΅Π»ΡŒΡΠΊΠΈΠΉ Π“. Πœ., Π”ΠΈΠ½ΠΈΡ† Π•. А., ΠšΠ°Ρ€Π·Π°Π½ΠΎΠ² А. Π’. ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. — Πœ.: Наука, 1975.

Π‘Π΅Ρ€ΠΆ К. ВСория Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈ Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. — Πœ.: Π˜Π›, 1962.

Π•ΠΌΠ΅Π»ΠΈΡ‡Π΅Π² Π’.А., МСльников О. И., Π‘Π°Ρ€Π²Π°Π½ΠΎΠ² Π’. И., Π’Ρ‹ΡˆΠΊΠ΅Π²ΠΈΡ‡ Π . И. Π›Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ². — Πœ.: Наука, 1990.

Π—Ρ‹ΠΊΠΎΠ² А. А. ВСория ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ². — ΠΠΎΠ²ΠΎΡΠΈΠ±ΠΈΡ€ΡΠΊ: Наука; Π‘ΠΈΠ±. ΠΎΡ‚Π΄-Π½ΠΈΠ΅, 1969.

ЙСнсСн П., БарнСс Π”. ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.-М.:Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·ΡŒ, 1984.

Касьянов Π’.Н., Π‘Π°Π±Π΅Π»ΡŒΡ„Π΅Π»ΡŒΠ΄ Π’. К. Π‘Π±ΠΎΡ€Π½ΠΈΠΊ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌΡƒ Π½Π° Π­Π’Πœ. — Πœ.: Наука, 1986.

ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ΠΈΠ΄Π΅Ρ Н. ВСория Π³Ρ€Π°Ρ„ΠΎΠ². АлгоритмичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. — Πœ.: ΠœΠΈΡ€, 1978.

ΠšΠΎΡ„ΠΌΠ°Π½ А.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΈΠΊΡƒ. — Πœ.: Наука, 1975.

Липский Π’. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΈΠΊΠ° для программистов. — Πœ.: ΠœΠΈΡ€, 1988.

Майника Π­. Алгоритмы ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΡΠ΅Ρ‚ях ΠΈ Π³Ρ€Π°Ρ„Π°Ρ….-М.:ΠœΠΈΡ€, 1981.

НСчСпурСнко М.И., Попков Π’. К., МайнагашСв Π‘. М. ΠΈ Π΄Ρ€. Алгоритмы ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ… ΠΈ ΡΠ΅Ρ‚ях. — ΠΠΎΠ²ΠΎΡΠΈΠ±ΠΈΡ€ΡΠΊ: Наука; Π‘ΠΈΠ±. ΠΎΡ‚Π΄-Π½ΠΈΠ΅, 1990.

ΠžΠΊΡƒΠ»ΠΎΠ² Π‘. М. ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚Ρ‹ занятий ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…). Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС для студСнтов ΠΈ ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΉ школ. — ΠšΠΈΡ€ΠΎΠ², 1996.

ΠŸΠ°ΠΏΠ°Π΄ΠΈΠΌΠΈΡ‚Ρ€ΠΈΡƒ Π₯., Π‘Ρ‚Π°ΠΉΠ³Π»ΠΈΡ† К. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½Π°Ρ оптимизация: Алгоритмы ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.-М.:ΠœΠΈΡ€, 1985.

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

Ѐилипс Π”., Гарсиа-Диас А. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° сСтСй. — Πœ.: ΠœΠΈΡ€, 1984.

Π€ΠΎΡ€Π΄ Π›.Π ., ЀалкСрсон Π”. Π . ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π² ΡΠ΅Ρ‚ях. — Πœ.: ΠœΠΈΡ€, 1963.

Ѐрэнк Π“., Π€Ρ€ΠΈΡˆ И. Π‘Π΅Ρ‚ΠΈ, связь ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. — Πœ.: Бвязь, 1978.

Π₯Π°Ρ€Π°Ρ€ΠΈ Π€. ВСория Π³Ρ€Π°Ρ„ΠΎΠ². — Πœ.: ΠœΠΈΡ€, 1973.

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