ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΎΡ‡Π΅Π½ΡŒ быстро...
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ вмСстС Π΄ΠΎ ΠΏΠΎΠ±Π΅Π΄Ρ‹

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ структуры распрСдСлённого ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ гСнСтичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π·Π°Π»ΠΎΠΆΠΈΠ» Π§Π°Ρ€Π»ΡŒΠ· Π”Π°Ρ€Π²ΠΈΠ½ Π² ΡΠ²ΠΎΠ΅ΠΉ самой Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ — «ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΎΠ²». Π‘Π°ΠΌΡ‹ΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π±Ρ‹Π» Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ силС ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ — Сю ΠΏΡ€ΠΈΠ·Π½Π°Π²Π°Π»ΡΡ СстСствСнный ΠΎΡ‚Π±ΠΎΡ€. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами — Π²Ρ‹ΠΆΠΈΠ²Π°Π΅Ρ‚ сильнСйший (Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС этого слова). ЗабСгая Π²ΠΏΠ΅Ρ€Π΅Π΄, Π·Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ любой ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ шаг, ΠΊΠ°ΠΊ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ самых… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ структуры распрСдСлённого ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ гСнСтичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1. ΠžΠ±Π·ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области

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

3. ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

3.1 ГСнСтичСскоС прСдставлСниС Π·Π°Π΄Π°Ρ‡ΠΈ

3.2 Наброс

3.3 ВычислСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности

3.4 Наброс

3.5. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Π² ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ

3.6 УсловиС окончания счёта

3.7 Π‘ΠΊΡ€Π΅Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅

3.8 ΠœΡƒΡ‚Π°Ρ†ΠΈΡ

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

4.1 Π‘Ρ…Π΅ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

4.2 ОписаниС основных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

4.4 ВСстированиС ΠΈ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

Π•Ρ‰Π΅ Π² XVII столСтии Π²Π΅Π»ΠΈΠΊΠΈΠΉ Π›Π΅ΠΉΠ±Π½ΠΈΡ† пытался Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΉΠ½Ρƒ «Π’сСобщСго Π˜ΡΠΊΡƒΡΡΡ‚Π²Π° Π˜Π·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΡ». Он ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π», Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… частСй этого искусства являСтся ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΈΠΊΠ° — ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ постСпСнно ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ исходных Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ являСтся эвристика — свойство Π΄ΠΎΠ³Π°Π΄ΠΊΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. И ΡΠ΅ΠΉΡ‡Π°Ρ вторая Ρ‡Π°ΡΡ‚ΡŒ Π˜ΡΠΊΡƒΡΡΡ‚Π²Π° Π˜Π·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΡ всС Π΅Ρ‰Π΅ остаСтся нСраскрытой. На ΡΠ·Ρ‹ΠΊΠ΅ нашСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ эта Ρ‡Π°ΡΡ‚ΡŒ — модСль ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π² ΡΠ΅Π±Ρ процСссы Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ эвристик (Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ, ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠΉ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΉ).

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Они находят ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°ΡƒΠΊΠ΅ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ подчас просто ΠΏΠΎΡ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π·Π°Π»ΠΎΠΆΠΈΠ» Π§Π°Ρ€Π»ΡŒΠ· Π”Π°Ρ€Π²ΠΈΠ½ Π² ΡΠ²ΠΎΠ΅ΠΉ самой Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ — «ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΎΠ²». Π‘Π°ΠΌΡ‹ΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π±Ρ‹Π» Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ силС ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ — Сю ΠΏΡ€ΠΈΠ·Π½Π°Π²Π°Π»ΡΡ СстСствСнный ΠΎΡ‚Π±ΠΎΡ€. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами — Π²Ρ‹ΠΆΠΈΠ²Π°Π΅Ρ‚ сильнСйший (Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС этого слова). ЗабСгая Π²ΠΏΠ΅Ρ€Π΅Π΄, Π·Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ любой ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ шаг, ΠΊΠ°ΠΊ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ самых ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… (ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…) особСй. Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ, Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π”Π°Ρ€Π²ΠΈΠ½Π° Π±Ρ‹Π» Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²ΠΎΡΡ‚ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠΎΠ². Аналогом Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΊΠΎΠ½Π° Ρƒ Π²ΡΠ΅Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² являСтся шаг Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… экзСмпляров искомых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, структур, особСй, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²).

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

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

Π”Π°Π½Π½Ρ‹ΠΉ курсовой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ состоит ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²:

Π Π°Π·Π΄Π΅Π» 1 — ΠžΠ±Π·ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ описаниС гСнСтичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сСлСкции, ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ, скрСщивания, примСняСмых для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ гСнСтичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

Π Π°Π·Π΄Π΅Π» 2 — ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ выполняСтся описаниС поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

Π Π°Π·Π΄Π΅Π» 3 — ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

Π Π°Π·Π΄Π΅Π» 4 — ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация. Бостоит ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ части, Ρ‚Π°ΠΊΠΆΠ΅ Π² Π½Ρ‘ΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов ΠΈ ΠΈΡ… ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.

1. ΠžΠ±Π·ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области

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

Π’ Π΄Π°Π½Π½ΠΎΠΌ курсовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠ΄Π½Π° ΠΈΠ· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ГАраспрСдСлённый ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ гСнСтичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° осущСствляСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ нСзависимых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ…ромосомы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ создаваСмой особи. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° кодирования ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

Β· Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅;

Β· Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

Π’ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ кодирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ N Π±ΠΈΡ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ N ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ шаг Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π ΠŸΠ“Π — распрСдСлСниС хромосом Π½Π° ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ: это осущСствляСтся ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ приспособлСнности, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ хромосомС.

Π”Π°Π»Π΅Π΅ всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия производятся Π²Π½ΡƒΡ‚Ρ€ΠΈ подпопуляций.

Начиная с ΡΡ‚ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π ΠŸΠ“Π Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΡ‚Π±ΠΎΡ€ хромосом Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅.

Из ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поколСния Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ пСрСходят всС хромосомы, Π° Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСбольшоС количСство Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности хромосом. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ популяции Π½Π΅ Ρ€Π°Π·Ρ€Π°ΡΡ‚Π°Π»ΠΈΡΡŒ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° — рСпродукция. Она состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… подшагов:

Β· сСлСкция;

Β· скрСщиваниС;

Β· мутация;

БСлСкция — Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π‘ΠΊΡ€Π΅Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅ — гСнСрация Π½ΠΎΠ²ΠΎΠΉ хромосомы, объСдиняя гСнСтичСский ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΄Π²ΡƒΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ…. БущСствуСт нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² скрСщивания. НаиболСС простым являСтся ΠΎΠ΄Π½ΠΎΡ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹ΠΉ. Π’ ΡΡ‚ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ просто бСрутся Π΄Π²Π΅ хромосомы, сформированныС Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сСлСкции, ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π΅Π·Π°ΡŽΡ‚ся Π² ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅.

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ прСдставляСт собой случайноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ хромосомы (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ простым ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ состояния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π±ΠΈΡ‚ΠΎΠ² Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅). Π”Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ позволяСт Π±ΠΎΠ»Π΅Π΅ быстро Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π ΠŸΠ“Π Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ экстрСмумы с ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ «ΠΏΠ΅Ρ€Π΅ΡΠΊΠΎΡ‡ΠΈΡ‚ΡŒ» Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ экстрСмум с Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

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

Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ происходит ΠΎΠ±ΠΌΠ΅Π½ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»ΡƒΡ‡Π°ΠΉΠ½Ρ‹Ρ… хромосом Π²Π½ΡƒΡ‚Ρ€ΠΈ подпопуляций.

Π’ Π³Π΅Π½Π΅Ρ‚ичСском Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ сохраняСтся основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ СстСствСнного ΠΎΡ‚Π±ΠΎΡ€Π° — Ρ‡Π΅ΠΌ приспособлСннСС ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΡƒΠΌ (Ρ‡Π΅ΠΌ большС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), Ρ‚Π΅ΠΌ с Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠΊΡ€Π΅Ρ‰ΠΈΠ²Π°Π½ΠΈΠΈ.

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

гСнСтичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ сСлСкция

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

Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΠ°Ρ функция:

Ѐункция исслСдуСтся Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ с ΡˆΠ°Π³ΠΎΠΌ 0,1 ΠΏΠΎ ΠΎΡΠΈ X ΠΈ 0.5 ΠΏΠΎ ΠΎΡΠΈ Y.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для Π ΠŸΠ“Π Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня прСдставлСны Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 2.1.

Π’Π°Π±Π»ΠΈΡ†Π° 2.1. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня

Π Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠΉ популяции

10 Ρ‚ΠΎΡ‡Π΅ΠΊ

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ

Наброс

случайный

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ

Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ (0,3) ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³Π΅Π½Π°

ОбъСдинСниС Π² ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ

ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности

Π‘ΠΊΡ€Π΅Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅

ΠΎΠ΄Π½ΠΎΡ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ΅

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для гСнСтичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сСлСкционСров Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня прСдставлСны Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 2.2.

Π’Π°Π±Π»ΠΈΡ†Π° 2.2. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня

Π Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠΉ популяции

8, 9, 10, 11,12

Наброс

ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка, Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка, случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ

БСлСкция

Π›ΡƒΡ‡ΡˆΠ°Ρ с Π»ΡƒΡ‡ΡˆΠ΅ΠΉ

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ

Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ (0,3)

ОбъСдинСниС Π² ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ

минимальноС Π•Π²ΠΊΠ»ΠΈΠ΄ΠΎΠ²ΠΎ расстояниС, Π»ΡƒΡ‡ΡˆΠΈΠΉ с Ρ…ΡƒΠ΄ΡˆΠΈΠΌΠΈ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности

Π‘ΠΊΡ€Π΅Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅

ΠΎΠ΄Π½ΠΎΡ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ΅

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° IDEF схСма прилоТСния рисунок 2.1(ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ), рисунок 2.2(Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ), рисунок 2.3(Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ).

Рисунок 2.1 IDEF схСма 1-Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

3. ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

3.1 ГСнСтичСскоС прСдставлСниС Π·Π°Π΄Π°Ρ‡ΠΈ

Π₯ромосома прСдставляСтся 4 Π³Π΅Π½Π°ΠΌΠΈ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π³Π΅Π½ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ количСство Ρ‚ΠΎΡ‡Π΅ΠΊ (0−8 Ρ‚ΠΎΡ‡Π΅ΠΊ; 1−9 Ρ‚ΠΎΡ‡Π΅ΠΊ; 2- 10 Ρ‚ΠΎΡ‡Π΅ΠΊ; 3−11 Ρ‚ΠΎΡ‡Π΅ΠΊ; 4−12 Ρ‚ΠΎΡ‡Π΅ΠΊ), ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ количСство ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ (0−10 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ; 1- 25 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ; 2−50 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ; 3−75 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ; 4−100 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π³Π΅Π½ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Π²ΠΈΠ΄ сСтки (0 — Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ, 1 — ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ, 2-случайный наброс), ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ объСдинСния Π² ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ (0 — ΠΏΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°ΡΡΡ‚ΠΎΡΠ½ΠΈΡŽ, 1 — Π»ΡƒΡ‡ΡˆΠΈΠΉ с Ρ…ΡƒΠ΄ΡˆΠΈΠΌΠΈ). Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ хромосома ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.

Рисунок 3 Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС хромосомы

3.2 Наброс

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ наброс осущСствляСтся случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ГСнСрируСтся 10 хромосом, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… структуру Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

3.3 ВычислСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности

Ѐункция приспособлСнности рассчитываСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ хромосомы ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ, структура ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² Π½Π΅ΠΉ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π°. Для вычислСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ гСнСтичСскоС прСдставлСниС. Π₯ромосома прСдставляСтся 20 Π³Π΅Π½Π°ΠΌΠΈ, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 10 ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ Π₯, Π²Ρ‚ΠΎΡ€Ρ‹Π΅ 10 ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ Π£. МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π₯ ΠΈ Π£ — 20, Ρ‚. Π΅. минимальноС количСство Π±ΠΈΡ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для кодирования этого числа — 5. Π’.ΠΊ. шаг измСнСния Π₯-0,1 ΠΈ Π£ — 0.5, Π·Π½Π°Ρ‡ΠΈΡ‚, послС запятой максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ число — 9, для Π΅Π³ΠΎ прСдставлСния Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ 4 Π±ΠΈΡ‚Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π₯ ΠΈ Π£ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ отвСсти ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ для опрСдСлСния Π·Π½Π°ΠΊΠ° (1 — ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅, 0 — ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅). Π˜Ρ‚ΠΎΠ³ΠΎ получаСтся, Ρ‡Ρ‚ΠΎ для хранСния значСния Π₯ ΠΈ Π£ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ 10 Π±ΠΈΡ‚ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ. Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ хромосома ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4.

Рисунок 4 Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС хромосомы

Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поколСния осущСствляСтся ΠΏΡƒΡ‚Π΅ΠΌ наброса ΠΏΠΎ ΡƒΠ·Π»Π°ΠΌ сСтки ΠΈ ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ количСства Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ.(рисунок 5) На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 6 прСдставлСна Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΊΡƒΠ΄Π° выводится информация ΠΎ ΠΎΡΠΎΠ±ΡΡ… популяции.

Рисунок 5 Наброс ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ сСтки

Рисунок 6 ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Ρ‹Π²ΠΎΠ΄Π°

Π’ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ 3 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° сСтки. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ — Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ популяции строится Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка (рисунок 7, рисунок 8). Для Ρ€Π°Π·ΠΌΠ΅Ρ€Π° популяции 8 особСй строится сСтка с 8 ΡƒΠ·Π»Π°ΠΌΠΈ, Π° Π΄Π»Ρ популяции 9−12 особСй — с 12 ΡƒΠ·Π»Π°ΠΌΠΈ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° рассчитываСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°Ρ‚Π΅ΠΌ отбираСтся Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ.

Рисунок 7 Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка для Ρ€Π°Π·ΠΌΠ΅Ρ€Π° популяции 8 особСй

Рисунок 8 Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка для Ρ€Π°Π·ΠΌΠ΅Ρ€Π° популяции 9−12 особСй

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ — ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ популяции строится ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка (рисунок 9, рисунок 10). Для Ρ€Π°Π·ΠΌΠ΅Ρ€Π° популяции 8−9 особСй строится сСтка с 9 ΡƒΠ·Π»Π°ΠΌΠΈ, Π° Π΄Π»Ρ популяции 10−12 особСй — с 13 ΡƒΠ·Π»Π°ΠΌΠΈ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° рассчитываСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°Ρ‚Π΅ΠΌ отбираСтся Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ.

Рисунок 9 ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка для Ρ€Π°Π·ΠΌΠ΅Ρ€Π° популяции 8−9 особСй

Рисунок 10 ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка для Ρ€Π°Π·ΠΌΠ΅Ρ€Π° популяции 10−12 особСй

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ — случайный наброс Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² ΡΠ»ΡƒΡ‡Π°ΠΉΠ½Ρ‹Ρ… позициях сСтки гСнСрируСтся Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поколСния.

Рисунок 11 Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹ΠΉ наброс Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ популяции

Π”Π°Π»Π΅Π΅ выполняСтся Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ популяции Π½Π° ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ. Π’ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: ΠΏΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ Π•Π²ΠΊΠ»ΠΈΠ΄ΠΎΠ²Ρƒ Ρ€Π°ΡΡΡ‚ΠΎΡΠ½ΠΈΡŽ ΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности (Π»ΡƒΡ‡ΡˆΠ°Ρ с Ρ…ΡƒΠ΄ΡˆΠ΅ΠΉ).

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

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

Π”Π°Π»Π΅Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ подпопуляции Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ дСйствия, описанныС Π½ΠΈΠΆΠ΅.

ΠžΡ‚Π±ΠΎΡ€ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚Π±ΠΎΡ€ Ρ‚ΠΎΡ‡Π΅ΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅. Из ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поколСния Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ пСрСходят всС Ρ‚ΠΎΡ‡ΠΊΠΈ, Π΄Π°Π»Π΅Π΅ ΠΆΠ΅ с Ρ†Π΅Π»ΡŒΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ популяции Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ…, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поколСния пСрСходят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 3 ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ подпопуляции Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности Ρ‚ΠΎΡ‡Π΅ΠΊ .

Π”Π°Π»Π΅Π΅ выполняСтся сСлСкция Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ (Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€). Π’.ΠΊ. Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ подпопуляции Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΡ‚Π±ΠΎΡ€Π° оказываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 3 Ρ‚ΠΎΡ‡ΠΊΠΈ, Π² ΠΏΠ°Ρ€Ρƒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ 2 Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС происходит ΠΈΡ… ΡΠΊΡ€Π΅Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΎΠ΄Π½ΠΎΡ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ΅). Π₯ромосомы Ρ€Π°ΡΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ Π² ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ся «Ρ…востами».

Π”Π°Π»Π΅Π΅ хромосомы ΠΌΡƒΡ‚ΠΈΡ€ΡƒΡŽΡ‚ (ΠΌΡƒΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ 1 Π³Π΅Π½). ГСнСрируСтся случайноС число Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… [0,1] ΠΈ, Ссли это число мСньшС 0,3, Ρ‚ΠΎ Π³Π΅Π½ ΠΌΡƒΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚.

Π’ ΡΠ»ΡƒΡ‡Π°Π΅, Ссли Π½ΠΎΠΌΠ΅Ρ€ поколСния ΠΊΡ€Π°Ρ‚Π΅Π½ 5, Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ хромосомой.

И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнуто Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ N ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅. Π—Π°Ρ‚Π΅ΠΌ выбираСтся Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности для Π·Π°Π΄Π°Π½Π½ΠΎΠΉ структуры Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° .

3.4 Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Π² ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ

Π’ Π΄Π°Π½Π½ΠΎΠΌ курсовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ популяции Π² ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ осущСствляСтся ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности (Π»ΡƒΡ‡ΡˆΠ°Ρ с Ρ…ΡƒΠ΄ΡˆΠ΅ΠΉ). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности опрСдСляСтся ΠΏΠΎ Π²Ρ‹Π·ΠΎΠ²Ρƒ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня Π ΠŸΠ“Π со ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΎΠΉ, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² Ρ…ромосомС. Π”Π°Π»Π΅Π΅ всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия производятся Π²Π½ΡƒΡ‚Ρ€ΠΈ подпопуляций.

3.5 ΠžΡ‚Π±ΠΎΡ€

Из ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поколСния Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ пСрСходят всС хромосомы, Π° Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСбольшоС количСство Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности хромосом. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ популяции Π½Π΅ Ρ€Π°Π·Ρ€Π°ΡΡ‚Π°Π»ΠΈΡΡŒ.

3.6 БСлСкция

ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… хромосом. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности — Π»ΡƒΡ‡ΡˆΠ°Ρ с Π»ΡƒΡ‡ΡˆΠ΅ΠΉ.

3.7 Π‘ΠΊΡ€Π΅Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅

ГСнСрируСтся случайноС число ΠΎΡ‚ 0 Π΄ΠΎ 19(соотвСтствуСт Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ хромосомы). Π’ ΡΡ‚ΠΎΠΉ случайной Ρ‚ΠΎΡ‡ΠΊΠ΅ хромосомы, ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠ΅ΡΡ Π² ΠΏΠ°Ρ€Ρ‹, Ρ€Π°Π·Ρ€Π΅Π·Π°ΡŽΡ‚ΡΡ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ся своими частями.

3.8 ΠœΡƒΡ‚Π°Ρ†ΠΈΡ

Для ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ гСнСрируСтся случайноС число ΠΎΡ‚ 0 Π΄ΠΎ 1. Если это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ <0.3, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ мутация. Π’. Π΅. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ случайного Π±ΠΈΡ‚Π° хромосомы мСняСтся Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅.

3.9 УсловиС окончания счёта

Π ΠŸΠ“Π считаСтся ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΠΌ, Ссли количСство ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ достигло 100. А Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ°Ρ структура — Ρ‚Π°, которая являлась Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Π² ΡΠ²ΠΎΠΈΡ… подпопуляциях (достигала ΠΎΠΏΡ‚ΠΈΠΌΡƒΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) наибольшСС количСство Ρ€Π°Π·.

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

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° использовался язык программирования C#. Π’ Ρ€ΠΎΠ»ΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE) использовалась Visual Studio 2010. Использовались Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

4.1 Π‘Ρ…Π΅ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Рисунок 12 Π‘Ρ…Π΅ΠΌΠ° прилоТСния

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 13 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов согласно спСцификации UML2.

Рисунок 13 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов

4.2 ОписаниС основных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

private void Main_value_function (List chList, double[] v)

ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² экзСмпляр Π½Π°Π±ΠΎΡ€ хромосом, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ хромосомы ΠΈΠ· ΡΡ‚ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° вычисляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ранТируСтся ΠΏΠΎ Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

private void Main_Selection (List chList, int count, Color clr)

осущСствляСт ΠΎΡ‚Π±ΠΎΡ€, ΡΠ΅Π»Π΅ΠΊΡ†ΠΈΡŽ, скрСщиваниС ΠΈ ΠΌΡƒΡ‚Π°Ρ†ΠΈΡŽ для Π½Π°Π±ΠΎΡ€Π° хромосом, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π΅ΠΌΡƒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

private void MainGroup ()

осущСствляСт Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ популяции хромосом Π² ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ.

private void ToBinary (List pointList, int count)

private void ToDecard (String chrom, List pList)

ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π°Π±ΠΎΡ€Π° хромосом ΠΈΠ· Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ прСдставлСния Π² Π΄Π΅ΡΡΡ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

private void RandomNet ()

private void FillTriangleNet ()

private void FillRectangleNet ()

ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ наброс Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ популяции хромосом.

4.3 ВСстированиС ΠΈ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ПослС запуска прилоТСния открываСтся ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 14.

Рисунок 14 ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

Рисунок 15 Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌ)

Рисунок 16 Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ)

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

Π’ Π΄Π°Π½Π½ΠΎΠΌ курсовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π±Ρ‹Π»Π° поставлСна Π·Π°Π΄Π°Ρ‡Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структуру распрСдСлённого ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ гСнСтичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ распрСдСлённого ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ гСнСтичСского, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ количСство Ρ‚ΠΎΡ‡Π΅ΠΊ=10, количСство ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ=100, наброс Ρ‚ΠΎΡ‡Π΅ΠΊ случайным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΡƒ Π² ΠΏΠΎΠ΄ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приспособлСнности. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ структурой распрСдСлённого ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ гСнСтичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌ являСтся: наброс ΠΏΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ сСткС, Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ количСство Ρ‚ΠΎΡ‡Π΅ΠΊ — 10, число ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ-10, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ — ΠΏΠΎ Ρ€Π°ΡΡΡ‚ΠΎΡΠ½ΠΈΡŽ. МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ исслСдуСмой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π²Π½ΠΎ 1.116 325. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ надстройки, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Π² ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ этой ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ структурой оказалась: ΠΊΠΎΠ»-Π²ΠΎ Ρ‚ΠΎΡ‡Π΅ΠΊ — 10, ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ 100, ΠΌΠ΅Ρ‚ΠΎΠ΄ наброса — Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ сСтка, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ — ΠΏΠΎ Ρ€Π°ΡΡΡ‚ΠΎΡΠ½ΠΈΡŽ. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π·Π° 10 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. Как Π²ΠΈΠ΄Π½ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π½Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈΠ·-Π·Π° большого количСства Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² структур, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠžΠΏΡ‚имизация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ», ΠšΠΎΠ²Π°Π»Ρ‘Π²Π° И. Π›., 2012 Π³.

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

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

private void Main_value_function (List chList, double[] v)

{

for (int b=0;b

{

string bit1 = chList[b]. Substring (1, 1);

string bit0 = chList[b]. Substring (0, 1);

string bit2 = chList[b]. Substring (2, 1);

string bit3 = chList[b]. Substring (3, 1);

end = false;

rows_number = 0;

_graphics = pictureBox1. CreateGraphics ();

_points.Clear ();

if (bit2 == «0»)

{

FillTriangleNet ();

}

else

{

if (bit2 == «2»)

{

RandomNet ();

}

else

{

FillRectangleNet ();

}

}

if (bit0 == «0») points_number = 8; else { if (bit0 == «1») points_number = 9; else { if (bit0 == «2») points_number = 10; else { if (bit0 == «3») points_number = 11; else points_number = 12; } } }

if (bit1 == «0») generaton_number = 10; else { if (bit1 == «1») generaton_number = 25; else { if (bit0 == «2») generaton_number = 50; else { if (bit0 == «3») generaton_number = 75; else generaton_number = 100; } } }

Value_Function (_points, buff2List, points_number);

ToBinary (_points, points_number);

ToDecard (chromosome_List, buffList, points_number, Pens. White);

rows_number = rows_number + points_number;

if (bit3 == «0»)

Group1(_points, points_number);

else Group2(_points, points_number);

for (int j = 0; j < generaton_number — 1; j++)

{

Selection (first_group, _points, points_number, Color. Yellow);

NumberOfGeneration—;

Selection (second_group, _points, points_number, Color. Blue);

NumberOfGeneration—;

Selection (third_group, _points, points_number, Color. Green);

if (NumberOfGeneration % 5 == 0)

{

int point = (int)(first_group.Count / 2);

int buffX = first_group[point]. X;

int buffY = first_group[point]. Y;

first_group.Remove (first_group[point]);

point = (int)(second_group.Count / 2);

first_group.Add (second_group[point]);

second_group.Remove (second_group[point]);

point = (int)(third_group.Count / 2);

second_group.Add (third_group[point]);

third_group.Remove (third_group[point]);

third_group.Add (new Point (buffX, buffY));

}

dataGridView2.Rows.Add ();

dataGridView2[0, NumberOfStructure — 1]. Value = NumberOfStructure. ToString ();

dataGridView2[1, NumberOfStructure — 1]. Value = points_number;

dataGridView2[2, NumberOfStructure — 1]. Value = generaton_number;

if (bit2 == «0») dataGridView2[3, NumberOfStructure — 1]. Value = «Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ сСткой» ;

else { if (bit2 == «1»)dataGridView2[3, NumberOfStructure — 1]. Value = «ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ сСткой»; else dataGridView2[3, NumberOfStructure — 1]. Value = «Π‘Π»ΡƒΡ‡Π°ΠΉΠ½ΠΎ»; }

if (bit3 == «0») dataGridView2[4, NumberOfStructure — 1]. Value = «ΠŸΠΎ Ρ€Π°ΡΡΡ‚ΠΎΡΠ½ΠΈΡŽ» ;

else dataGridView2[4, NumberOfStructure — 1]. Value = «ΠŸΠΎ Π·Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ„-ΠΈΠΈ» ;

end = true;

for (int l = 0; l < second_group.Count — 1; l++)

{ first_group.Add (second_group[l]); }

for (int k = 0; k < third_group.Count — 1; k++)

{ first_group.Add (third_group[k]); }

Value_Function (first_group, buff2List, first_group.Count);

if (NumberOfGeneration > 1)

v[b] = valet;

if (mainNumberOfGeneration == 100) { main_value[main_index] = v[b]; main_index++; }

if (valet < 0.25) _graphics.DrawRectangle (ypen, first_group[0]. X + 123, first_group[0]. Y + 123, 3, 3);

else

{

if (valet >= 0.25 && valet < 0.5) _graphics.DrawRectangle (gpen, first_group[0]. X + 123, first_group[0]. Y + 123, 3, 3);

else

{

if (valet >= 0.5 && valet < 0.75) _graphics.DrawRectangle (bpen, first_group[0]. X + 123, first_group[0]. Y + 123, 3, 3);

else { _graphics.DrawRectangle (rpen, first_group[0]. X + 123, first_group[0]. Y + 123, 3, 3); }

}

}

//_graphics.DrawRectangle (rpen, first_group[0]. X + 123, first_group[0]. Y + 123, 3, 3);

NumberOfStructure++;

rows_number = 0;

_pointPaintNet.Clear ();

_points.Clear ();

first_group.Clear ();

second_group.Clear ();

third_group.Clear ();

dataGridView1.Rows.Clear ();

NumberOfGeneration = 1;

chromosome_List.Clear ();

}

}

private void Main_Selection (List chList, int count, Color clr)

{

List new_chromosome_List=new List ();

Random rnd = new Random ();

int point = int. Parse (Math.Round ((rnd.NextDouble () * 2+1), 0).ToString ());

if (mainNumberOfGeneration== 1) { for (int r = 0; r < chList. Count; r++) new_chromosome_List.Add (chList[r]); }

else for (int r = 0; r < 3; r++) new_chromosome_List.Add (chList[r]);

mainNumberOfGeneration++;

int chcount = new_chromosome_List.Count;

main_rows_number = dg. RowCount;

bool m = false;

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[0]. Substring (0, point) + new_chromosome_List[1]. Substring (point) == new_chromosome_List[i]) m = true; }

if (!m) new_chromosome_List.Add (new_chromosome_List[0]. Substring (0, point) + new_chromosome_List[1]. Substring (point));

m = false;

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[1]. Substring (0, point) + new_chromosome_List[0]. Substring (point) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[1]. Substring (0, point) + new_chromosome_List[0]. Substring (point));

double mutation = rnd. NextDouble ();

main_rows_number = dg. RowCount — 1;

int p1 = int. Parse (Math.Round ((rnd.NextDouble () * 3), 0).ToString ());

if (mutation < 0.3)

{

string str = string. Empty;

if (p1 == 0)

{

m = false;

str = Math. Round ((rnd.NextDouble () * 4), 0).ToString ();

while (new_chromosome_List[0]. Substring (p1, 1) == str) str = Math. Round ((rnd.NextDouble () * 4), 0).ToString ();

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[0]. Substring (0, p1) + str + new_chromosome_List[0]. Substring (p1 + 1) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[0]. Substring (0, p1) + str + new_chromosome_List[0]. Substring (p1 + 1));

while (new_chromosome_List[1]. Substring (p1, 1) == str) str = Math. Round ((rnd.NextDouble () * 4), 0).ToString ();

m = false;

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[1]. Substring (0, p1) + str + new_chromosome_List[1]. Substring (p1 + 1) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[1]. Substring (0, p1) + str + new_chromosome_List[1]. Substring (p1 + 1));

}

else

{

if (p1 == 1)

{

m = false;

str = Math. Round ((rnd.NextDouble () * 4), 0).ToString ();

while (new_chromosome_List[0]. Substring (p1, 1) == str) str = Math. Round ((rnd.NextDouble () * 4), 0).ToString ();

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[0]. Substring (0, p1) + str + new_chromosome_List[0]. Substring (p1 + 1) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[0]. Substring (0, p1) + str + new_chromosome_List[0]. Substring (p1 + 1));

while (new_chromosome_List[1]. Substring (p1, 1) == str) str = Math. Round ((rnd.NextDouble () * 4), 0).ToString ();

m = false;

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[1]. Substring (0, p1) + str + new_chromosome_List[1]. Substring (p1 + 1) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[1]. Substring (0, p1) + str + new_chromosome_List[1]. Substring (p1 + 1));

}

else

{

if (p1 == 2)

{

m = false;

str = Math. Round ((rnd.NextDouble () * 2), 0).ToString ();

while (new_chromosome_List[0]. Substring (p1, 1) == str) str = Math. Round ((rnd.NextDouble () * 2), 0).ToString ();

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[0]. Substring (0, p1) + str + new_chromosome_List[0]. Substring (p1 + 1) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[0]. Substring (0, p1) + str + new_chromosome_List[0]. Substring (p1 + 1));

while (new_chromosome_List[1]. Substring (p1, 1) == str) str = Math. Round ((rnd.NextDouble () * 2), 0).ToString ();

m = false;

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[1]. Substring (0, p1) + str + new_chromosome_List[1]. Substring (p1 + 1) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[1]. Substring (0, p1) + str + new_chromosome_List[1]. Substring (p1 + 1));

}

else

{

m = false;

str = Math. Round ((rnd.NextDouble () * 1), 0).ToString ();

while (new_chromosome_List[0]. Substring (p1, 1) == str) str = Math. Round ((rnd.NextDouble () * 1), 0).ToString ();

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[0]. Substring (0, p1) + str + new_chromosome_List[0]. Substring (p1 + 1) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[0]. Substring (0, p1) + str + new_chromosome_List[0]. Substring (p1 + 1));

while (new_chromosome_List[1]. Substring (p1, 1) == str) str = Math. Round ((rnd.NextDouble () * 1), 0).ToString ();

m = false;

for (int i = 0; i < new_chromosome_List.Count; i++) { if (new_chromosome_List[1]. Substring (0, p1) + str + new_chromosome_List[1]. Substring (p1 + 1) == new_chromosome_List[i]) m = true; }

if (!m)

new_chromosome_List.Add (new_chromosome_List[1]. Substring (0, p1) + str + new_chromosome_List[1]. Substring (p1 + 1));

for (int i = 0; i < new_chromosome_List.Count; i++)

{

dg.Rows.Add ();

dg[2, i + main_rows_number]. Value = new_chromosome_List[i];

dg[0, i + main_rows_number]. Value = mainNumberOfGeneration;

dg[1, i + main_rows_number]. Style. BackColor = clr;

}

double[] value = new double[new_chromosome_List.Count];

Main_value_function (new_chromosome_List, value);

string buff2 = string. Empty;

double buff1 = 0;

bool flag = false;

if (mainNumberOfGeneration ≠ 100) Main_chromosom_List.Clear ();

else { for (int k = 0; k < new_chromosome_List.Count; k++) Main_chromosom_List.Add (new_chromosome_List[k]); }

while (!flag)

{

flag = true;

for (int i = 0; i < new_chromosome_List.Count-1; i++)

{

if (Minimize.Checked)

{

if (value[i] > value[i + 1])

{

flag = false;

buff1 = value[i];

value[i] = value[i + 1];

value[i + 1] = buff1;

buff2 = new_chromosome_List[i];

new_chromosome_List[i] = new_chromosome_List[i + 1];

new_chromosome_List[i + 1] = buff2;

}

}

else

{

if (value[i + 1] > value[i])

{

flag = false;

buff1 = value[i];

value[i] = value[i + 1];

value[i + 1] = buff1;

buff2 = new_chromosome_List[i];

new_chromosome_List[i] = new_chromosome_List[i + 1];

new_chromosome_List[i + 1] = buff2;

chList.Clear ();

for (int i = 0; i < new_chromosome_List.Count; i++) chList. Add (new_chromosome_List[i]);

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