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

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€ΠΎΠ΅ΠΌ частиц (Particle swarm optimization)

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

ΠœΠ΅Ρ‚ΠΎΠ΄ «Ρ€ΠΎΠΉ частиц» — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простой ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ программирования, появившийся Π² ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Π΅ 90-Ρ… Π³ΠΎΠ΄ΠΎΠ², основанный Π½Π° ΠΈΠ΄Π΅ΠΈ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модСлирования повСдСния Π³Ρ€ΡƒΠΏΠΏ ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ…. Π’ ΠΎΡΠ½ΠΎΠ²Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ стаи ΠΏΡ‚ΠΈΡ†Ρ‹ стрСмятся ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ «ΠΏΡ€ΠΈΡ‚яТСния», постСпСнно замСдляя ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Ρ‘Ρ‚Π°. ΠšΠΎΠΏΠΈΡ€ΡƒΡ дСйствия ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€ΠΎΠ΅ΠΌ частиц (Particle swarm optimization) (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π•Ρ‰Ρ‘ со Π²Ρ€Π΅ΠΌΡ‘Π½ Π›Π°ΠΌΠ°Ρ€ΠΊΠ° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° рассматриваСтся ΠΊΠ°ΠΊ процСсс постоянного ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ (приспособлСния) особСй ΠΏΠΎΠ΄ влияниСм срСды. ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡ ΠΎΡ‚Π±ΠΎΡ€ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠ»Π°Π½ΠΎΠ², ΠΊΠ°ΠΊ процСсс ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ Π² ΠΏΠΎΠΏΡƒΠ»ΡΡ†ΠΈΠΈ особСй, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π·Π°Π΄Π°Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ условия ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ процСсса, насСлив Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π²ΡΠ΅Π»Π΅Π½Π½ΡƒΡŽ сущСствами — носитСлями ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΊΠ°Π·Π°Π² Ρ†Π΅Π»ΡŒ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ процСсса.

ΠšΠΎΠΏΠΈΡ€ΡƒΡ дСйствия ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ создаСт всё Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Для ΠΈΡ… ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‡Π°Ρ‰Π΅ всСго слуТат ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: гСнСтичСский ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ‚ΠΈΡ†, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ Ρ€Ρ‹Π± ΠΈΠ»ΠΈ ΠΎΡ…Π»ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π»Π»Π° ΠΈ Ρ‚. Π΄.

Π’ Π½Π°ΡΡ‚оящСС врСмя Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²Π΅ ΠΈ Π² Π±ΠΈΠ·Π½Π΅ΡΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Π΅ срСдства, Π½ΠΎ ΠΈ Π²Ρ€Π΅ΠΌΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ постоянно Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚.

На ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²Π΅, благодаря ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ мноТСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ связанных с Ρ‚Π°ΠΊΠΈΠΌΠΈ Π²Π΅Ρ‰Π°ΠΌΠΈ ΠΊΠ°ΠΊ простой станка, ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ склада ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ запчастСй Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ станки ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅.

Для Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ «Ρ€ΠΎΠΉ частиц». Алгоритм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° благодаря своСй простотС ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ считаСтся ΠΎΡ‡Π΅Π½ΡŒ пСрспСктивным для Π·Π°Π΄Π°Ρ‡ планирования.

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

1.1 ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ модСль

ΠœΠ΅Ρ‚ΠΎΠ΄ «Ρ€ΠΎΠΉ частиц» — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простой ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ программирования, появившийся Π² ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Π΅ 90-Ρ… Π³ΠΎΠ΄ΠΎΠ², основанный Π½Π° ΠΈΠ΄Π΅ΠΈ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модСлирования повСдСния Π³Ρ€ΡƒΠΏΠΏ ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ…. Π’ ΠΎΡΠ½ΠΎΠ²Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ стаи ΠΏΡ‚ΠΈΡ†Ρ‹ стрСмятся ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ «ΠΏΡ€ΠΈΡ‚яТСния», постСпСнно замСдляя ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Ρ‘Ρ‚Π°.

Когда стая ΠΈΡ‰Π΅Ρ‚ Π΅Π΄Ρƒ, Π΅Ρ‘ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»Π΅Π³Π°ΡŽΡ‰ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π²ΠΎΠΊΡ€ΡƒΠ³ стаи нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ свободы ΠΈΠ»ΠΈ хаотичности Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ, которая Π΄Π°Ρ‘Ρ‚ Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΉΡ‚ΠΈ скоплСниС ΠΏΠΈΡ‰ΠΈ. Π’Π°ΠΊ, Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π½Π°ΠΉΠ΄Π΅Ρ‚, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ съСдобноС, ΠΈ, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ стаи, сообщит ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΡƒ ΠΏΠΈΡ‰ΠΈ, ΠΈ ΡƒΠΆΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ, благодаря стСпСни свободы ΠΈ Ρ…аотичности своСго двиТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΠ²ΠΎΠ΅ скоплСниС ΠΏΠΈΡ‰ΠΈ.

Π’ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ пространство поиска насСляСтся Ρ€ΠΎΠ΅ΠΌ частиц (элСмСнтарных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ). ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ частицы Π² ΠΏΡ€ΠΎΡΡ‚ранствС ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Помимо ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ каТдая ΠΈΠ· Ρ‡Π°ΡΡ‚ΠΈΡ† описываСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ пСрСмСщСния ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΠ΅ΠΌ. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ пСрСмСщСния частицы ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ «ΠΏΡ€ΠΎΡ‡Ρ‘сываниС» пространства Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Ρ‚Π΅ΠΌ самым находят Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠΏΡ‚ΠΈΠΌΡƒΠΌ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС ΡƒΡΡ‚Ρ€Π΅ΠΌΠ»ΡΡŽΡ‚ΡΡ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ частицы. КаТдая частица Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ своё Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ сосСдним частицам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стрСмятся ΠΊ ΡΡ‚ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

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

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

2.1Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. Боздаётся исходная «ΡΠ»ΡƒΡ‡Π°ΠΉΠ½Π°Ρ» популяция частиц.

2. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ частицы рассчитываСтся цСлСвая функция.

3. Π›ΡƒΡ‡ΡˆΠ°Ρ частица с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ «Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ притяТСния».

4. Π’Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ скоростСй всСх частиц ΡƒΡΡ‚Ρ€Π΅ΠΌΠ»ΡΡŽΡ‚ΡΡ ΠΊ ΡΡ‚ΠΎΠΌΡƒ «Ρ†Π΅Π½Ρ‚Ρ€Ρƒ», ΠΏΡ€ΠΈ этом Ρ‡Π΅ΠΌ дальшС частица находится ΠΎΡ‚ Π½Π΅Π³ΠΎ, Ρ‚Π΅ΠΌ большим ускорСниСм ΠΎΠ½Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚.

5. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ расчёт Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ частиц Π² ΠΏΡ€ΠΎΡΡ‚ранствС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

6. Π¨Π°Π³ΠΈ 2−5 ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число Ρ€Π°Π· ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ся условиС остановки.

7. ПослСдний «Ρ†Π΅Π½Ρ‚Ρ€ тяТСсти» ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

2.2 Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

#include

#include

#include

#include

const int n=200;

const int m=200;

int i, j, k, t=200;

double F (double x)

{

return pow (pow (x, 3) — 125,2);

}

int main ()

{double V[n] [m];

double lower_limit=1, upper_limit=300;

double best_pos[n] [m];

double cel[n] [m]; // массив Π³Π΅Π½ΠΎΡ‚ΠΈΠΏΠ°

double best_cel=1000; // Π»ΡƒΡ‡ΡˆΠ΅Π΅ глобальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

double x;

double R1, R2;

const double C1=0.7, C2=1.2, w=0.93;

double **X=new double*[n];

for (i=0; i

X[i]=new double[m];

srand (time (NULL));

// инициализация полоТСния ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚Π΅ΠΉ частиц

for (i=0; i

for (j=0; j

{

X[i] [j]=lower_limit + (upper_limit — lower_limit)*rand ()/RAND_MAX;

V[i] [j]=0;

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΡ†ΠΈΡ Π³Π΅Π½ΠΎΡ‚ΠΈΠΏΠΎΠΌ частиц самым Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ

best_pos[i] [j]=1000;

}

for (k=0; k

{

// Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива Π³Π΅Π½ΠΎΡ‚ΠΈΠΏΠΎΠ²

for (i=0; i

for (j=0; j

{

// ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π³Π΅Π½ΠΎΡ‚ΠΈΠΏΠ°

cel[i] [j]=F (X[i] [j]);

// сохранСниС значСния Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Π³Π΅Π½ΠΎΡ‚ΠΈΠΏΠ° для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ частицы

if (cel[i] [j]

best_pos[i] [j]=cel[i] [j];

if (best_pos[i] [j]

{

best_cel=best_pos[i] [j];

x=X[i] [j];

printf («%fn», x);

}

}

// ОбновлСниС скоростСй частиц ΠΈ ΠΈΡ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ

for (i=0; i

for (j=0; j

{

R1 = 1.*rand ()/RAND_MAX;

R2 = 1.*rand ()/RAND_MAX;

V[i] [j] = w*V[i] [j] + C1*R1*(best_cel — X[i] [j]) + C2*R2*(best_pos[i] [j] - X[i] [j]);

X[i] [j] = X[i] [j] + V[i] [j];

}

}

return 0;

}

2.3 Π‘Π»ΠΎΠΊ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

3. ВСорСтичСская ΠΎΡ†Π΅Π½ΠΊΠ° трудоСмкости Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

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

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

1) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ присваивания ab;

2) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ индСксации массива a[i];

3) арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ *,/,-,+;

4) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния a < b;

5) логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ or, and, not.

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π° ΠΎΠ΄Π½Ρƒ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ +1 Π·Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ +1 Π·Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠ΅.

Π¦ΠΈΠΊΠ» for Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся элСмСнтарной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‚.ΠΊ. ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн Π² Π²ΠΈΠ΄Π΅;

for i1 to N

Ρ‚Π΅Π»ΠΎ

next i;

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ конструкция Ρ†ΠΈΠΊΠ»Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 2*N элСмСнтарных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

F «Ρ†ΠΈΠΊΠ»» = 2*N+N*f«Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°».

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

F=9+ // константы

+2*200+200*(2*200+(8+6)*200)+ // инициализация полоТСния ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚Π΅ΠΉ

+2*200+200*(2*200+200*(2*200+200*(6+20))+ // Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива Π³Π΅Π½ΠΎΡ‚ΠΈΠΏΠ° ΠΈ Π»ΡƒΡ‡ΡˆΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

+2*200+200*(2*200+200*(4+4+10+2+16)) // ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ скоростСй ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ тСорСтичСского вычислСния Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ составила F= 528 800 809 элСмСнтарных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

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

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

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² являСтся ΠΊΠ»ΡŽΡ‡Ρ‘ΠΌ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ тСхнологиям ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ия Π² Ρ†Π΅Π»ΠΎΠΌ.

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

1. Ульянов М. Π’., Π¨Π΅ΠΏΡ‚ΡƒΠ½ΠΎΠ² М. Π’. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Ρ‚Сория Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ‡Π°ΡΡ‚ΡŒ 2: ВСория Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². — Πœ.: ΠœΠ“ΠΠŸΠ˜, 2003. — 80 с.

2. ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠœΠ°Ρ‚СматичСская Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Ρ‚Сория Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²».

3. Global Optimization Algorithms — Theory and Application.

4. http://ru.wikipedia.org

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