Excel file with data also attached.
/* Задание множеств */
set PRD; #product groups
set PLA; #plants
set DC; #warehouse
set MKT; #demand markets
/* Объявление параметров модели */
param MAXPROD {PRD,PLA}; # amount of product i produced at plant j
param PRODCOST {PRD,PLA}; # production costs for each product at each plant
param tariff {PLA,DC};
param tariff1 {PLA,MKT};
param tariff2 {DC,MKT};
param HAND {PRD,DC};
param STORE {PRD,DC};
param PENALTY {PRD,MKT};
param DEMAND {PRD,MKT};
param UNSAT {PRD,MKT};
param TRNCON {PRD,DC}; #
param DCCAP {PRD,DC};
/* Объявление переменных модели */
var volume {PRD,PLA} >=0;
var trans {PRD,PLA,DC} >=0;
var trans1 {PRD,PLA,MKT} >=0;
var trans2 {PRD,DC,MKT} >=0;
var throughput {PRD,DC} >=0;
var capacity {PRD,DC} >=0;
/* Целевая функция */
minimize Cost: sum {n in PRD, p in PLA} PRODCOST[n,p]*volume[n,p]
+ sum {n in PRD, p in PLA, m in MKT} tariff1 [p,m] * trans1[n,p,m]
+ sum {n in PRD, p in PLA,k in DC} tariff [p,k]*trans[n,p,k]
+sum {n in PRD, k in DC,m in MKT} tariff2 [k,m]*trans2[n,k,m]
+sum {n in PRD, k in DC} HAND [n,k]*throughput [n,k]
+ sum {n in PRD, k in DC} STORE [n,k]*throughput[n,k]
+sum {n in PRD, u in MKT} PENALTY[n,u]*UNSAT[n,u];
/* Система ограничений */
subject to Volume {n in PRD, p in PLA,k in DC, m in MKT}: volume [n,p] =
trans[n,p,k]+
trans1[n,p,m];
subject to Demand {n in PRD, m in MKT,p in PLA, k in DC, u in MKT}: trans1[n,p,m] +
trans2[n,k,m] +
UNSAT[m,u];
subject to Throughput {n in PRD, k in DC, m in MKT} : trans2[n,k,m] -
throughput [n,k];
subject to Capacity {n in PRD, k in DC} : TRNCON [n,k]*throughput [n,k]-
DCCAP[n,k]<=0;
table Production IN "ODBC" "project.xlsx" "production$" : [PRD, PLA], MAXPROD;
table Production1 IN "ODBC" "project.xlsx" "production1$" : [PRD, PLA], PRODCOST;
table Transportation IN "ODBC" "project.xlsx" "transportation$" : [origin,destination], tariff;
table Transportation1 IN "ODBC" "project.xlsx" "transportation1$" : [origin,destination], tariff1;
table Transportation2 IN "ODBC" "project.xlsx" "transportation2$" : [origin,destination],tariff2;
table Handlingstorage IN "ODBC" "project.xlsx" "handlingstorage$" : [DC, Product], HAND,STORE;
table Market IN "ODBC" "project.xlsx" "market$" : [Market,Product], PENALTY,UNSAT ;
table Dc IN "ODBC" "project.xlsx" "dc$" : [DC, Product],TRNCON,DCCAP;