Инструменты 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 ;
-------------------------------------------------