Попробуйте плагин tarlog. Вы можете изменить шрифт с помощью команд Ctrl ++ и Ctrl--. Очень удобная вещь.
mbeckish прав.
122] Не могли бы вы составить линейную комбинацию различных энергий и отрегулировать коэффициенты?
Возможно, логарифмически преобразовав их туда и обратно?
Я сделал несколько MCMC, используя Метрополис-Гастингс. В этом случае я определяю (ненормализованную) логарифмическую вероятность определенного состояния (с учетом его априорных значений), и я считаю, что это способ прояснить мои мысли о том, чего я хочу.
Я бы рассмотрел что-нибудь вроде:
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)
Конечно в каждом из трех мест, где вы вычисляете вероятность, может использоваться другая функция.
Это зависит от того, что вы подразумеваете под «имеет приоритет».
Например, что, если deadline_cost
снизится на 0,001, а стоимость global_finish_time
увеличится на 10000? Вы возвращаете 1.0, потому что deadline_cost
уменьшился, и это имеет приоритет над чем-либо еще?
Похоже, это суждение, которое можете сделать только вы, если только вы не предоставите достаточно исходной информации о проекте, чтобы другие могли предложить свое собственное обоснованное суждение.
Я бы взял подсказку из многоцелевого эволюционного алгоритма (MOEA) и получил бы его переход, если все цели одновременно пройдут с accept_probability
функцию, которую вы дали. Это будет иметь эффект исследования фронта Парето во многом так же, как при стандартном моделировании отжига исследуются плато решений с одинаковой энергией.
Однако это действительно отказывается от идеи отдать приоритет первому.
Возможно, вам придется настроить параметры, например повысить начальную температуру.