Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- model "semka"
- uses "mmsystem","mmxprs"
- declarations
- SKL=1..6
- ZAK=1..65
- vzd:array(SKL,ZAK) of integer!matica vzdialenosti
- pocobyv:array(ZAK) of integer !pocty obyvatelov
- poziadavky:array(ZAK)of integer !poziadavky obci
- x: array(SKL,ZAK)of mpvar! obsluzenie zakaznika skladom.
- y:array(SKL)of mpvar !vybudovanie skladu
- f:array(SKL) of integer!fixne naklady na vybudovanie skladu
- suma:integer
- end-declarations
- !initializations from 'data.dat'
- !pocobyv; vzd;
- !end-initializations
- pocobyv:= [33253,12745,4306,2516,2376,1398,1211,1057,1046,1032,1004,995,983,937,892,870,811,803,784,778,734,712,707,703,690,668,630,609,
- 609,607,601,567,543,543,540,540,528,526,519,513,499,499,496,494,470,
- 468,467,446,442,429,420,417,417,399,396,394,392,387,386,381,381,368,
- 362,358,356,356]
- vzd:= [0,32.0,34.0,9.0,18.0,18.5,12.5,17.5,33.5,10.5,14.5,6.0,
- 11.0,13.5,25.0,16.0,21.5,8.5,38.0,11.0,9.0,14.5,12.0,
- 31.0,14.0,23.5,39.5,5.0,19.0,25.0,22.5,16.5,20.0,12.0,8.0,19.5,
- 40.0,27.0,37.0,14.5,27.5,7.0,33.0,8.5,19.5,9.0,35.5,14.5,11.0,
- 35.5,20.5,29.5,37.5,6.5,14.0,12.0,37.5,18.5,7.5,11.0,12.5,24.5,
- 9.5,21.5,12.0,19.5,32.0,0,28.5,25.5,46.5,50.5,37.5,42.5,31.0,
- 42.5,46.5,38.0,43.0,45.5,37.5,48.0,53.5,33.5,6.0,43.0,41.0,
- 46.5,22.5,33.5,46.0,41.0,18.0,37.0,51.0,39.5,14.5,48.5,14.5,
- 44.0,40.0,51.5,8.0,10.0,34.5,46.5,35.0,39.0,32.5,40.5,51.5,
- 34.0,6.5,46.5,43.0,33.0,44.0,33.0,16.0,31.5,46.0,37.0,5.5,18.5,
- 39.5,43.0,29.0,7.5,41.5,45.5,28.5,51.5,34.0,28.5,0,42.0,18.0,
- 49.5,28.5,18.5,2.5,36.5,41.5,30.0,27.5,44.5,9.0,22.5,52.5,31.5,
- 34.5,25.0,43.0,24.0,45.0,5.0,24.5,12.5,10.5,39.0,50.0,11.0,27.5,
- 50.5,43.0,46.0,30.5,50.5,36.5,23.0,6.0,48.5,6.5,41.0,4.0,34.5,
- 50.5,27.0,22.0,48.5,45.0,4.5,15.5,4.5,12.5,29.5,22.0,24.0,23.5,
- 31.5,26.5,23.0,45.5,36.0,43.5,17.0,45.0,53.5,9.0,25.5,42.0,0,27.0,
- 27.5,18.5,23.5,42.5,19.5,23.5,15.0,20.0,22.5,33.0,25.0,30.5,14.5,
- 31.5,20.0,18.0,23.5,3.0,40.0,23.0,32.5,43.5,14.0,28.0,34.0,28.5,
- 25.5,11.0,21.0,17.0,28.5,33.5,33.0,46.0,23.5,35.5,16.0,42.0,17.5,
- 28.5,15.0,32.0,23.5,20.0,44.5,29.5,37.5,41.5,12.5,23.0,18.0,31.0,
- 24.5,16.5,20.0,3.5,18.0,18.5,30.5,3.0,28.5,18.0,46.5,18.0,27.0,0,
- 31.5,30.5,21.0,15.5,18.5,23.5,12.0,9.5,26.5,13.0,4.5,34.5,26.5,
- 52.5,7.0,27.0,6.0,30.0,13.0,6.5,8.0,28.5,23.0,32.0,7.0,40.5,
- 34.5,38.0,29.0,12.5,32.5,54.5,41.0,19.0,32.5,15.5,25.0,15.0,
- 16.5,32.5,27.0,40.0,32.5,29.0,17.5,16.0,17.5,30.5,24.5,4.0,
- 26.5,41.5,36.5,21.5,20.5,30.5,42.5,27.5,3.5,30.0,37.5,18.5,
- 50.5,49.5,27.5,31.5,0,31.0,36.0,47.0,13.0,8.0,19.5,24.5,5.0,
- 43.5,29.5,3.0,27.0,56.5,24.5,15.5,28.0,30.5,44.5,27.5,39.5,
- 58.0,13.5,4.5,38.5,41.0,16.0,38.5,9.5,21.5,5.0,58.5,45.5,
- 50.5,14.0,46.0,11.5,46.5,22.0,3.0,27.5,54.0,14.0,10.5,49.0,
- 39.0,48.0,56.0,25.0,27.5,30.5,56.0,37.0,26.0,29.5,31.0,43.0,
- 9.0,35.0,30.5,19.0]
- !poziadavky jdenotlivych obci.
- forall(i in SKL) poziadavky(i):=round(ceil(pocobyv(i)*0.20))
- forall(i in SKL, j in ZAK) x(i,j) is_binary
- forall(i in SKL) y(i) is_binary
- suma:=sum(i in ZAK) pocobyv(i)
- f(1):=round(ceil(suma*0.18));
- f(2):=round(ceil(suma*0.16));
- f(3):=round(ceil(suma*0.14));
- f(4):=round(ceil(suma*0.12));
- f(5):=round(ceil(suma*0.10));
- f(6):=round(ceil(suma*0.08));
- !hranica poctu stredisiek
- sum (i in SKL) y(i)<=6
- !kazdy zak je obsluhovany len z 1 miesta a musi byt obsluzeny
- forall( j in ZAK) sum (i in SKL) x(i,j)=1
- !zabezpecenie tvorby stredisiek
- forall( i in SKL) sum (j in ZAK) x(i,j)<=y(i)*200000
- !ucelovka
- naklady := (sum (i in SKL,j in ZAK) (x(i,j)*vzd(i,j)*poziadavky(j)*1))+ sum(i in SKL) f(i)*y(i)
- minimize(naklady)
- writeln("naklady su "+ getobjval)
- end-model
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement