Необходим метод многокритериальной оптимизации

EDIT: Вместо других предложений я решил поиграть с Python DEAP framework. пока я не придумаю что-нибудь полезное. Надеюсь, это поможет людям с похожей проблемой.

Я реализую систему, в которой нам нужно выполнить многоцелевую оптимизацию для клиента следующим образом:

Производственная система должна производить N деталей (однотипных) с помощью сварки. Для этого можно выбрать определенный материал, метод сварки и количество точек сварки, которые будут использоваться для сборки каждой детали. На изображении ниже показаны параметры задачи и их взаимозависимости:

введите здесь описание изображения

Я могу играть со значениями для

material
welding method
number of spot welding points

Мне нужно найти такое сочетание материала, метода сварки и количества точек сварки/детали, которое минимизирует стоимость и максимизирует стабильность.

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


person ACEG    schedule 23.03.2012    source источник


Ответы (3)


Предполагая, что у вас есть функция стоимости для «стоимости» и «стабильности», вы можете использовать традиционный многоцелевой советник, такой как NSGa-II, SPEA-2 и, возможно, PAES. Очевидно, что выбор алгоритма сильно зависит от количества имеющихся у вас выборок, от особенностей функций стоимости и других важных характеристик. Вы можете проверить подобные приложения в журналах, таких как Applied Soft Computing.

person Matteo De Felice    schedule 23.03.2012
comment
В основном у меня есть 3 возможных значения для материала, 2 возможных метода сварки, и я могу использовать от 50 до 500 точек. Для любой комбинации из них, например. материал M1, метод сварки W2, количество точек = 75 Я могу рассчитать стоимость и стабильность комбинации; Я хочу иметь небольшую стоимость и большую стабильность. Тем временем я нашел подход SPEA-2, я борюсь с DEAP, чтобы заставить его работать :-) Есть ли какие-нибудь хорошие учебники для SPEA-2, кроме слайдов и статей Zitzler? Спасибо! - person ACEG; 23.03.2012
comment
Некоторое время назад я провел поиск и ничего не нашел, надеюсь, SPEA2 не так сложен, вы можете найти некоторые доступные реализации в MATLAB или C++, если я правильно помню. - person Matteo De Felice; 25.03.2012
comment
На самом деле, при таком маленьком пространстве поиска (3x2x450), возможно, почти стоило бы провести его исчерпывающе, а затем просто определить, какие конфигурации лежат на фронте Парето. - person schaul; 07.08.2012

Попробуйте SMS-EMOA: http://ls11-www.cs.uni-dortmund.de/people/beume/publications/BNR08_at.pdf В документе показано, что это своего рода улучшение NSGA-II.

person tObi    schedule 10.01.2013
comment
Спасибо за предложение! На данный момент первоначальная задача решена, но я буду иметь это в виду на будущее :-) - person ACEG; 16.01.2013

Старый пост, я понимаю, но ради тех, у кого похожая ситуация...

Хотя использование советника — это один из подходов, эта задача кажется мне особенно подходящей для смешанно-целочисленного программирования. Советники могут быть отличными, но не гарантируется оптимальное решение. MIP, с другой стороны, может найти оптимальное решение (и доказать, что оно оптимально). Кроме того, несколько целей могут быть довольно легко реализованы.

Я бы рекомендовал посетить Gurobi (https://www.gurobi.com/). Они проделали большую работу, чтобы сделать MIP максимально доступным, и на их веб-сайте есть много документации и примеров для начала работы. Сначала это немного утомительно, но вскоре вы увидите возможности использовать MIP везде, куда бы вы ни посмотрели, поэтому я думаю, что затраты времени окупаются. Я считаю, что пробная лицензия тоже есть.

person Bill    schedule 29.07.2016