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

ИсслСдованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ

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

Π”Π°Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ способствуСт Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρƒ Π½Π°Ρ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ эквивалСнтныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ для просмотра ΠΈ Ρ‚Π΅ΠΌ самым ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ быстродСйствиС. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ ассимСтричной схСмы, Ссли ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ числом соСдинСний с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΠΆΠ΅ Π±Ρ‹Π» рассмотрСн Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ № 2. Рассмотрим Π΄Π°Π½Π½Ρ‹ΠΉ способ нахоТдСния… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

исслСдованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ

1.Анализ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ задания поиск Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

Π˜Ρ‚Π°ΠΊ, Π·Π°Π΄Π°Ρ‡Π° состоит Π² Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ размСщСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΡΡ‡Π΅ΠΉΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ использованного ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°. Число ячССк Π½Π° ΠΏΠ»Π°Ρ‚Π΅ — ΠΏ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли число ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ k Π±ΠΎΠ»ΡŒΡˆΠ΅ ΠΏ, Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚, Π° ΠΏΡ€ΠΈ k? ΠΏ, Ρ‚ΠΎ k ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ всСгда ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏ ΡΡ‡Π΅ΠΉΠΊΠ°Ρ…. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ вычислСний ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ зависит ΠΎΡ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° располоТСния ячССк Π½Π° ΠΏΠ»Π°Ρ‚Π΅. Если располоТСниС ячССк симмСтричноС, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способы ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности вычислСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π§Π΅ΠΌ большС осСй симмСтрии ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Π°, Ρ‚Π΅ΠΌ большС сущСствуСт эквивалСнтных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‚Π΅ΠΌ большС ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ ассимСтричной схСмы, Ссли ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ числом соСдинСний с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ рассмотрим Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° ΠΏΠ°Ρ€ΠΎΠΉ чисСл (l, m), Π³Π΄Π΅ l — Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° m — порядковый Π½ΠΎΠΌΠ΅Ρ€ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ способа соСдинСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ):

(1,3)

(1,3)

(2,4)

(4,4)

(5,1)

(5,1)

(3,2)

(3,2)

(4,4)

(2,4)

Рисунок 1. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ эквивалСнтного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎ ΠΏΠ»Π°Ρ‚Π°Ρ…

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ 2 ΠΈ 4 ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ способ соСдинСния с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Ρ‚ΠΎ ΠΎΠ±ΠΌΠ΅Π½ мСстами Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, располоТСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прСдставлСнноС Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1 эквивалСнтны.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π΅Π³ΠΎ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ†.

2.Ѐормализация Π·Π°Π΄Π°Ρ‡ΠΈ На Π΄Π°Π½Π½ΠΎΠΌ этапС производится Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ с Ρ†Π΅Π»ΡŒΡŽ приспособлСния Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ² ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности поиска. Рассмотрим Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ:

Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² n ΡΡ‡Π΅ΠΉΠΊΠ°Ρ… Π½Π° ΠΏΠ»Π°Ρ‚Π΅. Число соСдинСний ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ задаСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ C, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ C (i, j) — число связСй ΠΌΠ΅ΠΆΠ΄Ρƒ i-ΠΉ ΠΈ j-ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. РасстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠΈ мСст задаСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ D, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ D (k, l) — расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ k-ΠΉ ΠΈ l-ΠΉ ячСйками. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΎΠ±Ρ‰Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹ использованного ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ i-ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² k-ΠΉ ячСйкС ΠΈ j-ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² l-ΠΉ ячСйкС стоит C (i, j) D (k, l). Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйкС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ячСйкС. НайдитС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΡΡ‡Π΅ΠΉΠΊΠ°Ρ…, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±Ρ‰ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ использованного ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°.

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ практичСски ΡƒΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ. Π‘ ΠΌΠ°Ρ‚СматичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ стоимости F = C (i, j) D (k, l), Π³Π΄Π΅ ij ΠΈ i, j K (мноТСство K — мноТСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚), k l ΠΈ k, l Y (мноТСство Y — мноТСство ячССк). Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° эквивалСнтна Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅: Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΊΠΎΠ΅ мноТСство Π΄Π²ΠΎΠ΅ΠΊ S = {p, q}, p K, q Y', Y' Y, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ F= C (i, j) D (k, l), ΠΈ Π³Π΄Π΅ Π΄Π²ΠΎΠΉΠΊΠΈ (i, k) ΠΈ (j, l) ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ мноТСству S ((i, k), (j, l) S).

2.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для прСдставлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π·Π°Π΄Π°Ρ‡ΠΈ

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ со ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для прСдставлСния мноТСств Ak, Sk, Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΡ… ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² ak, Π° Ρ‚Π°ΠΊΠΆΠ΅ с ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ наибольшСй эффСктивности вычислСний.

РСшим вопрос ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Если m — это число ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² n ΡΡ‡Π΅ΠΉΠΊΠ°Ρ… Π½Π° ΠΏΠ»Π°Ρ‚Π΅ ΠΈ m< n, Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ (Π°1,…, Π° m), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π°i — Π΅ΡΡ‚ΡŒ Π΄Π²ΠΎΠΉΠΊΠ° чисСл (j, l), Π³Π΄Π΅ j — Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° l — Π½ΠΎΠΌΠ΅Ρ€ ячСйки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располагаСтся данная ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ числС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ m Π²ΡΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Π΄Π»ΠΈΠ½Ρƒ m. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ элСмСнтов Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для i-ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄ Аk = (i, 1…, r ,… n). ΠΠ½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ структуру ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Sk для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ отличия: допустим Ссли S1 = (i, 1…, r ,… n) ΠΈ Π΅ΡΠ»ΠΈ r-ая ячСйка, i-ая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΠΆΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹, Ρ‚ΠΎ S2 = (j, 1… n).

2.2 Анализ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ. АналитичСскиС ΠΈ/ΠΈΠ»ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ†Π΅Π½ΠΊΠΈ

Π‘ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ C (i, j) ΠΈ D (k, l) Π·Π°Π΄Π°ΡŽΡ‚ΡΡ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ Ρ‡ΠΈΡΠ»ΠΎ способов соСдинСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ достаточно Π²Π΅Π»ΠΈΠΊΠΎ.

Рассмотрим ограничСния свойствСнныС Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅: Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйкС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ячСйкС, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, для Π»ΡŽΠ±Ρ‹Ρ… Π΄Π²ΡƒΡ… элСмСнтов Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΉΠΊΠ°ΠΌΠΈ чисСл (i, k) ΠΈ (j, l) ij, k l. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ вычислСний ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ зависит ΠΎΡ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° располоТСния ячССк Π½Π° ΠΏΠ»Π°Ρ‚Π΅, Ρ‚ΠΎ Π΄Π»Ρ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ Π½Π°Ρ Π±Ρ‹Π»ΠΈ возмоТности для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΈ Π±Ρ‹ΡΡ‚родСйствия вычислСний, Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Π° симмСтричная ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½Ρƒ ось симмСтрии. ΠŸΡ€ΠΈ этом ячСйка с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 1 симмСтрична ячСйкС с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ n, ячСйка с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 1 симмСтрична ячСйкС с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ n-1 ΠΈ Ρ‚. Π΄.

Π”Π°Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ способствуСт Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρƒ Π½Π°Ρ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ эквивалСнтныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ для просмотра ΠΈ Ρ‚Π΅ΠΌ самым ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ быстродСйствиС. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ ассимСтричной схСмы, Ссли ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ числом соСдинСний с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΠΆΠ΅ Π±Ρ‹Π» рассмотрСн Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ № 2. Рассмотрим Π΄Π°Π½Π½Ρ‹ΠΉ способ нахоТдСния эквивалСнтных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. ΠŸΡƒΡΡ‚ΡŒ s — число способов соСдинСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΏ — число ячССк Π½Π° ΠΏΠ»Π°Ρ‚Π΅, Ρ‚ — число ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (s Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ Π²Π΅Π»ΠΈΠΊΠΎ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚). Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ C (i, j) ΠΈ D (k, l) Π·Π°Π΄Π°ΡŽΡ‚ΡΡ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ хотя Π±Ρ‹ Π΄Π²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ· Ρ‚ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ способы соСдинСния с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

p0 — Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ совпадСния способов соСдинСния с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

p1 — Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ совпадСниС способов соСдинСния с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

Π³Π΄Π΅ — Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ совпадут количСства соСдинСний ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ,

— Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ Π΄Π²ΡƒΡ… рассматриваСмых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ совпадут количСства соСдинСний ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ.

Π’Π°ΠΊ ΠΊΠ°ΠΊ p1 = 1 — p0, Ρ‚ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ .

Π”Π°ΠΆΠ΅ для простой Π·Π°Π΄Π°Ρ‡ΠΈ, Π³Π΄Π΅ число способов соСдинСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ s = 5 ΠΈ Ρ‡ΠΈΡΠ»ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ‚ = 10 такая Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½Π° 0,46, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°Π»Π°, поиск Ρ‚Π°ΠΊΠΈΡ… эквивалСнтных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ½ΠΈΠ·ΠΈΡ‚ быстродСйствиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊΠΈΠ΅ эквивалСнтныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈ дальнСйшСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.

Если Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ, Ρ‚ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска для Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚=4 ΠΈ ΠΏ=4 ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 1312 ΡƒΠ·Π»ΠΎΠ². ИспользованиС ограничСния, ΠΊΠ°ΡΠ°ΡŽΡ‰Π΅Π³ΠΎΡΡ симмСтрии ΠΏΠ»Π°Ρ‚Ρ‹ Π΄Π°Ρ‘Ρ‚ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΎΠΊΠΎΠ»ΠΎ 656 ΡƒΠ·Π»ΠΎΠ².

Π’Π°Π±Π»ΠΈΡ†Π° 1. ΠžΡ†Π΅Π½ΠΊΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ

Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅

АналитичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΡ†Π΅Π½ΠΊΠΈ

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для ΠΏ = 4, Ρ‚ = 4

НСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ

;

1312 ΡƒΠ·Π»ΠΎΠ² (ΠΎΡ†Π΅Π½ΠΊΠ° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ)

ΠŸΠ»Π°Ρ‚Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ось симмСтрии

;

656 ΡƒΠ·Π»ΠΎΠ² (ΠΎΡ†Π΅Π½ΠΊΠ° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ)

3.3 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΈ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹)

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‡Ρ‚ΠΎ, для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ†. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ поиска с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡΠΌΠΈ. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ связано с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ, ΠΈ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ).

Для примСнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ† ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° для частичных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для всСх частичных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π΄Π»Ρ всСх Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ выполнятся ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅:

cost? cost (1).

Π’ Π½Π°ΡˆΠ΅ΠΌ случаС ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ частичных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² Π·Π°Π΄Π°Π½ΠΈΠΈ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ: Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΎΠ±Ρ‰Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹ использованного ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ i-ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² k-ΠΉ ячСйкС ΠΈ j-ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² l-ΠΉ ячСйкС стоит C (i, j) D (k, l), Π³Π΄Π΅ C — ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° числа связСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Π° D — ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° расстояний ΠΌΠ΅ΠΆΠ΄Ρƒ ячСйками. Если Ρƒ Π½Π°Ρ имССтся частичноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ((i1, j1), (i2, j2),…,(im, jm)), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ i1 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° размСщаСтся Π² j1 ячСйкС ΠΈ Ρ‚. Π΄., Ρ‚ΠΎ Π΅Π³ΠΎ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ вычисляСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ:

cost := 0;

for k :=2 to m do

for l:=1 to (k-1) do cost := cost + C (ik, il)*D (jk, jl)

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

Алгоритм 1. Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΎΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ†, Π½ΠΎ Π² Π½Ρ‘ΠΌ всё ΠΆΠ΅ Π΅ΡΡ‚ΡŒ свои отличия, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. НапримСр, Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² S1 Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΎΡΡŒ всё мноТСство А1, Π² Π½Π°ΡˆΠ΅ΠΌ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ симмСтричности ΠΏΠ»Π°Ρ‚Ρ‹ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ S1 Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ А1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ся симмСтричными Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ, Ρ‚. Π΅. мноТСство. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Π½Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ эквивалСнтныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π”Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° — Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ считаСтся искомым Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Ссли k Ρ€Π°Π²Π½ΠΎ числу ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½Ρ‹ΠΉ; послС прСобразования ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Алгоритм 2. РСкурсивный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

3. ΠžΡ†Π΅Π½ΠΊΠ° асимптотичСской Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° (ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ) ВычислСниС ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ†Π΅Π½ΠΊΠΈ эффСктивности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ сравнСния Π΅Π³ΠΎ с ΡΡ‚Π°Π»ΠΎΠ½ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ для Π·Π°Π΄Π°Ρ‡ΠΈ с ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ. Π’ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ использован для исслСдования асимптотичСской Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ячССк ΠΏ Π½Π° ΠΏΠ»Π°Ρ‚Π΅.

Алгоритм ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ для исслСдования Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² поиска ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ†, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовался Π² Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Алгоритм 3. ИсслСдованиС Π΄Π΅Ρ€Π΅Π²Π° поиска ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ

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

1). ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся.

Π’Π°Π±Π»ΠΈΡ†Π° 2. ИсслСдованиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈ постоянном количСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΊΠΎΠΌΠΏ.*ячСйки)

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ

ЀактичСски

Число ΡƒΠ·Π»ΠΎΠ²

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

Число ΡƒΠ·Π»ΠΎΠ²

ВрСмя, млс

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

4*4

;

;

;

4*5

Π² 2.8 Ρ€Π°Π·

4*6

Π² 1.8 Ρ€Π°Π·

Π² 1.9 Ρ€Π°Π·

4*7

Π² 2.2 Ρ€Π°Π·

Π² 1.5 Ρ€Π°Π·

4*8

Π² 1.7 Ρ€Π°Π·

Π² 1.3 Ρ€Π°Π·

4*9

Π² 1.4 Ρ€Π°Π·

Π² 1.5 Ρ€Π°Π·

4*10

Π² 1.4 Ρ€Π°Π·

Π² 1.3 Ρ€Π°Π·

Из Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, врСмя поиска фактичСски увСличиваСтся Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ количСство Ρ€Π°Π· (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 1,5 Ρ€Π°Π·). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΌ количСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° ΠΏΠ»Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ‘ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ исслСдованиС для случая, ΠΊΠΎΠ³Π΄Π° количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ измСняСтся ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ количСству ячССк.

Π’Π°Π±Π»ΠΈΡ†Π° 3. ИсслСдованиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΌΡΡ количСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΊΠΎΠΌΠΏ.*ячСйки)

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ

ЀактичСски

Число ΡƒΠ·Π»ΠΎΠ²

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

Число ΡƒΠ·Π»ΠΎΠ²

ВрСмя, млс

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

4*4

;

;

;

5*5

Π² 21 Ρ€Π°Π·

6*6

Π² 40 Ρ€Π°Π·

Π² 52 Ρ€Π°Π·Π°

7*7

Π² 52 Ρ€Π°Π·Π°

Π² 59 Ρ€Π°Π·

8*8

Π² 32 Ρ€Π°Π·Π°

9*9

10*10

Из Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 3 Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ измСняСтся ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ количСству ячССк, ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, врСмя поиска увСличиваСтся Π½Π΅ Π² ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π° Ρ€Π°Π·Π°, ΠΊΠ°ΠΊ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС, Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 40−50 Ρ€Π°Π·. ΠŸΡ€ΠΈ размСрности Π·Π°Π΄Π°Ρ‡ΠΈ 7*7 фактичСскоС врСмя вычислСний составляСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 6,5 ΠΌΠΈΠ½ΡƒΡ‚, фактичСскоС число исслСдованных ΡƒΠ·Π»ΠΎΠ² — 48 841 193. Зная это, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ врСмя поиска Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 8*8: Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ количСство ΡƒΠ·Π»ΠΎΠ² Π² Π΄Π΅Ρ€Π΅Π²Π΅ поиска Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ для Π·Π°Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½ΠΎΠΉ размСрности составляСт 1 558 443 648 ΡƒΠ·Π»ΠΎΠ², Ρ‚. Π΅. Π² 32 Ρ€Π°Π·Π° большС, Ρ‡Π΅ΠΌ для Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 7*7, Ρ‚ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ врСмя поиска Π±ΡƒΠ΄Π΅Ρ‚ большС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Ρ€Π°Π· ΠΈ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 3,5 часов.

4. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

4.1 РСализация Π΄Π°Π½Π½Ρ‹Ρ…

Для Π½Π°Ρ‡Π°Π»Π° опрСдСлимся с ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ak — k-Π³ΠΎ элСмСнта Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ ΠΏΡƒΠ½ΠΊΡ‚Π΅ 3 (формализация Π·Π°Π΄Π°Ρ‡ΠΈ) ΡƒΡΠ»ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Π°k Π΅ΡΡ‚ΡŒ Π΄Π²ΠΎΠΉΠΊΠ° чисСл (j, l), Π³Π΄Π΅ j — Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° l — Π½ΠΎΠΌΠ΅Ρ€ ячСйки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располагаСтся данная ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π›ΠΎΠ³ΠΈΡ‡Π½Π΅Π΅ всСго Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ запись с Π΄Π²ΡƒΠΌΡ полями цСлочислСнного Ρ‚ΠΈΠΏΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ Π΅ΡΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ — Π½ΠΎΠΌΠ΅Ρ€ ячСйки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ помСщаСтся данная ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

TElement = record

i, j: byte;

end;

Π’Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн соотвСтствСнно Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ массивом Π΄Π°Π½Π½Ρ‹Ρ… записСй, Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Sk прСдставим ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ массивом ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… булСвского Ρ‚ΠΈΠΏΠ°. Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ случаС Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ i-ΠΎΠΉ строки ΠΈ j-Π³ΠΎ столбца Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TRUE Ссли Π΄Π²ΠΎΠΉΠΊΠ° (i, j) Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΈ FALSE Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Sk Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ пустым, Ссли Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ всСх строк ΠΈ Π²ΡΠ΅Ρ… столбцов Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ значСния FALSE.

4.2 РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ† Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚Π°ΠΊΠΈΡ… Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊΠ°ΠΊ

1) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° мноТСства ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Sk Π½Π° ΠΏΡƒΡΡ‚ΠΎΡ‚Ρƒ

2) Π’Ρ‹Π±ΠΎΡ€ элСмСнта ak ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Sk Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

3) Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ak ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Sk

4) ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ стоимости частичного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

5) ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ мноТСства Sk

1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° мноТСства ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Sk Π½Π° ΠΏΡƒΡΡ‚ΠΎΡ‚Ρƒ. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ мноТСства ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ TRUE. Если Ρ‚Π°ΠΊΠΎΠΉ элСмСнт Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Ρ‚ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ пусто.

2. Π’Ρ‹Π±ΠΎΡ€ элСмСнта ak ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Sk Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ 1, Π½ΠΎ Π½ΠΎΠΌΠ΅Ρ€ строки элСмСнта со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ TRUE записываСтся Π² ΠΏΠΎΠ»Π΅ i ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° Π½ΠΎΠΌΠ΅Ρ€ строки Π² ΠΏΠΎΠ»Π΅ j.

3. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ak ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Sk: Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Sk элСмСнт стоящий Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строки столбца ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FALSE.

4. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ стоимости частичного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠŸΡƒΡΡ‚, А — пСрСмСнная Ρ‚ΠΈΠΏΠ° TElement, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ k — Π΄Π»ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‚ΠΎ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ частичного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ вычисляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ:

functuion SolCost (k: byte):word;

var i, j: byte;

cost: word;

begin

cost := 0;

for i:=2 to k do

for j:=1 to (i-1) do begin

cost := cost + (C[A[i]. j][A[j].j]*D[A[i].i][A[j].i]);

end;

SolCost := cost;

end;

5. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ мноТСства Sk. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ мноТСства Sk, Ρ‚. Π΅. для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹, Π½Π°ΠΉΡ‚ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ массив Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ массивы, ΠΈ Ρ‚Π΅ ΡΠΎΡ€ΠΎΠΊΠΈ ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FALSE Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡ€Π°Π²Π½ΡΡ‚ΡŒ этому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

РСкурсивный ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ структурой. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΡΡ‚ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

4.3 ИсслСдованиС способов программирования. Π₯арактСристики ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написана Π½Π° Borland Delphi 7.0 ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Бписок ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ Π½ΠΈΠΆΠ΅:

Π’Π°Π±Π»ΠΈΡ†Π° 4. Бписок ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

НазваниС модуля

НазначСниС модуля

Π Π°Π·ΠΌΠ΅Ρ€ исход. ΠΊΠΎΠ΄Π°

Π Π°Π·ΠΌΠ΅Ρ€ модуля dcu

ВрСмя выполнСния

KR_mainu

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3698 Π±Π°ΠΉΡ‚

;

;

KR_data

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…

678 Π±Π°ΠΉΡ‚

812 Π±Π°ΠΉΡ‚

;

KR_proc

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€

9450 Π±Π°ΠΉΡ‚

8156 Π±Π°ΠΉΡ‚

;

KR_treeb

ΠœΠΎΠ΄ΡƒΠ»ΡŒ, содСрТащий ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ способом Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ

1143 Π±Π°ΠΉΡ‚

1152 Π±Π°ΠΉΡ‚

6406 мс

KR_Btreeb

ΠœΠΎΠ΄ΡƒΠ»ΡŒ, содСрТащий ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ способом с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡΠΌΠΈ

1011 Π±Π°ΠΉΡ‚

1137 Π±Π°ΠΉΡ‚

3188 мс

KR_recurs

ΠœΠΎΠ΄ΡƒΠ»ΡŒ, содСрТащий ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ рСкурсивным способом Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ

1370 Π±Π°ΠΉΡ‚

1395 Π±Π°ΠΉΡ‚

6719 мс

ΠžΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ exe-ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ — 448 512 Π±Π°ΠΉΡ‚. ВрСмя выполнСния ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ·ΠΌΠ΅Ρ€ΡΠ»ΠΎΡΡŒ Π½Π° Π·Π°Π΄Π°Ρ‡Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 6 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° 6 ячССк.

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

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ стали составлСниС, программная рСализация ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΈ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ характСристики:

Π’Π°Π±Π»ΠΈΡ†Π° 5. Π₯арактСристики ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π Π°Π·ΠΌΠ΅Ρ€ исполняСмого ΠΊΠΎΠ΄Π°, Π±Π°ΠΉΡ‚

ВрСмя выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 6 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° 6 ячССк, мс

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

РСкурсивный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 5 ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ рСкурсивный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска уступаСт ΠΊΠ°ΠΊ Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌ объСмС памяти, Ρ‚Π°ΠΊ ΠΈ Π² ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ выполнСния поиска.

Если ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ячСйки, симмСтрична, Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ эквивалСнтныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ° поиска. АналогичныС характСристики ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ случаС выглядят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Ρ€Π°Π·ΠΌΠ΅Ρ€ исполняСмого ΠΊΠΎΠ΄Π° 1137 Π±Π°ΠΉΡ‚, врСмя выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 6 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° 6 ячССк — 3188 мс.

ЦСль задания для Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ — исслСдованиС асимптотичСской Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ячССк Π½Π° ΠΏΠ»Π°Ρ‚Π΅. ИсслСдованиС Π΄Π°Π½Π½ΠΎΠΉ асимптотичСской Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ для Π΄Π²ΡƒΡ… случаСв: ΠΊΠΎΠ³Π΄Π° число ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ постоянно ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ измСняСтся ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ числу ячССк. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… исслСдований ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… 2 ΠΈ 3. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ — О (сп), (ΠΏΡ€ΠΈ этом коэффициСнт с1 для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ случая Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС с2). ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ зависимостСй Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π·Π°Π΄Π°Ρ‡ΠΈ.

Рисунок 2. Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ зависимостСй Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π·Π°Π΄Π°Ρ‡ΠΈ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ исходной Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написана Π½Π° Borland Delphi 7.0 ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

unit KR_mainu;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, KR_treeb, ExtCtrls, ComCtrls, XPMan, Spin, KR_data, KR_proc, KR_recurs, KR_Btreeb, KR_near;

type

TForm1 = class (TForm)

Matrix_D: TGroupBox;

Memo1: TMemo;

GroupBox1: TGroupBox;

Memo2: TMemo;

Label1: TLabel;

Label2: TLabel;

GroupBox2: TGroupBox;

Label3: TLabel;

Button2: TButton;

Label4: TLabel;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Button3: TButton;

GroupBox3: TGroupBox;

Button1: TButton;

RichEdit1: TRichEdit;

SpinEdit1: TSpinEdit;

Label8: TLabel;

SpinEdit2: TSpinEdit;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

Button4: TButton;

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1. Button2Click (Sender: TObject);

var int: integer;

begin

int := SpinEdit1. Value;

InitD (int);

int := SpinEdit2. Value;

if (SpinEdit2.Value>SpinEdit1.Value) then begin

SpinEdit2.Value := SpinEdit1. Value;

int := SpinEdit1. Value;

end;

InitC (int);

Button3.Enabled := TRUE;

Memo1.Lines.Text := Cstr;

Memo2.Lines.Text := Dstr;

end;

procedure TForm1. Button3Click (Sender: TObject);

const wait = 'Π–Π΄ΠΈΡ‚Π΅. Π˜Π΄Ρ‘Ρ‚ поиск…';

name = '" Π­Π»Π΅ΠΊΡ‚ΠΎΡ€Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ‹" ';

var int: integer;

begin

Form1.Caption := wait;

int := SpinEdit2. Value;

if (Form1.RadioButton1.Checked) then TreeBench (int, SpinEdit1. Value);

if (Form1.RadioButton2.Checked) then NearMethod (int);

if (Form1.RadioButton3.Checked) then BT. InitBackTrack (int, SpinEdit1. Value);

if (Form1.RadioButton4.Checked) then TreeBenchB (int, SpinEdit1. Value);

Form1.Caption := name;

RichEdit1.Text := answer;

end;

procedure TForm1. Button1Click (Sender: TObject);

const mess =

' Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ:'+^M^J+^M^J+

' Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² n' + ^M^J+

'ячСйках Π½Π° ΠΏΠ»Π°Ρ‚Π΅. Число соСдинСний ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎ'+^M^J+

'Π½Π΅Π½Ρ‚ задаСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ C, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ C (i, j) — число св'+^M^J+

'язСй ΠΌΠ΅ΠΆΠ΄Ρƒ i-ΠΉ ΠΈ j-ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. РасстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°'+^M^J+

'Ρ€Π°ΠΌΠΈ мСст задаСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ D, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ D (k, l) — рас-'+^M^J+

'стояниС ΠΌΠ΅ΠΆΠ΄Ρƒ k-ΠΉ ΠΈ l-ΠΉ ячСйками.' +^M^J+

' Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΎΠ±Ρ‰Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹ использован-'+^M^J+

'Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Ρ€Π°Π·-ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ i-ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² k-ΠΉ ячСйкС ΠΈ'+^M^J+

'j-ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² l-ΠΉ ячСйкС стоит C (i, j) D (k, l).'+^M^J+

' Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйкС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½'+^M^J+

'Π΅Π½Ρ‚Ρƒ, ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄'+^M^J+

'Π½ΠΎΠΉ ячСйкС. Найти Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΡΡ‡Π΅ΠΉΠΊΠ°Ρ…, ΠΌΠΈΠ½ΠΈ'+^M^J+

'ΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±Ρ‰ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ использованного ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°.';

begin

Application.MessageBox (mess, 'Π‘ΠΏΡ€Π°Π²ΠΊΠ°', MB_OKCANCEL) = IDOK;

end;

procedure TForm1. Button4Click (Sender: TObject);

var int, check: integer;

begin

check := SpinEdit2. Value;

case check of

1.5: int := 1000;

6: int := 100;

7: int := 25;

else int := 2;

end;

if (Form1.RadioButton1.Checked) then MonteKarlo (int, SpinEdit2. Value, SpinEdit1. Value);

if (Form1.RadioButton4.Checked) then MonteKarloB (100,SpinEdit2.Value, SpinEdit1. Value);

RichEdit1.Text := answer;

end;

end.

unit KR_data;

interface

const Cmaxsize = 15;

inf = 1 000 000;

type TElement = record {запись для элСмСнта Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ}

i, j: byte;

end;

Tsquere = array [1.Cmaxsize, 1. Cmaxsize] of boolean;{Ρ‚ΠΈΠΏ для мноТСства ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅}

TSol = array [1.Cmaxsize] of TElement; {Ρ‚ΠΈΠΏ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ}

var C, D: array [1.Cmaxsize, 1. Cmaxsize] of integer; {массивы C ΠΈ D}

Cstr, Dstr: string;

S: array [0.Cmaxsize] of Tsquere; {мноТСство мноТСств ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π² Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅}

bestsol, A: TSol; {Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΈ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ}

answer: string;

implementation

end.

unit KR_proc;

interface

uses SysUtils, Windows, Math, KR_data;

var

cost, lowcost: longword;

procedure initC (N: integer);

procedure initD (N: integer);

procedure SetS;

function SNotZero (k, sizeC, sizeD: byte):boolean;

function SNotZeroB (k, size, sizeD: byte):boolean;

function ElementFromSB (k, size, sizeD: byte):word;

function ElementFromS (k, size, sizeD: byte):word;

function SolCost (k: byte):word;

procedure FindNewS (k, size: byte);

procedure RecordAnswer (size: byte; lowcost: word; time: longint; uzels: longword);

function powerS (k, size, sizeD: integer):integer;

function RandomElementFromS (k, size, sizeD: byte):word;

function MonteKarlo (N, size, sizeD: integer):longword;

function powerSB (k, size, sizeD: integer):integer;

function RandomElementFromSB (k, size, sizeD: byte):word;

function MonteKarloB (N, size, sizeD: integer):longword;

implementation

{ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° формирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ C}

procedure initC (N: integer);

var i, j: byte;

begin

randomize;

for i:=1 to N do begin

for j:=1 to N do begin

if (i <> j) then begin C[i][j]: =random (50)+1;

C[j][i]:= C[i][j];

end

else begin C[i][j]: = inf; end;

end;

end;

Cstr:='';

for i:=1 to N do begin

Cstr := Cstr + ^M^J;

for j:=1 to N do if (i<>j)then

if (C[i][j]>9)then Cstr := Cstr + inttostr (C[i][j])+' '

else Cstr := Cstr + inttostr (C[i][j])+' '

else Cstr := Cstr + ' - ';

end;

end;

{ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° формирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ D}

procedure initD (N: integer);

var i, j: byte;

begin

randomize;

for i:=1 to N do begin

for j:=1 to N do begin

if (i <> j) then begin D[i][j]: =random (50)+1;

D[j][i]: = D[i][j];

end

else begin D[i][j]: = inf; end;

end;

end;

for j:=1 to N do

for i:=1 to (N-j+1) do D[i][j]: =D[N-j+1][N-i+1];

Dstr:='';

for i:=1 to N do begin

Dstr := Dstr + ^M^J;

for j:=1 to N do if (i<>j)then

if (D[i][j]>9)then Dstr := Dstr + inttostr (D[i][j])+' '

else Dstr := Dstr + inttostr (D[i][j])+' '

else Dstr := Dstr + ' - ';

end;

end;

{ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ установка мноТСств Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ}

procedure SetS;

var i, j: byte;

begin

for i:=1 to Cmaxsize do

for j:=1 to Cmaxsize do begin

S[1][i][j] := TRUE;

end;

S[0] := S[1];

end;

{ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡƒΡΡ‚ΠΎΡ‚Ρƒ мноТСства S}

functuion SNotZero (k, sizeC, sizeD: byte):boolean;

var i, j: byte;

begin

SNotZero := FALSE;

if (k > sizeC) then exit;

for j:=1 to sizeC do

for i:=1 to sizeD do

if (S[k][i][j]) then begin

SNotZero := TRUE;

exit;

end;

end;

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