Магический Квадрат, используя Оптимизацию Роя Частиц

Мне дают матрицу беспокойства, где n колеблется от 3 до 5. Матрице тогда назначают случайные значения от 1-n^2. Учитывая матрицу, я должен оптимизировать доску так, чтобы я пришел к решению магического квадрата.

Случайный пример доски: n = 3

    3 5 6
    1 7 8
    2 4 9

У меня есть немного знаний о PSO, но я по крайней мере знаю это:

1. Randomly initialize a set of particles at random positions in the search space;
2. Evaluate all positions and update the global best position and the personal best positions;
3. Update each velocity based on the relative position of the global best position, the current velocity of the particle, the personal best position of the particle and some random vector;
4. goto 2.

Мне также сказали, что эта проблема не подходит для таких алгоритмов, как PSO, но у меня нет выбора, кроме как использовать ее для этой проблемы, поскольку это необходимый алгоритм.

Я думаю, что частицы - это числа, назначенные в массиве, но как мне оценить его положение и обновить положение частиц?

Спасибо!

1 ответ

У вас должна быть проблема оптимизации, чтобы применить PSO. Если вы можете определить фитнес-функцию, вы можете сделать следующее:

Например, ваша целевая сумма 20 и ваша фитнес-функция f(currentSum) = |20 - currentSum| для каждой строки, столбца и диагонали.

Вы меняете значение квадрата. После этого при изменении этого значения уменьшается значение f()это означает, что ваша скорость должна быть направлена ​​на это решение. Если это увеличило значение, вы должны пойти и посмотреть в другом месте.

Вам нужны два типа операций: разведка и разведка.

Эксплуатация меню, поиск окрестностей для решения. Когда значение suqare изменяется, ищите решения, которые бы приблизили строку и столбец этого значения к вашему. targetSum,

Разведка означает изменение всей картины. Вы делаете эксплуатацию (обычно после рандомизации всей доски) после применения этого шага.

Для начала вам нужно определить

  • Модель проблемы
  • Какое решение? Как вы определяете решение?
  • Объективная функция
  • Фитнес-функция
  • Скорость
  • Poisiton
  • окрестности
  • Исследование

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

Другие вопросы по тегам