Для чего этот шаг в алгоритме имитации отжига? - PullRequest
0 голосов
/ 09 июня 2010

Обе Википедия и этот сайт описывают аналогичный шаг в алгоритме имитации отжига, который я выбрал здесь:

Википедия:

  if P(e, enew, temp(k/kmax)) > random() then   // Should we move to it?
    s ← snew; e ← enew                          // Yes, change state.

Юваль Барор, относительно загадки Восемь Королев :

If moving the queen to the new column will reduce the number of attacked 
queens on the board, the move is taken. Otherwise, the move is taken only 
with a certain probability, which decreases over time. 
Hence early on the algorithm will tend to take moves even if they 
don't improve the situation. Later on, the algorithm will only make moves 
which improve the situation on the board.

Мой вопрос: чего достигает этот случайный ход?

Ответы [ 2 ]

2 голосов
/ 09 июня 2010

Цель состоит в том, чтобы избежать выбора лучшего локализованного решения и вместо этого попытаться найти лучшее глобальное решение. См. Здесь: http://en.wikipedia.org/wiki/Local_minimum

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

Часть "отжига" имени состоит в том, что количество движения допускаетсяна худшие позиции уменьшается со временем.

0 голосов
/ 09 июня 2010

Использование только тех решений, которые улучшают ситуацию, называется «жадным» и означает, что вы находите локальные оптимумы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...