Перейти к содержимому

Инструменты GDXMRW для GAMS и MATLAB: RGDX и WGDX

GAMS Lessons

0:00 / 0:00

Инструменты GDXMRW для GAMS и MATLAB: RGDX и WGDX

15 011 просмотров · 11 л. назад
GAMS Lessons
7,02 тыс. подписчиков
15 011 просмотров · 11 л. назад
В этом видео мы используем возможности GDXMRW — RGDX и WGDX. Мы демонстрируем эти возможности на примере транспортного протокола из библиотеки моделей GAMS. При записи данных в файл GDX мы используем как разреженную, так и плотную форму. Кроме того, мы отображаем некоторые результаты выполнения GAMS в Matlab. Содержимое файла trnsport_driver.m: ------------------------------------------------- очистить все i.name='i' i.uels={'seattle','san-diego'} j.name='j' j.uels = {'new-york', 'chicago', 'topeka'} a.name='a' a.val=[350 600] a.type='parameter' a.form='full' a.uels=i.uels b.name='b' b.val=[1 325 2 300 3 275] b.type='parameter' b.form='sparse' b.uels=j.uels d.name='d' d.val=[2.5 1.7 1.8 2.5 1.8 1.4] d.form = 'full' d.type='parameter' d.uels={i.uels,j.uels} f.name='f' f.val=90 f.type='parameter' wgdx('MtoG',i,j,a,b,d,f); gdxInfo MtoG system 'gams trnsport lo=3 gdx=GtoM'; gdxWhos GtoM x.name='x' x.compress='true' x=rgdx('GtoM',x) x.uels{1} x.uels{2} x.val ------------------------------------------------- Содержание измененного файла trnsport.gms: ------------------------------------------------- $Title Транспортная задача (TRNSPORT,SEQ=1) $Ontext Эта задача находит график доставки с наименьшими затратами, который удовлетворяет требованиям рынков и поставкам на заводы. Дантциг, Г. Б., Глава 3.3. В книге «Линейное программирование и расширения». Издательство Принстонского университета, Принстон, Нью-Джерси, 1963. Эта формулировка подробно описана в: Розенталь, Р. Э., Глава 2: Учебное пособие по GAMS. В книге «GAMS: Руководство пользователя». Издательство Scientific Press, Редвуд-Сити, Калифорния, 1988. Номера строк не будут совпадать с номерами в книге из-за этих комментариев. $Offtext set i,j; Parameter a(i),b(j) ,d(i,j) ,f; $if not set gdxin $set gdxin MtoG $GDXIN %gdxin% $LOAD i j a b d f $GDXIN Parameter c(i,j) transport cost in thousands of dollars per case ; c(i,j) = f * d(i,j) / 1000 ; Variables x(i,j) shipment amounts in cases z total transportation costs in thousands of dollars ; Positive Variable x ; Equations cost define objective function supply(i) observe supply limit at plant i demand(j) satisfy demand at market j ; стоимость .. z =e= сумма((i,j), c(i,j)*x(i,j)) ; предложение(i) .. сумма(j, x(i,j)) =l= a(i) ; спрос(j) .. сумма(i, x(i,j)) =g= b(j) ; Моделирование транспорта /все/ ; Решение задачи транспорта с использованием линейного программирования с минимизацией z ; Отображение x.l, x.m ; -------------------------------------------------