Partikelsværmmetode
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 14. december 2015; checks kræver
13 redigeringer .
Partikelsværmmetoden (PSM) er en numerisk optimeringsmetode , som ikke kræver at kende den nøjagtige gradient af den funktion, der optimeres.
MFR blev bevist af Kennedy , Eberhart og Shea [1] [2] og var oprindeligt beregnet til at efterligne social adfærd . Algoritmen er blevet forenklet og fundet egnet til at udføre optimeringer. Bogen af Kennedy og Eberhart [3] beskriver mange af de filosofiske aspekter af MFR og den såkaldte sværm-intelligens . Omfattende forskning i anvendelserne af MFR er blevet udført af Poly [4] [5] . MFR'en optimerer funktionen ved at opretholde en population af mulige opløsninger, kaldet partikler, og flytte disse partikler rundt i opløsningsrummet efter en simpel formel. Bevægelserne er underlagt princippet om den bedste position, der findes i dette rum, som konstant ændrer sig, når partiklerne finder mere gunstige positioner.
Algoritme
Lad være den objektive funktion, der skal minimeres, dvs. antallet af partikler i sværmen, som hver er forbundet med en koordinat i opløsningsrummet og en hastighed . Lad også være den bedst kendte position af partiklen med indeks , og være den bedst kendte tilstand af sværmen som helhed. Så er den generelle form for partikelsværmmetoden som følger.
![f: \mathbb{R}^n \to \mathbb{R}](https://wikimedia.org/api/rest_v1/media/math/render/svg/306c097f43c91dce633d12cde024948d39e73752)
![S](https://wikimedia.org/api/rest_v1/media/math/render/svg/4611d85173cd3b508e67077d4a1252c9c05abca2)
![{\displaystyle {\textbf {x}}_{i}\in \mathbb {R} ^{n}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/76e5690277b7674a3f1f752e880bf42205740ee4)
![{\displaystyle {\textbf {v}}_{i}\in \mathbb {R} ^{n}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/597cbe6d156b577449eef254ad3b6a14c8f74864)
![{\displaystyle {\textbf {p}}_{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0f2d8496d4949a5d6df6987fbb2f92ea14b67ac4)
![jeg](https://wikimedia.org/api/rest_v1/media/math/render/svg/add78d8608ad86e54951b8c8bd6c8d8416533d20)
![{\displaystyle {\textbf {g))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c64c7c9957fdc62025ffdb869bf69c9666c81347)
- For hver partikel skal du gøre:
![{\displaystyle i=1,\ldots ,S}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ceb7fc8ac87a8f04033c800f3e262183518ff6a)
- Generer partiklens begyndelsesposition ved hjælp af en tilfældig vektor med en flerdimensionel ensartet fordeling , hvor og er henholdsvis de nedre og øvre grænser for opløsningsrummet.
![{\displaystyle {\textbf {x}}_{i}\sim U({\textbf {b}}_{lo},{\textbf {b}}_{up})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2d1eb8faf50b98741af2fa4f35dba8f574b2624f)
![{\displaystyle {\textbf {b}}_{lo}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cc5c30ca37cd3477c4bdf28765991d628e09cc04)
![{\displaystyle {\textbf {b}}_{up}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cec6214fbd1827c3bcd6b08fd6ad266d2bbb1536)
- Tildel den bedst kendte partikelposition til dens begyndelsesværdi: .
![{\displaystyle {\textbf {p}}_{i}\får {\textbf {x}}_{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a8d5c99e948beba265f58a523766c00ce379d766)
- Hvis , så opdater den bedst kendte tilstand for sværmen: .
![{\displaystyle f({\textbf {p}}_{i})<f({\textbf {g}})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/86f07a94369610f3a1cae7623c7c929871b0ecd9)
![{\displaystyle {\textbf {g}}\får {\textbf {p}}_{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/00167e287e12a3ed5a6651cbc53515ea8ad887af)
- Tildel en partikelhastighedsværdi: .
![{\displaystyle {\textbf {v}}_{i}\sim U(-({\textbf {b}}_{up}-{\textbf {b}}_{lo}),({\textbf { b))_{up}-{\textbf {b}}_{lo}))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/311a55819fe376b4f3f2387e0990db1d6c057756)
- Indtil stopkriteriet er opfyldt (for eksempel at nå et givet antal iterationer eller den påkrævede værdi af den objektive funktion), gentag:
- For hver partikel skal du gøre:
![{\displaystyle i=1,\ldots ,S}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ceb7fc8ac87a8f04033c800f3e262183518ff6a)
- Generer tilfældige vektorer .
![{\displaystyle {\textbf {r}}_{p},{\textbf {r}}_{g}\sim U(0,1)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f72bc1f2a13c4086e2cabd93f9328939044c834c)
- Opdater partikelhastighed: , hvor operationen betyder komponentvis multiplikation .
![{\displaystyle {\textbf {v}}_{i}\gets \omega {\textbf {v}}_{i}+\phi _{p}{\textbf {r}}_{p}\odot ( {\textbf {p}}_{i}-{\textbf {x}}_{i})+\phi _{g}{\textbf {r}}_{g}\odot ({\textbf {g ))-{\textbf {x}}_{i})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a994afcb569048a323f19de43be6d71ec03254a4)
![\odot](https://wikimedia.org/api/rest_v1/media/math/render/svg/e89e009eb8a8839c82aa5c76c15e9f2d67006276)
- Opdater partiklens position ved at oversætte til hastighedsvektoren :. Dette trin udføres uanset forbedringen i værdien af den objektive funktion.
![{\displaystyle {\textbf {x}}_{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/07570e58f2b9d14a936950e3a5d4c34d64eaa1ad)
![{\displaystyle {\textbf {x}}_{i}\får {\textbf {x}}_{i}+{\textbf {v}}_{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1c2add01821d8db6dfbe65aa7e2397d5a3eefd94)
- Hvis , så:
![{\displaystyle f({\textbf {x}}_{i})<f({\textbf {p}}_{i})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/271638d139959b98fa61db25b694974a39071d61)
- Opdater bedst kendte partikelposition: .
![{\displaystyle {\textbf {p}}_{i}\får {\textbf {x}}_{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a8d5c99e948beba265f58a523766c00ce379d766)
- Hvis , så opdater den bedst kendte tilstand for sværmen som helhed: .
![{\displaystyle f({\textbf {p}}_{i})<f({\textbf {g}})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/86f07a94369610f3a1cae7623c7c929871b0ecd9)
![{\displaystyle {\textbf {g}}\får {\textbf {p}}_{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/00167e287e12a3ed5a6651cbc53515ea8ad887af)
- Nu indeholder de bedste af de fundne løsninger.
![{\displaystyle {\textbf {g))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c64c7c9957fdc62025ffdb869bf69c9666c81347)
Parametrene , og er valgt af lommeregneren og bestemmer adfærden og effektiviteten af metoden som helhed. Disse parametre er genstand for mange undersøgelser .
![\omega](https://wikimedia.org/api/rest_v1/media/math/render/svg/48eff443f9de7a985bb94ca3bde20813ea737be8)
![{\displaystyle \phi _{p}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2a754ef04ef4b2873dea624c25bb185edb4c8dcd)
![\phi _{g}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ebed127b4f0eec92939b646e35751be11d4b011b)
Valg af parametre
Valget af optimale parametre for partikelsværmmetoden er genstand for et betydeligt antal forskningsartikler, se f.eks. Shi og Eberhart [6] [7] , Carlyle og Dozer [8] , van den Berg [9] , Clerk og Kennedy [10] , Trelea [11] , Bratton og Blackwell [12] og Evers [13] .
En enkel og effektiv måde at vælge metodens parametre på blev foreslået af Pedersen og andre forfattere [14] [15] . De udførte også numeriske eksperimenter med forskellige optimeringsproblemer og parametre. Teknikken til at vælge disse parametre kaldes meta-optimering , da en anden optimeringsalgoritme bruges til at "tune" MFR-parametrene. MFM-inputparametrene med den bedste ydeevne har vist sig at være i modstrid med hovedprincipperne beskrevet i litteraturen og giver ofte tilfredsstillende optimeringsresultater for simple tilfælde af MFM. Deres implementering kan findes i SwarmOps open source-bibliotek .
Varianter af algoritmen
Nye varianter af partikelsværmalgoritmen bliver konstant foreslået for at forbedre metodens ydeevne. Der er flere tendenser i disse undersøgelser, hvoraf den ene foreslår at skabe en hybrid optimeringsmetode ved hjælp af MFR i kombination med andre algoritmer, se for eksempel [16] [17] . En anden tendens er at fremskynde metoden på en eller anden måde, for eksempel ved at træde tilbage eller ændre rækkefølgen af partikelbevægelse (se [13] [18] [19] for dette ). Der er også forsøg på at tilpasse adfærdsparametrene for MFR under optimeringsprocessen [20] .
Se også
Noter
- ↑ Kennedy, J.; Eberhart, R. (1995). "Partikelsværmoptimering". Proceedings of IEEE International Conference on Neurale Networks . IV . pp. 1942-1948.
- ↑ Shi, Y.; Eberhart, R.C. (1998). "En modificeret partikelsværmoptimering". Proceedings of IEEE International Conference on Evolutionary Computation . pp. 69-73.
- ↑ Kennedy, J.; Eberhart, R. C. Swarm Intelligence (ubestemt) . - Morgan Kaufmann , 2001. - ISBN 1-55860-595-9 .
- ↑ Poli, R. En analyse af publikationer om partikelsværmoptimeringsapplikationer // Technical Report CSM-469 : journal. — Department of Computer Science, University of Essex, UK, 2007. Arkiveret fra originalen den 16. juli 2011.
- ↑ Poli, R. Analyse af publikationerne om anvendelserne af partikelsværmoptimering // Journal of Artificial Evolution and Applications: tidsskrift. - 2008. - S. 1-10 . - doi : 10.1155/2008/685175 .
- ↑ Shi, Y.; Eberhart, R.C. (1998). "Parametervalg i partikelsværmoptimering". Proceedings of Evolutionary Programming VII (EP98) . pp. 591-600.
- ↑ Eberhart, RC; Shi, Y. (2000). "Sammenligning af inertivægte og indsnævringsfaktorer i partikelsværmoptimering". Proceedings of the Congress on Evolutionary Computation . 1 . pp. 84-88.
- ↑ Carlisle, A.; Dozier, G. (2001). "En off-the-shelf PSO". Proceedings af partikelsværmoptimeringsværkstedet . pp. 1-6.
- ↑ van den Bergh, F. An Analysis of Particle Swarm Optimizers . — University of Pretoria, Fakultet for Natur- og Landbrugsvidenskab, 2001.
- ↑ Clerc, M.; Kennedy, J. Partikelsværmen - eksplosion, stabilitet og konvergens i et multidimensionelt komplekst rum // IEEE Transactions on Evolutionary Computation
: journal. - 2002. - Bd. 6 , nr. 1 . - S. 58-73 .
- ↑ Trelea, IC The Particle Swarm Optimization Algorithm: konvergensanalyse og parametervalg // Information Processing Letters
: journal. - 2003. - Bd. 85 . - s. 317-325 .
- ↑ Bratton, D.; Blackwell, T. A Simplified Recombinant PSO (uspecificeret) // Journal of Artificial Evolution and Applications. – 2008.
- ↑ 1 2 Evers, G. En automatisk omgrupperingsmekanisme til at håndtere stagnation i partikelsværmoptimering . — The University of Texas - Pan American, Department of Electrical Engineering, 2009.
- ↑ Pedersen , MEH Tuning & Simplifying Heuristical Optimization . - University of Southampton, School of Engineering Sciences, Computational Engineering and Design Group, 2010. Arkiveret kopi (link ikke tilgængeligt) . Hentet 3. juni 2010. Arkiveret fra originalen 26. juli 2011. (ubestemt)
- ↑ Pedersen, MEH; Chipperfield, AJ Simplifying partikelsværmoptimering (neopr.) // Applied Soft Computing. - 2010. - T. 10 . - S. 618-628 . Arkiveret fra originalen den 24. januar 2014.
- ↑ Lovbjerg, M.; Krink, T. (2002). "Livscyklusmodellen: kombinerer partikelsværmoptimering, genetiske algoritmer og bakkeklatrere." Proceedings of Parallel Problem Solving from Nature VII (PPSN) . pp. 621-630.
- ↑ Niknam, T.; Amiri, B. En effektiv hybrid tilgang baseret på PSO, ACO og k-midler til klyngeanalyse (engelsk) // Applied Soft Computing : journal. - 2010. - Bd. 10 , nej. 1 . - S. 183-197 .
- ↑ Lovbjerg, M.; Krink, T. (2002). "Udvidelse af partikelsværmoptimering med selvorganiseret kritik". Proceedings of the Fourth Congress on Evolutionary Computation (CEC) . 2 . pp. 1588-1593.
- ↑ Xinchao, Z. En forstyrret partikelsværmalgoritme til numerisk optimering (neopr.) // Applied Soft Computing. - 2010. - T. 10 , nr. 1 . - S. 119-124 .
- ↑ Zhan, Zh.; Zhang, J.; Li, Y; Chung, HS-H. Adaptiv partikelsværmoptimering (neopr.) // IEEE-transaktioner på systemer, mennesker og kybernetik. - 2009. - T. 39 , nr. 6 . - S. 1362-1381 .
Links