Как использовать NSGA-II (в библиотеке python / pymoo) для выбора оптимальных пар значений из списка - PullRequest
0 голосов
/ 05 мая 2020

Контекст: Мне нужно реализовать NSGA-II в python для следующей задачи оптимизации с двумя целями: у меня есть набор элементов, каждый из которых имеет два неограниченных значения: одно для стоимости и другой - за качество обслуживания. Например:

[(item1, cost=0.4, QoS=0.89),(item2, cost=0.67, QoS=0.42),(item3, cost=0.02, QoS=0.53)]

Цель: Цель состоит в том, чтобы применить алгоритм многокритериальной оптимизации (например, NSGA-II), чтобы выбрать наиболее оптимальный элемент (ы), то есть тот (ы) с оптимальной (минимальной) стоимостью и оптимальным (максимальным) QoS. Более того, мы стремимся сравнить различные алгоритмы оптимизации (мы только начинаем с NSGA-II).

Проблема: Я уже проверял библиотеку pymoo: https://pypi.org/project/pymoo/0.1.2/ и моя основная проблема - это определение «проблемы» оптимизации до выполнения алгоритма NSGA-II. Потому что мой ввод - это не целевые функции, а пары значений (стоимость, QoS). Итак, как я могу ввести этот массив пар в алгоритм NSGA-II, чтобы найти оптимальную пару?

Я совершенно не знаком с алгоритмами оптимизации, поэтому, возможно, моя методология неверна, и я уверен, что я что-то упускаю. Приветствуется любая помощь / объяснение.

Заранее спасибо.

1 Ответ

0 голосов
/ 11 июня 2020

Я всегда рекомендую формулировать вашу задачу математически или структурированно. В нашем руководстве по началу работы объясняется, как реализовать задачу с помощью математического выражения. После реализации вашей проблемы становится довольно легко использовать pymoo для тестирования различных алгоритмов. Также я хотел бы упомянуть, что новейшая версия pymoo - это версия 0.4.1, которая была выпущена недавно. Без каких-либо подробностей о вашей проблеме я рекомендую вам взглянуть на это.

...