Каковы частицы (по коду) в алгоритме оптимизации частиц/генетического роя?

Редактировать Привет, я пытаюсь реализовать оптимизацию роя частиц (или генетического). Но я уже застрял на первом шаге...

Я запутался в том, как инициализировать частицы и что это за частицы (с точки зрения кода).

Я нашел различную информацию об алгоритме (сам по себе) и реализации, но не нашел нужной информации...

Кто-нибудь может объяснить, пожалуйста?

Спасибо.

Андреа.


person Andrea Montesin    schedule 08.02.2016    source источник
comment
Я не совсем понимаю, что вы имеете в виду, но если вы спрашиваете, как мне представить каждую частицу в моей программе, то вы, вероятно, захотите, чтобы они были объектами класса, который вы напишете. Например, у вас может быть класс Particle, который содержит информацию о положении и состоянии этой частицы, а затем у вас будет коллекция этих частиц, и на каждой новой итерации алгоритма вы можете перебирать эту коллекцию в цикле, чтобы делать все, что нужно. происходить с каждой частицей. Если это ответит на ваш вопрос, дайте мне знать, и я напишу полный ответ на этот счет.   -  person Kevin    schedule 09.02.2016
comment
Привет, Кевин, В точку... Вот что я имел в виду. Я нашел множество тем по PSO/GSO и ​​некоторым вариантам алгоритма, а также концептуальную информацию. Однако я не мог понять, как представлять такие частицы ... Теперь у меня есть более четкое представление, все еще немного шаткое (мягко говоря), но я могу начать рассуждать о PSO / GSO ... Большое спасибо за ответ...   -  person Andrea Montesin    schedule 10.02.2016


Ответы (2)


Если вы знакомы с Python, я изучил генетические алгоритмы и pso с помощью deap< /а>. У них есть несколько отличных руководств и документов.

Определение: PSO оптимизирует проблему, имея совокупность возможных решений, называемых здесь частицами, и перемещая эти частицы в пространстве поиска в соответствии с простыми математическими формулами. Движения частиц определяются лучшими найденными позициями в пространстве поиска, которые обновляются по мере того, как частицы находят лучшие позиции.

Что такое частица?

Частица имеет текущее положение, скорость и запись прошлых положений. Каждая частица имеет свои собственные правила обновления скорости и положения.

Как работает оптимизационный поиск?

Вы запускаете алгоритм для заданного количества итераций. На каждой итерации обновляйте скорость и положение каждой частицы. Тогда надеюсь, что вы найдете лучшее решение или решение, которое достаточно хорошо.

Конкретный пример.

Представьте, что ваша цель поиска — найти звезду. На каждой итерации мы находим частицу, ближайшую к нахождению звезды. Затем переместите все остальные частицы в этом направлении.

Изображение PSO

Изображение предоставлено wirelesstech

person goCards    schedule 08.02.2016

если вы спрашиваете: «Как мне представить каждую частицу в моей программе», то вы, вероятно, захотите, чтобы они были объектами класса, который вы напишете. Например, у вас может быть класс «Частица», который содержит информацию о положении и состоянии этой частицы, а затем у вас будет коллекция этих частиц, и на каждой новой итерации алгоритма вы можете прокручивать эту коллекцию, чтобы делать что угодно. должно произойти с каждой частицей. — Кевин Уэллс

person Community    schedule 07.04.2016