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

Π’ΠΈΠ΄Ρ‹ ΠΈ свойства Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². 
РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ°ΠΉΡ…ΠΈΠ»Π»Π° (ΠΎ стрСлках)

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

ЭвристичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ (ΠΎΡ‚ Π³Ρ€Π΅Ρ‡Π΅ΡΠΊΠΎΠ³ΠΎ слова «ΡΠ²Ρ€ΠΈΠΊΠ°») — это Ρ‚Π°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ достиТСниС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ дСйствий ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° вся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, Π½Π΅ Π²Ρ‹ΡΠ²Π»Π΅Π½Ρ‹ всС дСйствия исполнитСля. К ΡΠ²Ρ€ΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ относят, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, инструкции ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΈΡΠ°Π½ΠΈΡ. Π’ ΡΡ‚ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ логичСскиС… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π’ΠΈΠ΄Ρ‹ ΠΈ свойства Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ°ΠΉΡ…ΠΈΠ»Π»Π° (ΠΎ стрСлках) (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅: «Π’Сория Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов»

Π½Π° Ρ‚Π΅ΠΌΡƒ:

" Π’ΠΈΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ°ΠΉΡ…ΠΈΠ»Π»Π° (ΠΎ ΡΡ‚Ρ€Π΅Π»ΠΊΠ°Ρ…)"

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. ВСорСтичСский вопрос «Π’ΠΈΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²»
  • 1.1 Π’ΠΈΠ΄Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²
  • 1.2 Бвойства Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²
  • 2. РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ°ΠΉΡ…ΠΈΠ»Π»Π° (ΠΎ ΡΡ‚Ρ€Π΅Π»ΠΊΠ°Ρ…)
  • 2.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2.2 РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

Алгоритм — это любая ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ опрСдСлСнная Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Π½Π° Π²Ρ…ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ подаСтся нСкоторая Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся выходная Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ прСдставляСт собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… шагов, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅.

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

Говорят, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½, Ссли для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄. ΠœΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Если Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ, Ρ‚ΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π²ΠΎΠ΄ΠΎΠ² ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ. ΠŸΡ€Π°Π²Π΄Π°, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, Ссли Π² Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ частоту возникновСния ошибок. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΡ‹ Π·Π°ΠΈΠ½Ρ‚СрСсованы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ….

Алгоритм ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ Π½Π° Π΅ΡΡ‚СствСнном языкС, Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ обСспСчСнии. ЕдинствСнноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ — Π΅Π³ΠΎ спСцификация Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ описаниС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. [1, Π‘.46−47]

1. ВСорСтичСский вопрос «Π’ΠΈΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²»

1.1 Π’ΠΈΠ΄Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

МоТно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ основных Ρ‚ΠΈΠΏΠ° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… алгоритмичСских ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ исходными сообраТСниями ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΈΠΏ связываСт понятиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ понятиями ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ — вычислСниями ΠΈ Ρ‡ΠΈΡΠ»ΠΎΠ²Ρ‹ΠΌΠΈ функциями. НаиболСС развитая ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Π°Ρ модСль этого Ρ‚ΠΈΠΏΠ° — рСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - являСтся историчСски ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ понятия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΈΠΏ основан Π½Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠ± Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΠΊΠ°ΠΊ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ устройствС, способном Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ лишь вСсьма ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊΠΎΠ΅ прСдставлСниС Π½Π΅ ΠΎΡΡ‚авляСт сомнСний Π² ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚арности Π΅Π³ΠΎ шагов. Основной тСорСтичСской модСлью этого Ρ‚ΠΈΠΏΠ° являСтся машина Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°.

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

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° довольно Π±Π»ΠΈΠ·ΠΊΠΈ (ΠΈΡ… Π²Π·Π°ΠΈΠΌΠ½Π°Ρ ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ доказываСтся просто). [2, Π‘.154−155]

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

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

Β· мСханичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, ТСсткий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, двигатСля ΠΈ Ρ‚. ΠΏ.);

Β· Π³ΠΈΠ±ΠΊΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Ρ‚. Π΅. вСроятностный ΠΈ ΡΠ²Ρ€ΠΈΡΡ‚ичСский;

Β· вСроятностный (стохастичСский) Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ нСсколькими путями ΠΈΠ»ΠΈ способами, приводящими ΠΊ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΠΌΡƒ Π΄ΠΎΡΡ‚ΠΈΠΆΠ΅Π½ΠΈΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°;

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

Β· Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ — Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ (ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΉ), выполняСмых ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ;

Β· Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, содСрТащий хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ условиС, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π­Π’Πœ обСспСчиваСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… шагов;

Β· цикличСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ дСйствия (ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌΠΈ исходными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. К Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ сводится Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² вычислСний, ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². [3]

1.2 Бвойства Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

Для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ.

1. Π”ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° осущСствляСтся ΠΏΡƒΡ‚Π΅ΠΌ выполнСния дискрСтной Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ) Π½Π΅ΠΊΠΈΡ… элСмСнтарных дСйствий. Π­Ρ‚ΠΈ дСйствия Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ шагами, Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ алгоритмичСским процСссом.

2. Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ)

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ шаг Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½. ДСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ строго ΠΈ Π½Π΅Π΄Π²ΡƒΡΠΌΡ‹ΡΠ»Π΅Π½Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ случая. ΠŸΡ€Π΅Π΄ΠΏΠΈΡΠ°Π½ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° СдинствСнным ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ всякий Ρ€Π°Π· приводят ΠΊ ΠΈΡΠΊΠΎΠΌΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ. Для описания Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ языки программирования, ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ языки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ [5, Π‘.23−24].

3. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ

Π”Π°Π½Π½ΠΎΠ΅ свойство Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° остановки послС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ числа шагов (зависящСго ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…) с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ. Π’ Ρ‡Π°ΡΡ‚ности, всякий, ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ вычислСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f (x), Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ останавливаСтся послС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ числа шагов (говорят, сходится) для любого x ΠΈΠ· ΠΎΠ±Π»Π°ΡΡ‚ΠΈ задания f. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ (ΡΡ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ) нСпросто. Π‘Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΡƒΠ΄Π°Π΅Ρ‚ся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ простым просмотром описания Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°; ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сходимости, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠ³ΠΎ для любого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° А ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ…, Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚.

4. ΠœΠ°ΡΡΠΎΠ²ΠΎΡΡ‚ΡŒ

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Ρƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΊ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΌΡƒ классу Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ достаточно ΡˆΠΈΡ€ΠΎΠΊΠΎ эти Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΈΠ·Π²Π°Π½ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ ΠΌΠ°ΡΡΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚. Π΅. Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ класс ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. НапримСр, Π·Π°Π΄Π°Ρ‡Π° нахоТдСния наибольшСго ΠΎΠ±Ρ‰Π΅Π³ΠΎ дСлитСля чисСл 4 ΠΈ 6 Π΅ΡΡ‚ΡŒ Сдиничная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ Π·Π°Π΄Π°Ρ‡Π° нахоТдСния наибольшСго ΠΎΠ±Ρ‰Π΅Π³ΠΎ дСлитСля ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл Ρ‚ ΠΈ ΠΏ — ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° массовая.

5. Π”ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Говоря ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΈΠΌΠ΅ΡŽΡ‚ Π² Π²ΠΈΠ΄Ρƒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ допустимыС Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚. Π΅. Ρ‚Π°ΠΊΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сформулированы Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Π‘Ρ€Π΅Π΄ΠΈ допустимых Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ, Ρ‚. Π΅. ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡΡΡŒ oΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ искомый Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ, Ρ‚. Π΅. ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡΡΡŒ ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… искомого Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ нСльзя. ΠΠ΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡ‹ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ алгоритмичСский процСсс Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ся, Π»ΠΈΠ±ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡˆΠ°Π³ΠΎΠ² наталкиваСтся Π½Π° ΠΏΡ€Π΅ΠΏΡΡ‚ствиС, Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚ΡƒΠΏΠΈΠΊ. [4, Π‘.314−315]

Π’Π°ΠΊΠΆΠ΅ слСдуСт Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ:

Π°) описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° (ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ);

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

Π²) процСсс Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Ρ‚. Π΅. ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ шагов, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

2. РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ°ΠΉΡ…ΠΈΠ»Π»Π° (ΠΎ ΡΡ‚Ρ€Π΅Π»ΠΊΠ°Ρ…)

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

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Ρ†Π΅ΠΏΡŒ стрСлков ΠΈ ΠΎΡ„ΠΈΡ†Π΅Ρ€. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ находящийся Π² Ρ†Π΅ΠΏΠΈ солдат ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со ΡΠ²ΠΎΠΈΠΌΠΈ сосСдями справа ΠΈ ΡΠ»Π΅Π²Π°. ΠžΡ„ΠΈΡ†Π΅Ρ€ размСщаСтся Π½Π° Ρ„Π»Π°Π½Π³Π΅ Ρ†Π΅ΠΏΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌΡƒ Π² Ρ†Π΅ΠΏΠΈ стрСлку. ΠžΠ±Ρ‰Π΅Π΅ количСство стрСлков Π² Ρ†Π΅ΠΏΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΡΡ‚Ρ€Π΅Π»ΠΊΠΎΠ² нСизвСстно. ΠžΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΡΡ‚Ρ€Π΅Π»ΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со ΡΠ²ΠΎΠΈΠΌΠΈ сосСдями справа ΠΈ ΡΠ»Π΅Π²Π°. ВрСбуСтся ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π·Π°Π»ΠΏ всСх стрСлков Ρ†Π΅ΠΏΠΈ послС ΠΏΠΎΠ΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ„ΠΈΡ†Π΅Ρ€ΠΎΠΌ.

2.2 РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ

Данная Π·Π°Π΄Π°Ρ‡Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ повСдСния стрСлка.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1 прСдставлСна структурная модСль повСдСния стрСлков Π² Π·Π°Π΄Π°Ρ‡Π΅ ΠœΠ°ΠΉΡ…ΠΈΠ»Π»Π°. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΡΡ‚Ρ€Π΅Π»ΠΊΠ°ΠΌ Π² Π·Π°Π΄Π°Ρ‡Ρƒ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π±Π»ΠΎΠΊ, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ„ΠΈΡ†Π΅Ρ€Π° (ΠΎΠ½ ΠΎΡ‚Π΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ стрСлкам), ΠΈ Π±Π»ΠΎΠΊ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… состояний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… модСль Ρ†Π΅ΠΏΠΈ стрСлков.

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π±Π»ΠΎΠΊΠΎΠ²

— Officer — модСль ΠΎΡ„ΠΈΡ†Π΅Ρ€Π°;

— Rifleman 1, 2, … N — ΠΌΠΎΠ΄Π΅Π»ΠΈ стрСлков;

— WriteStates — Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°.

Π‘Π»ΠΎΠΊΠΈ Officer ΠΈ WriteStates Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π²Π΅Π΄Π΅Π½ для удобства управлСния Ρ†Π΅ΠΏΡŒΡŽ стрСлков, Π²Ρ‚ΠΎΡ€ΠΎΠΉ — для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. ВрСмя для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΅Π΄ΠΈΠ½ΠΎ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ся абстрактным дискрСтным Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. ΠžΡ„ΠΈΡ†Π΅Ρ€, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅Π΅ Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠ΅ΠΌΡƒ стрСлку, Ρ‚ΠΎΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΈ Ρ‚. Π΄. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, стрСлки ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. По ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ выстрСл. Π’ ΠΌΠΎΠ΄Π΅Π»ΠΈ — ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² состояниС. ΠŸΡ€ΠΈ этом всС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚Π°ΠΊΡ‚Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ созданным для этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ. [6]

Рисунок 1 — МодСль повСдСния стрСлков Π² Π·Π°Π΄Π°Ρ‡Π΅ ΠœΠ°ΠΉΡ…ΠΈΠ»Π»Π°

РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° языкС высокого уровня Π‘++

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π½ΡƒΡŽ модСль повСдСния стрСлков, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня Π‘++.

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

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сСрвСра («ΠžΡ„ΠΈΡ†Π΅Ρ€») ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° («Π‘Ρ‚Ρ€Π΅Π»ΠΎΠΊ») прСдставлСн Π½ΠΈΠΆΠ΅.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-сСрвСр ΠžΡ„ΠΈΡ†Π΅Ρ€» )

// —————————————————————————————————————;

#include

#include

#pragma hdrstop

#include «Unit1. h»

#define BUFSIZE 512

// —————————————————————————————————————;

#pragma package (smart_init)

#pragma resource «*. dfm»

TForm1 *Form1;

HANDLE hThread;

HANDLE hProcPipe [5];

LPTSTR lpszPipename = «\\. \pipe\pipe1001» ;

HANDLE hPipe;

HANDLE hSemaphoreCount; // дСскриптор сСмафора «Π‘Ρ‡Π΅Ρ‚»

int SemaphoreMax=5; // ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ счСтчика сСмафора, ΠΈ Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅

// Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

int Count=0;

void ConnectShooters (LPVOID); // созданиС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° для общСния с

// ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ

void ShooterThread (LPVOID); // ΠΏΠΎΡ‚ΠΎΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ

void Shoot (); // произвСсти выстрСл

// —————————————————————————————————————;

__fastcall TForm1: TForm1 (TComponent* Owner)

: TForm (Owner)

{

randomize ();

for (int i=0; i<5; i++)

{

hProcPipe [i] =NULL;

}

}

// созданиС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° для общСния с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ

// —————————————————————————————————————;

void ConnectShooters (LPVOID lpvParam)

{

int Number=0;

while (Number<5)

{

bool fConnected;

hPipe = CreateNamedPipe (lpszPipename,

PIPE_ACCESS_DUPLEX,

PIPE_TYPE_MESSAGE |

PIPE_READMODE_MESSAGE |

PIPE_WAIT,

PIPE_UNLIMITED_INSTANCES,

BUFSIZE,

BUFSIZE,

0,NULL);

fConnected = ConnectNamedPipe (hPipe, NULL);

if (fConnected)

{

hProcPipe [Number] =hPipe;

// созданиС ΠΏΠΎΡ‚ΠΎΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ

hThread = CreateThread (NULL,

0, (LPTHREAD_START_ROUTINE) ShooterThread,

(LPVOID) Number,

0,NULL);

Number++;

}

else

CloseHandle (hPipe);

}

}

// ΠΏΠΎΡ‚ΠΎΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ

// —————————————————————————————————————;

void ShooterThread (LPVOID lpvParam)

{

char chBuf [BUFSIZE];

DWORD cbRead, cbWritten;

bool fSuccess;

int n= (int) lpvParam;

while (1)

{

// считываниС ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ· ΠΊΠ°Π½Π°Π»Π°

fSuccess = ReadFile (hProcPipe [n],

chBuf,

BUFSIZE,

&cbRead,

NULL);

if (fSuccess)

{

int result=atoi (chBuf);

switch (result)

{

// Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° «1» ΠΈΠ΄Π΅Ρ‚ прямой счСт

case (1):

Count++;

Form1->StringGrid1->Cells [Count-1] = IntToStr (Count) +" -ΠΉ" ;

break;

// Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° «2» ΠΈΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ счСт

case (2):

Form1->StringGrid1->Cells [Count-1] = IntToStr (Count) +" -ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ принял" ;

Count—;

// ΠΏΡ€ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ счСта ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ выстрСл

if (Count == 0) Shoot ();

break;

default: break;

}

}

else break;

}

CloseHandle (hProcPipe [n]);

hProcPipe [n] =NULL;

}

// выстрСл

void Shoot ()

{

for (int i = 1; i <= 5; i++)

Form1->StringGrid1->Cells [i-1] = «Π’ыстрСл» ;

Form1->Button1->Enabled=true;

}

void __fastcall TForm1: Button1Click (TObject *Sender)

{

STARTUPINFO StartupInfo;

PROCESS_INFORMATION ProcessInfo;

Form1->Button1->Enabled=false;

hThread = CreateThread (NULL,

0, (LPTHREAD_START_ROUTINE) ConnectShooters,

(LPVOID) 0,0,NULL);

if (hThread == NULL) {PrintInfo («ΠžΡˆΠΈΠ±ΠΊΠ° ΠΏΡ€ΠΈ создании ΠΏΠΎΡ‚ΠΎΠΊΠ°»); return; }

// для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ стрСлка создаСм процСсс

for (int i=0; i<5; i++)

{

ZeroMemory (&StartupInfo, sizeof (StartupInfo));

StartupInfo. cb=sizeof (StartupInfo);

StartupInfo. dwFlags = STARTF_USESHOWWINDOW;

StartupInfo. wShowWindow = SW_HIDE;

// ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ счСта

// «ΡΡ‚Ρ€Π΅Π»ΠΊΠΎΠ²-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²»

int ShooterSleep= (i+1) *1000;

AnsiString CommandLine="" ;

CommandLine="Shooter «+IntToStr (i) +» «+IntToStr (ShooterSleep);

if (!

CreateProcess (NULL,

CommandLine. c_str (), // Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡ‚Ρ€ΠΎΠΊΡƒ,

// ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку для выполнСния

NULL,

NULL,

false,

0,NULL,

GetCurrentDir (). c_str (), // имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

&StartupInfo, // информация прСдустановки

&ProcessInfo)) // информация ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅

{PrintInfo («ΠΠ΅ ΠΌΠΎΠ³Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ процСсс»); return; }

hProcPipe [i] =ProcessInfo. hProcess;

}

// создаСм сСмафор «Π‘Ρ‡Π΅Ρ‚»

hSemaphoreCount = CreateSemaphore (NULL, // АдрСс структуры TSecurityAttributes

SemaphoreMax, // Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика

SemaphoreMax, // максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

// счСтчика

" SemaphoreCount"); // имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

}

// —————————————————————————————————————;

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π‘Ρ‚Ρ€Π΅Π»ΠΎΠΊ» )

// —————————————————————————————————————-

#include

#include

#define BUFSIZE 512

#define N 5

#pragma hdrstop

// —————————————————————————————————————;

#pragma argsused

LPTSTR lpszPipename="\\. \pipe\pipe1001″ ;

HANDLE hPipe;

HANDLE hSemaphoreCount; // дСскриптор сСмафора «Π‘Ρ‡Π΅Ρ‚»

// ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСния Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€

void MsgToServer (int Message)

{

char chBuf [BUFSIZE];

bool fSuccess;

DWORD cbWritten;

AnsiString S=IntToStr (Message);

wsprintf (chBuf, (const char*) S. c_str ()," /0″);

fSuccess =WriteFile (hPipe,

chBuf,

BUFSIZE,

&cbWritten,

NULL);

}

// основная функция

int main (int argc, char* argv [])

{

randomize ();

char chBuf [BUFSIZE];

DWORD cbRead, cbWritten, dwMode;

// Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ счСта стрСлков

int ShooterSleep=atoi (argv [2]);

// ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ дСскриптора ΠΊΠ°Π½Π°Π»Π°

while (1)

GENERIC_WRITE,

FILE_SHARE_READ,

NULL,

OPEN_EXISTING,

0,NULL);

if (hPipe! = INVALID_HANDLE_VALUE) break;

if (GetLastError ()! = ERROR_PIPE_BUSY) return 1;

if (! WaitNamedPipe (lpszPipename, 20 000)) return 1;

Sleep (ShooterSleep);

while (1)

{

// ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ дСскриптора сСмафора «Π‘Ρ‡Π΅Ρ‚»

hSemaphoreCount = OpenSemaphore (SEMAPHORE_ALL_ACCESS, 0, «SemaphoreCount»);

// «Π·Π°ΡΡ‹ΠΏΠ°Π½ΠΈΠ΅» ΠΏΠΎΡ‚ΠΎΠΊΠ° для выполнСния очСрСдности счСта

Sleep (ShooterSleep);

// Ссли сСмафор Π² ΡΠΈΠ³Π½Π°Π»ΡŒΠ½ΠΎΠΌ состоянии, Ρ‚ΠΎ ΠΈΠ΄Π΅Ρ‚ прямой счСт

// ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°, Π΄Π°Π»Π΅Π΅ — ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ счСт

if (WaitForSingleObject (hSemaphoreCount, 0) == WAIT_OBJECT0) MsgToServer (1);

else break;

}

// ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ счСт

MsgToServer (2);

// «Π·Π°ΡΡ‹ΠΏΠ°Π½ΠΈΠ΅» для выполнСния очСрСдности ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ счСта

Sleep ((5000-ShooterSleep) *2);

// Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ дСскрипторов

CloseHandle (hPipe);

CloseHandle (hSemaphoreCount);

return 0;

}

// —————————————————————————————————————-

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ логичСский матСматичСский свойство

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

Π’ Ρ‚СорСтичСской части Π±Ρ‹Π»ΠΈ рассмотрСны Π²ΠΈΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

Алгоритм прСдставляСт собой Π»ΡŽΠ±ΡƒΡŽ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, Π½Π° Π²Ρ…ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся выходная Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

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

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

Π›ΡŽΠ±ΠΎΠΉ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ поставлСнный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌΠΈ свойствами, ΠΊΠ°ΠΊ Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ, Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, ΠΌΠ°ΡΡΠΎΠ²ΠΎΡΡ‚ΡŒ, Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΠΏΡ€Π°ΠΊΡ‚ичСской части Π±Ρ‹Π»ΠΎ рассмотрСно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ°ΠΉΡ…ΠΈΠ»Π»Π° ΠΎ ΡΡ‚Ρ€Π΅Π»ΠΊΠ°Ρ…. Данная Π·Π°Π΄Π°Ρ‡Π° Π±Ρ‹Π»Π° Ρ€Π΅ΡˆΠ΅Π½Π° с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ повСдСния стрСлков. Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° синхронизации Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π»ΠΏΠ° всСх стрСлков Ρ†Π΅ΠΏΠΈ.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. ΠšΠΎΡ€ΠΌΠ΅Π½ Π’., ЛСйзСрсон Π§., РивСст Π ., Π¨Ρ‚Π°ΠΉΠ½ К. Алгоритмы: построСниС ΠΈ Π°Π½Π°Π»ΠΈΠ·. — Πœ.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2011. — 1296 с.

2. ΠšΡƒΠ·Π½Π΅Ρ†ΠΎΠ² О.П., АдСльсон-Π’Π΅Π»ΡŒΡΠΊΠΈΠΉ Π“.М. ДискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°. — Πœ.: Π­Π½Π΅Ρ€Π³ΠΎΠ°Ρ‚ΠΎΠΌΠΈΠ·Π΄Π°Ρ‚, 1988. — 480 с.

3. ΠΠ»ΡŒΡ„Π° ΠΈ ΠžΠΌΠ΅Π³Π° [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. Π Π΅ΠΆΠΈΠΌ доступа: http://alfa2omega.ru. Π”Π°Ρ‚Π° доступа: 13.12.2012.

4. Игошин Π’.И. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Ρ‚Сория Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². — Πœ.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ†Π΅Π½Ρ‚Ρ€ «ΠΠΊΠ°Π΄Π΅ΠΌΠΈΡ», 2009. — 448 с.

5. ΠšΠ½ΡƒΡ‚ Π”. Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования, Ρ‚ΠΎΠΌ 1. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ — М.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2007. — 720с.

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