18if__name__ ==
"__main__":
21 from슬롯 사이트magic
가져오기GamsInteractive
22슬롯 사이트 = GamsInteractive()
26m = 슬롯 사이트exchange_container
29사이트 = m.addSet(
'사이트', 레코드 = [
"1",
"2",
"3"])
30밀스 = m.addSet(
'밀스', 레코드 = [
"밀 A",
"밀 B",
"밀 C"])
31dist = m.addParameter(
'거리', [사이트, 공장], 레코드 = np.array([[ 8,15,50],
34공급 = m.addParameter(
'공급', [사이트], 레코드 = np.array([20,30,45]))
35수요 = m.addParameter(
'수요', [밀스], 레코드 = np.array([30,35,30]))
36cost_per_haul = m.addParameter(
'cost_per_haul', 레코드 = 4)
41배송 = m.addVariable(
'배',
'긍정적', [현장, 공장])
42obj = m.addVariable(
'obj',
'무료')
47방정식 defcost; defcost.. cost_per_haul*sum((s,m), ship(s,m)*dist(s,m)) =e= obj;
48방정식 공급 부족; defsupply(들).. sum(m, ship(s,m)) =e= 공급(들);
49방정식 수요; defdemand(m).. sum(s, ship(s,m)) =e= 수요(m);
54슬롯 사이트슬롯 사이트(
'lp를 사용하여 millco min obj를 해결하세요;')
58인쇄(f
'총 비용은 obj.records["level"][0]'이 될 것입니다)
62m = 슬롯 사이트exchange_container
65i = m.addSet(
'나', 레코드 = [
'나'+str(i)
fori
in범위(6)], 설명 =
'방정식 색인')
66j = m.addSet(
'j', 레코드 = [
'j'+str(j)
forj
에범위(9)], 설명 =
'변수 인덱스')
67A = m.addParameter(
'A', [i,j], 레코드 = np.array([[1,1,1,0,0,0,0,0,0],
72 [0,0,1,0,0,1,0,0,1]]))
73b = m.addParameter(
'b', [i], 레코드 = np.array([20,30,45,30,35,30]))
74c = m.addParameter(
'c', [j], 레코드 = np.array([8,15,50,10,17,20,30,26,15]))
75x = m.addVariable(
'x',
'긍정적', [j])
76obj = m.addVariable(
'obj',
'무료')
81수식 defobj; defobj.. 4*sum(j, c(j)*x(j)) =e= obj;
82방정식 e(i); e(i).. sum(j, A(i,j)*x(j)) =e= b(i);
87슬롯 사이트슬롯 사이트(
'lp를 사용하여 gen min obj를 해결하세요;')
91인쇄(f
'총 비용은 obj.records["level"][0]'이 될 것입니다)
94슬롯 사이트gams_cleanup(closedown=
사실입니다)