Как разработать приемную функцию вероятности для моделируемого отжига с несколькими отличными затратами?

Попробуйте плагин tarlog. Вы можете изменить шрифт с помощью команд Ctrl ++ и Ctrl--. Очень удобная вещь.

https://code.google.com/archive/p/tarlog-plugins/downloads

9
задан flodin 21 July 2009 в 10:52
поделиться

4 ответа

Я бы рассмотрел что-нибудь вроде:

If (new deadline_cost > old deadline_cost)
  return (calculate probability)

else if (new global finish time > old global finish time)
  return (calculate probability)

else if (new split cost > old split cost)
  return (calculate probability)

else 
  return (1.0)

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

1
ответ дан 5 December 2019 в 01:19
поделиться

Это зависит от того, что вы подразумеваете под «имеет приоритет». Например, что, если deadline_cost снизится на 0,001, а стоимость global_finish_time увеличится на 10000? Вы возвращаете 1.0, потому что deadline_cost уменьшился, и это имеет приоритет над чем-либо еще? Похоже, это суждение, которое можете сделать только вы, если только вы не предоставите достаточно исходной информации о проекте, чтобы другие могли предложить свое собственное обоснованное суждение.

0
ответ дан 5 December 2019 в 01:19
поделиться

Я бы взял подсказку из многоцелевого эволюционного алгоритма (MOEA) и получил бы его переход, если все цели одновременно пройдут с accept_probability функцию, которую вы дали. Это будет иметь эффект исследования фронта Парето во многом так же, как при стандартном моделировании отжига исследуются плато решений с одинаковой энергией.

Однако это действительно отказывается от идеи отдать приоритет первому.

Возможно, вам придется настроить параметры, например повысить начальную температуру.

1
ответ дан 5 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: