Използване на Xpress Optimizer за решаване на проблеми със симулацията и оптимизацията

optimizer

Статията предоставя преглед на пакета Xpress Optimizer, предназначен за решаване на проблеми при математическо моделиране и оптимизация. Този софтуерен продукт е разработен от Dash Optimization от няколко години. Съкратената му версия е достъпна за безплатно изтегляне на уебсайта на компанията.

С помощта на Xpress Optimizer можете да внедрите математически модели с различна сложност и да ги оптимизирате за всякакви параметри. Гъвкавият език за описване на математически модели ви позволява да вземете предвид широк спектър от ограничения, а елементите на функционалното програмиране, въведени в него, ви позволяват да избегнете много трудности при формализирането на модела.

Пакетът се основава на ядрото от математически функции, внедрени в C ++. В същото време Xpress IVE се доставя към математическото ядро ​​- графична среда за разработка в специализирания език за програмиране Mosel.

Програмата на Mosel се нарича модел. Той се компилира в междинен формат и след това се изпълнява в ядрото на оптимизатора, което е набор от внедрени методи за числена оптимизация. В този случай компилираният модел може да се изпълни на конзолната версия на оптимизатора, инсталиран, например, на клъстер или суперкомпютър. Трябва да се отбележи, че конзолната версия на Optimizer поддържа компилация на модели от езика Mosel от командния ред.

Езикът за програмиране Mosel е процедурен език, който поддържа условни, както и циклични изрази. Графичната среда за разработка IVE поддържа няколко съветника за генериране на код, с които можете да внедрите и оптимизирате математически модел, който не съдържа сложни условия в асистентския режим. Също така езикът за програмиране поддържа изпълнението на функции. Като цяло, както ще се види в следващите примери, синтаксисът на mosel е много подобен на синтаксиса на езика за програмиране Pascal.

След това помислете за проста програма на Mosel, която демонстрира как да работите с набори:

След това ще разгледаме използването на Xpress Optimizer за решаване на най-простия проблем с оптимизацията.

Тази задача е модел за управление на доставката. Като входни данни програмата се предоставя с набора от производители и потребители, производствения капацитет на доставчиците и търсенето на потребителите, както и разходите за доставка на единица продукция от производител до потребител. Целта на оптимизацията е да се сведат до минимум транспортните разходи, при условие че се удовлетвори търсенето на всички потребители. Обемите на доставка от производителя до потребителя се приемат като променливи на задачата. Всички изходни данни се зареждат от файлове. Резултатът от програмата се извежда в конзолата на оптимизатора и във файл. Програмата също така изгражда стълбовидна диаграма, показваща товара на производителите. Диаграмата е изчертана в съответния прозорец на Xpress Optimizer.