Particle Swarm Optimization (PSO) Візуалізацыя (або “ПСО Візуалізацыя”)

Original: http://projectcomputing.com/resources/psovis/index.html

У ніжняй частцы гэтай старонкі змяшчае просты аплет Java, які наглядна дэманструе рой часціц шукае максімальнага значэння ў 3-D ландшафт. Java-аплет пастаўляецца ў выглядзе файла банку 45Kb якая была пратэставаная з Microsoft JVM усталяванай пад IE6, але павінен працаваць з любым JVM 1.1 або вышэй.

Кароткае ўвядзенне ў Particle Swarm Optimization

Часціца Swarm Optimization з’яўляецца падыход да праблем, рашэнні якіх могуць быць прадстаўлены ў выглядзе кропкі ў п-мернай прасторы рашэнняў. Шэраг часціц выпадковым чынам у рух праз гэта прастора. На кожнай ітэрацыі, яны назіраюць «фітнес» пра сябе і сваіх суседзяў і “эмуляваць” паспяховых суседзяў (тыя, чые бягучае становішча ўяўляе сабой лепшае рашэнне праблемы, чым іх) шляхам перамяшчэння да іх. Розныя схемы для групавання часціц у канкуруючых, полусамостоятельных зграі можа быць выкарыстаны, ці ўсё часціцы могуць належаць да адной глабальнай статка. Гэта надзвычай просты падыход быў дзіўна эфектыўным ў розных праблемных абласцей.

ПСО быў распрацаваны Джэймсам Кэнэдзі і Расэл Eberhart ў 1995 годзе пасля таго, як натхнёны даследаванні птушынага сцякаюцца паводзін біёлаг Фрэнк Heppner. Гэта звязана з эвалюцыяй натхніў вырашэнні праблемы метадаў, такіх як генетычныя алгарытмы.

Рэсурсы

Часціца Swarm Optimization, артыкул Джэймса Кэнэдзі і Расэл Eberhart
Кніга: Рой выведкі Джэймс Кэнэдзі, Расэл С. Eberhart, з Yuhui Шы (Утрыманне)
Часціца Swarm Цэнтральны – каталог рэсурсаў, якія адносяцца да ПСО

Не саромейцеся звяртацца да Project Computing, каб абмеркаваць прымяненне АПМ.
Пра гэта аплета

ПСО звычайна выкарыстоўваецца для вырашэння праблем з многімі невядомымі (многіх «вымярэнняў»). Гэтая візуалізацыя параўнальна надзвычай просты і трывіяльны: рой пошукі праз 2 невядомых (або «вымярэнняў»), і значэнне кожнай кропкі ў гэтых 2-х вымярэннях была пабудавана ў 3-м вымярэнні.

Гэты аплет быў напісаны Кент Fitch, праект Computing, абапіраючыся на і аб’яднання мадыфікаваныя версіі гэтых праграм 2:

Код, уключаныя ў 3D кампутарнай графікі: Пераезд з каркасных чарцяжоў ў цвёрдых, зацененых мадэляў Тод Sundsted, якая з’явілася ў JavaWorld Ліпеня 1997 Нягледзячы на ​​тое, Java 3D-API забяспечвае неабходную функцыянальнасць, код Тодда простая і працуе пад Java 1.1
Рэалізацыя ПСО з adaptiveview.com, які просты і лёгка, каб зрабіць працаваць пад Java 1.1.

Што гэта робіць аплет

Гэты аплет стварае паў-выпадковых 3-D ландшафт. Выпадкова генеруецца часціц рой часціц 12 спробаў, каб знайсці “глабальны максімум” на ландшафт. Рой “не ведае”, што максімальнае значэнне: ён толькі што сказаў, каб спыніць, калі ён сутыкаецца з яго.
Новы рой (з новых зыходных пазіцый) можа быць створаны, як можна новыя краявіды.
Рой 12 часціц можа “працаваць разам”, як 1 паствы, ці можа быць падзелена на 2, 3 ці 4 паў-аўтаномных статкаў.
Рой можа працаваць да завяршэння (або 100 ітэрацый), “адзін выйшаў” і спыніўся.
Розныя колеру выкарыстоўваюцца для адлюстравання пазіцыі бягучага і папярэдніх пакаленняў, і сляды руху аказваюцца, каб дапамагчы сабе прагрэс роя.

Як выкарыстоўваць гэты аплет

Пачакайце, пакуль аплет нагрузак. Як код толькі 45KB, гэта не павінна заняць шмат часу. Вы павінны ўбачыць 3-D пейзаж ніжэй. Альбо пачаць націснуўшы кнопкі, ці чытаць тлумачэнне, якое варта!
Глабальны максімум (якая з’яўляецца кропкай рой шукае) адзначаны чырвонай стрэлкай.
Вы можаце круціць пейзаж, выкарыстоўваючы / ўніз / налева / направа ўверх, або націснуўшы на ландшафт і, выкарыстоўваючы клавішы са стрэлкамі. Вы не можаце павярнуць пейзаж з дапамогай мышы.
Націсніце кнопку “крок”. Гэта ініцыялізацыі рой на ландшафт. Пачатковае становішча кожнай часціцы будзе паказана невялікім зялёным маркерам. Павярніце пейзаж, каб убачыць часціцы ў адносінах адзін да аднаго і па максімуму.
Націсніце кнопку яшчэ раз «крок». Зялёныя квадраты будзе рухацца, як правіла, у кірунку “прыстасаваных” часціцы. Папярэдняе месцазнаходжанне часціц адзначаны жоўтым маркерам, і зялёная лінія малюецца ад папярэдняга да бягучага месцазнаходжанні, “візуалізацыі” руху.
“Крок” зноў: арыгінал пакалення цяпер афарбаваны пурпурны, другое пакаленне цяпер пафарбаваны ў жоўты колер і размяшчэнне бягучага пакалення зноў аказваецца ў зялёны колер. Жоўтыя лініі паказвае вектары, прынятыя арыгінальнай перамяшчэння пакалення да другога пакаленню, і зялёныя лініі паказваюць вектары, якія прымаюцца такім пакалення пераезду ў бягучым пакаленні.
“Крок” зноў: арыгінал пакалення цяпер афарбаваны ў сіні колер. Крок зноў, і гэта пакаленне зараз чорны. Гэта значыць, пакалення прадстаўлены з дапамогай наступных колераў: зялёны, жоўты, пурпурны, блакітны, чорны. Пазіцыі ўсіх пакаленняў старэй самых апошніх 4 аказваюцца ў чорным. Рух вектары паказана ўсяго 2 самых апошніх пакаленняў.
Вектары руху заўсёды аказваецца “зверху” пейзажу і можна ўбачыць, нават калі пейзаж будзе засланяць вектар у “рэальным свеце”.
Інфармацыя пра стан у ніжняй частцы акна аплета паказвае лік ітэрацый запоўненую, максімальнае значэнне рой шукае максімальнае значэнне знаходзіцца ў апошнім (самым апошнім) ітэрацыі і максімальным значэннем знайсці ў любым ітэрацыі ў гэтым плане.

Рэчы, каб паспрабаваць

Першы сінгл крок рой, каб атрымаць пачуццё для таго, што адбываецца. Гэта самы просты толькі з 1 статка, бо там няма візуальная індыкацыя якіх часціцы знаходзяцца ў згрупаваныя ў зграі.
Затым некалькі тэстаў да завяршэння, назіраючы статак рухаецца праз пейзаж.
Звярніце ўвагу, як тэсты на паўторны запуск той жа пейзаж вырабляе часта дзіўна розныя вынікі; гэта значыць, як некаторыя стартавыя пазіцыі часціц прыводзіць да хуткага размяшчэння глабальнага максімуму, і як іншыя пасады прывядзе да недастатковасці пасля 100 ітэрацый.
Праверце вынікі, выкарыстоўваючы розныя нумары зграі на той жа пейзаж.
Паспрабуйце новыя краявіды. Назірайце, як некаторыя пейзажы проста складаней, напрыклад, з “прывабнай” лакальных максімумаў на некаторай адлегласці ад глабальнага максімуму.
Звярніце ўвагу, што рой не мае памяці, акрамя цяперашняга пакалення. Гэта перагледзіць папярэднія месцы, якія, калі б ён меў такую ​​памяць, было б “ведаць” не можа быць глабальны максімум. Таксама зьвярніце ўвагу, што часам паўтараюцца ўзоры будуць створаны, часта з некалькі часціц адначасова праходзячы тыя ж вектары.

Краіна, які змяшчае ўсе зыходныя: backup11apr04psovis.zipv

Comments are closed.