ΠΠ΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ
ΠΠ°ΡΠ΅ΠΌ Π½ΠΈΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ΄ΠΎΠ² ΠΈ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ΄Π°». ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΈΡΡΠΈΡΡ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π³ΠΎΡΠΎΠ΄ΠΎΠ², Ρ. Π΅. ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π³ΠΎΡΠΎΠ΄Π° Π½Π° ΠΊΠ°ΡΡΠ΅ Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ «Π£Π΄Π°Π»ΠΈΡΡ Π³ΠΎΡΠΎΠ΄Π°». ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΠΊΠΈ Π Π΅ΡΠΏΡΠ±Π»ΠΈΠΊΠΈ ΠΠ°Π·Π°Ρ ΡΡΠ°Π½ ΠΠ°ΡΠ°Π³Π°Π½Π΄ΠΈΠ½ΡΠΊΠΈΠΉ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΠ°ΡΠ΅Π΄ΡΠ° Π‘ΠΠΠ ΠΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΠΊΠ° ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΠΊΠΈ Π Π΅ΡΠΏΡΠ±Π»ΠΈΠΊΠΈ ΠΠ°Π·Π°Ρ ΡΡΠ°Π½ ΠΠ°ΡΠ°Π³Π°Π½Π΄ΠΈΠ½ΡΠΊΠΈΠΉ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΠ°ΡΠ΅Π΄ΡΠ° Π‘ΠΠΠ ΠΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΠΊΠ° ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅: «ΠΡΠΈΠΊΠ»Π°Π΄Π½Π°Ρ ΡΠ΅ΠΎΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ»
Π’Π΅ΠΌΠ°: «ΠΠ΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ»
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ
ΠΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ Π·Π°Π΄Π°Ρ ΠΈ Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ (Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ). ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ Π°ΠΊΡΠΈΠΎΠΌΠ°ΡΠΈΠΊΠΈ, ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΊΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΎΠ³ΠΈΠΊΠΎ-ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ° ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΡΠΈΠ½ΡΠ΅Π·Π°. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΈΡ ΡΠ΅Π»Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΡΡΠΈΡΡΡΡ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π·Π°Π΄Π°ΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΡΠΉ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ.
ΠΠ°Π΄Π°ΡΠ°:
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²ΡΠ΄Π°Π½Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
ΠΎΠ±ΡΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠΈ;
ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ;
ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ;
ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΌΡΡΠ°ΡΠΈΠΈ;
Π΄Π»Ρ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΠΎΡΡΠΎΠ²Π΅ΡΠ° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ k, c;
Π΄Π»Ρ Π·Π°Π΄Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠΈΠ²ΠΎΡΠΆΡΡΠ° Π²Π²ΠΎΠ΄ [4. .40] ΡΠΈΡΠ»Π° Π³ΠΎΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΈΡ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π²ΡΡΡΠ½ΡΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ;
Π΄Π»Ρ Π±ΠΈΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π²ΠΎΠ΄Π° Π½Π°Π·Π²Π°Π½ΠΈΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ [10.15], ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ [4. .40], Π·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Π²Π΅ΡΠ° [0.1] ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ:
Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΈ Π»ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ½Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΡΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ;
Π»ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ½Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π²ΡΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΎΡΠΎΠ±ΠΈ;
Π΄Π»Ρ Π±ΠΈΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ;
Π΄Π»Ρ Π·Π°Π΄Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠΈΠ²ΠΎΡΠΆΡΡΠ° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π»ΡΡΡΠΈΠΉ ΠΌΠ°ΡΡΡΡΡ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ, ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅, ΠΊΡΠ°ΡΠΊΡΡ ΡΠΏΡΠ°Π²ΠΊΡ (ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ).
ΠΠ°ΡΠΈΠ°Π½Ρ Π·Π°Π΄Π°Π½ΠΈΡ:
Π’ΠΈΠΏ Π·Π°Π΄Π°ΡΠΈ — ΠΊΠΎΠΌΠΌΠΈΠ²ΠΎΡΠΆΡΡ
ΠΡΠ±ΠΎΡ ΠΏΠ°ΡΡ — ΠΏΠ°Π½ΠΌΠΈΠΊΡΠΈΡ
ΠΡΠΎΡΡΠΎΠ²Π΅Ρ — Π΄Π²ΡΡ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ
ΠΡΡΠ°ΡΠΈΡ — ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΠ±ΠΎΡ — ΡΠ»ΠΈΡΠ½ΡΠΉ
ΠΡΠΈΡΠ΅ΡΠΈΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²Π° — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ — ΠΊΠ°ΡΡΠ°.
ΠΠ½Π°Π»ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ:
β ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° | ΠΠΎΠ»-Π²ΠΎ ΠΌΠ°ΡΡΡΡΡΠΎΠ² | Π§ΠΈΡΠ»ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ | ΠΠΎΡΡ. ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ | ΠΠΎΡΡ. ΠΌΡΡΠ°ΡΠΈΠΈ | Π€ΠΈΡΠ½Π΅Ρ; ΡΡΠ½ΠΊΡΠΈΡ (min) | |
0,5 | 0,001 | |||||
0,5 | 0,001 | |||||
0,5 | 0,001 | |||||
0,5 | 0,001 | |||||
0,5 | 0,001 | |||||
0,5 | 0,001 | |||||
0,001 | ||||||
1,5 | 0,001 | |||||
0,001 | ||||||
0,5 | 0,01 | |||||
0,5 | 0,01 | |||||
0,01 | ||||||
0,01 | ||||||
0,5 | 0,1 | |||||
0,1 | ||||||
ΠΡΠ²ΠΎΠ΄:
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠΌ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ 200, ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΠΎΠ»ΡΡΠ΅ 500 ΡΠ°Π· (ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ), ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π’Π°ΠΊΠΆΠ΅ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ½Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π»ΠΈΡΠ΅Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ: ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ — 1, ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΌΡΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ³ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠΎΠ»Ρ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΌΡΡΠ°ΡΠΈΠΈ — 0,1. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°ΠΌΠΎΠ΅ Π»ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ½Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π·Π½Π°ΡΠΈΡ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Ρ Π°ΡΡ 20 Π³ΠΎΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π° ΡΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 15.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΡΡΡΡ Π΄Π²Π°ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΠΏΠΎ ΡΠ°ΠΉΠ»Ρ «ΠΠΎΠΌΠΌΠΈΠ²ΠΎΡΠΆΡΡ. exe». Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «map. bmp» Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ (ΠΌΠ΅ΡΡΠ΅).
ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ° ΠΏΠΎΡΠ²ΠΈΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π ΠΈΡ. 1
Π ΠΈΡ. № 1 ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π³ΠΎΡΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊ Π²ΡΡΡΠ½ΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π° ΠΊΠ°ΡΡΠ΅ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΠΌΡΡΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΠ°ΠΊ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ Π³ΠΎΡΠΎΠ΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΠΎΠΊΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ±ΡΠ°ΡΡ «ΠΠ°Π΄Π°ΡΡ Π³ΠΎΡΠΎΠ΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ» ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. № 2.
Π ΠΈΡ. № 2
ΠΠ°ΡΠ΅ΠΌ Π½ΠΈΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ΄ΠΎΠ² ΠΈ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ΄Π°». ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΈΡΡΠΈΡΡ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π³ΠΎΡΠΎΠ΄ΠΎΠ², Ρ. Π΅. ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π³ΠΎΡΠΎΠ΄Π° Π½Π° ΠΊΠ°ΡΡΠ΅ Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ «Π£Π΄Π°Π»ΠΈΡΡ Π³ΠΎΡΠΎΠ΄Π°» .
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°ΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ΄ΠΎΠ² (4−40), Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠΎΠΈΡΠΊ». ΠΡΠΎΡΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ProgressBar-ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄ ΠΊΠ°ΡΡΠΎΠΉ ΡΠΈΡ. № 3.
Π ΠΈΡ № 3. ProgressBar
ΠΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ProgressBar ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΠΈΠ½ΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΏΠΎΠ΄ ProgressBar-ΠΎΠΌ ΡΠΈΡ. № 4.
Π ΠΈΡ. № 4 Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π’Π°ΠΊΠΆΠ΅ Π½Π° ΠΊΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΌΡΠΉ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΡΡΡ ΡΠΈΡ. № 5.
Π ΠΈΡ. № 5 ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΡΡΡ
Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡ. № 6.
Π ΠΈΡ. № 6. ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class (TForm)
Image1: TImage;
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
Edit3: TEdit;
Label3: TLabel;
Edit4: TEdit;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
procedure Image1MouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1Click (Sender: TObject);
procedure FirstGeneration (Sender: TObject);
procedure CreaChildren (Sender: TObject);
procedure Mutation (Sender: TObject);
procedure TrackRead (Sender: TObject);
procedure DrawMarsh (Sender: TObject);
function CrossOver (p, m: integer): string;
procedure Mixer (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
pX, pY, elite: array of integer; // ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π³ΠΎΡΠΎΠ΄ΠΎΠ², ΡΠ»ΠΈΡΠ½ΡΠ΅
road: array of integer;
parents: array of string; // ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, Π΄Π΅ΡΠ΅ΠΉ; ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
child: array of string;
result: array of string;
gl: integer; // ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΈΡΠ½ΡΡ
nCity, nMarsh: integer; // ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ΄ΠΎΠ², ΠΌΠ°ΡΡΡΡΡΠΎΠ²
kMut, kCross: real; // ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΌΡΡΠ°ΡΠΈΠΈ, ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ
implementation
{$R *. dfm}
procedure TForm1. Mixer (Sender: TObject);
var
i, j, n, k: integer;
s: string;
label lbl4;
BEGIN
n: =round ((nMarsh) *kCross) — 1;
for i: =0 to nMarsh-1 do
begin
setLength (child, n+i+2);
child [n+i+1]: =parents [i] ;
end;
TrackRead (sender);
setlength (elite, 1);
s: ='_';
{1}for i: =0 to nMarsh-1 do
begin
lbl4:
elite [0]: =random (n+nMarsh);
if pos ('_'+inttostr (elite [0]) +'_', s) <>0 then goto lbl4;
for j: =0 to n+nMarsh-1 do
begin
if pos ('_'+inttostr (j) +'_', s) =0 then
begin
if road [elite [0]] >road [j] then
begin
elite [0]: =j;
end;
end;
end;
s: =s+inttostr (elite [0]) +'_';
parents [i]: =child [elite [0]] ;
{1}end;
END;
function TForm1. CrossOver (p, m: integer): string;
var
gen: char;
i, j: integer; // ΡΡΠ΅ΡΡΠΈΠΊΠ°
t1,t2: integer; // ΡΠΎΡΠΊΠΈ ΠΊΡΠΎΡΡΠΎΠ²Π΅ΡΠ°
nC, kC: integer; // Π³ΡΠ°Π½ΠΈΡΡ ΡΠΈΠΊΠ»Π°
papa, mama: string;
label lbl3;
BEGIN
papa: =parents [p] ;
mama: =parents [m] ;
randomize;
t1: =random (nCity-1) +1; // Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ 1 ΡΠΎΡΠΊΡ
lbl3:
t2: =random (nCity-1) +1; // Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ 2 ΡΠΎΡΠΊΡ
if t2=t1 then goto lbl3; // 1 ΡΠΎΡΠΊΠ° Π½Π΅ 2 ΡΠΎΡΠΊΠ°
if t1
begin
nC: =t1;
kC: =t2;
end
else
begin
nC: =t2;
kC: =t1;
end;
for i: =nC to kC do // ΡΠΈΠΊΠ» ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ
begin
if pos (mama [i], papa) =0 then // ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π³Π΅Π½ΠΎΠ²
begin
delete (papa, i, 1);
insert (mama [i], papa, i); // Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π³Π΅Π½Ρ
end
else
begin // ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠΈΠ²ΡΠΈΠΉΡΡ Π³Π΅Π½
gen: =papa [i] ;
papa [i]: =papa [i+1] ;
papa [i+1]: =gen;
end;
end;
crossover: =papa; // Π²ΠΎΠ·Π²Π°ΡΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠΎΠΌΠΊΠ°
END;
procedure TForm1. TrackRead (Sender: TObject);
var
i, j: integer;
p1,p2: integer;
p: string;
BEGIN
{1}for i: =0 to length (child) — 1 do // Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΈΠΊΠ» ΠΏΠΎ ΠΌΠ°ΡΡΡΡΡΠ°ΠΌ
begin
setlength (road, i+1);
p: ='';
p: =child [i] ;
{2}for j: =1 to nCity-1 do // Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΈΠΊΠ» ΠΏΠΎ Π³ΠΎΡΠΎΠ΄Π°ΠΌ ΠΌΠ°ΡΡΡΡΡΠΎΠ²
begin
if j<>nCity-1 then // ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π³ΠΎΡΠΎΠ΄
begin
p1: =StrToInt (p [j]); //
p2: =StrToInt (p [j+1]); // ΡΠΎΡΠ΅Π΄Π½ΠΈΠΉ
end
else
begin
p1: =StrToInt (p [j+1]); // ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ
p2: =StrToInt (p [1]); // ΠΏΠ΅ΡΠ²ΡΠΉ
end; // ΡΠ°ΡΡΠ΅Ρ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ
road [i]: =road [i] +round (sqrt (sqr (pX [p1] -pX [p2]) +sqr (pY [p1] -pY [p2])));
{2}end;
{1}end;
END;
procedure TForm1. DrawMarsh (Sender: TObject);
var
i, j: integer;
p1,p2: integer;
p: string;
BEGIN
p: =parents ;
Image1. CleanupInstance;
with Image1. Canvas do
begin
for j: =1 to nCity do // Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΈΠΊΠ» Π³ΠΎΡΠΎΠ΄Π°ΠΌ ΠΌΠ°ΡΡΡΡΡΠ°
begin
if j=nCity then
begin
p1: =StrToInt (p [j]);
p2: =StrToInt (p [1]);
end
else
begin
p1: =StrToInt (p [j]);
p2: =StrToInt (p [j+1]);
end;
MoveTo (pX [p1], pY [p1]);
LineTo (pX [p2], pY [p2]);
end;
end;
END;
procedure TForm1. Mutation (Sender: TObject);
var
i, ran: integer; // ΡΡΠ΅ΡΡΠΈΠΊ, ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
gen: char; // ΠΌΡΡΠΈΡΡΡΡΠΈΠΉ Π³Π΅Π½
mutant: string;
BEGIN
mutant: ='';
for i: =0 to round ((nMarsh) *kCross) — 1 do // ΡΠΈΠΊΠ» ΠΌΡΡΠ°ΡΠΈΠΈ
begin
randomize;
if kMut
begin
mutant: =child [i]; // ΠΌΡΡΠΈΡΡΡΡΠ°Ρ ΠΎΡΠΎΠ±Ρ
ran: =random (nCity-1);
gen: =mutant [ran]; //
mutant [ran]: =mutant [ran+1]; // ΠΌΡΡΠΈΡΡΠ΅ΠΌ
mutant [ran+1]: =gen; //
child [i]: =mutant;
end;
end;
END;
procedure TForm1. FirstGeneration (Sender: TObject);
var
i, j, ram: integer; // ΡΡΠ΅ΡΡΠΈΠΊΠΈ, ΡΠ°Π½Π΄ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
s: string; // ΡΡΡΠΎΠΊΠ° ΠΌΠ°ΡΡΡΡΡΠ°
label lbl1; // ΠΌΠ΅ΡΠΊΠ°
BEGIN
randomize;
for i: =0 to nMarsh-1 do // ΡΠΈΠΊΠ» ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ
{1}begin
s: ='';
setlength (parents, i+1); // ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ
for j: =0 to nCity-1 do // ΡΠΈΠΊΠ» ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΌΠ°ΡΡΡΡΡΠ°
{2}begin
setlength (s, j+1); // ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ ΠΌΠ°ΡΡΡΡΡΠ°
lbl1:
ram: =random (nCity); // ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° Π³ΠΎΡΠΎΠ΄Π°
if pos (IntToStr (ram), s) =0 then // ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΠ²ΡΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° Π³ΠΎΡΠΎΠ΄Π°
begin
insert (IntToStr (ram), s,1); // Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π³ΠΎΡΠΎΠ΄Π° Π² ΡΡΡΠΎΠΊΡ ΠΌΠ°ΡΡΡΡΡΠ°
end
else goto lbl1; // ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ
{2}end;
parents [i]: =s; // Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ (ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅)
{1}end;
END;
procedure TForm1. CreaChildren (Sender: TObject);
var
i: integer; // ΡΡΠ΅ΡΡΠΈΠΊΠΈ
p, m: integer; // Π½ΠΎΠΌΠ΅ΡΠ° ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ
label lbl2;
BEGIN
randomize;
for i: =0 to round ((nMarsh) *kCross) — 1 do // ΡΠΈΠΊΠ» ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ°Ρ
begin
setlength (child, i+1);
p: = random (nMarsh); // Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΠΏΠ°ΠΏΡ
lbl2:
m: = random (nMarsh); // Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΠΌΠ°ΠΌΡ
if m=p then goto lbl2; // ΠΏΠ°ΠΏΠ° Π½Π΅ ΠΌΠ°ΠΌΠ°
child [i]: =crossover (p, m); // ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ²
end;
END;
procedure TForm1. Image1Click (Sender: TObject);
begin
inc (nCity); // ΡΡΠΈΡΠ°Π΅ΠΌ Π³ΠΎΡΠΎΠ΄Π°
end;
procedure TForm1. Image1MouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// // /
with Image1. Canvas do
begin
Brush. Color: =clRed;
Brush. Style: =bsSolid;
Rectangle (x-5,y-5,x+5,y+5);
Brush. Color: =clWhite;
TextOut (x, y, inttostr (nCity));
end;
// // /
SetLength (pX, nCity+1);
pX [nCity]: =x;
SetLength (py, nCity+1);
pY [nCity]: =y;
// // /
end;
procedure TForm1. Button1Click (Sender: TObject);
var
i, nPokol: integer;
begin
nMarsh: =StrToInt (Edit3. Text);
kMut: =StrToFloat (Edit2. Text);
kCross: =StrToFloat (Edit4. Text);
nPokol: =StrToInt (Edit5. Text);
FirstGeneration (sender);
for i: =1 to nPokol do
begin
CreaChildren (sender);
Mutation (sender);
Mixer (sender);
DrawMarsh (sender);
end;
end;
end.