Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.58 KB | None | 0 0
  1. model "semka"
  2. uses "mmsystem","mmxprs"
  3.  
  4. declarations
  5.  
  6. SKL=1..6
  7. ZAK=1..65
  8.  
  9. vzd:array(SKL,ZAK) of integer!matica vzdialenosti
  10. pocobyv:array(ZAK) of integer !pocty obyvatelov
  11. poziadavky:array(ZAK)of integer !poziadavky obci
  12. x: array(SKL,ZAK)of mpvar! obsluzenie zakaznika skladom.
  13. y:array(SKL)of mpvar !vybudovanie skladu
  14. f:array(SKL) of integer!fixne naklady na vybudovanie skladu
  15. suma:integer
  16. end-declarations
  17.  
  18.  
  19. !initializations from 'data.dat'
  20. !pocobyv; vzd;
  21. !end-initializations
  22.  
  23. 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,
  24. 609,607,601,567,543,543,540,540,528,526,519,513,499,499,496,494,470,
  25. 468,467,446,442,429,420,417,417,399,396,394,392,387,386,381,381,368,
  26. 362,358,356,356]
  27.  
  28. vzd:= [0,32.0,34.0,9.0,18.0,18.5,12.5,17.5,33.5,10.5,14.5,6.0,
  29. 11.0,13.5,25.0,16.0,21.5,8.5,38.0,11.0,9.0,14.5,12.0,
  30. 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,
  31. 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,
  32. 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,
  33. 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,
  34. 42.5,46.5,38.0,43.0,45.5,37.5,48.0,53.5,33.5,6.0,43.0,41.0,
  35. 46.5,22.5,33.5,46.0,41.0,18.0,37.0,51.0,39.5,14.5,48.5,14.5,
  36. 44.0,40.0,51.5,8.0,10.0,34.5,46.5,35.0,39.0,32.5,40.5,51.5,
  37. 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,
  38. 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,
  39. 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,
  40. 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,
  41. 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,
  42. 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,
  43. 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,
  44. 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,
  45. 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,
  46. 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,
  47. 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,
  48. 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,
  49. 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,
  50. 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,
  51. 34.5,38.0,29.0,12.5,32.5,54.5,41.0,19.0,32.5,15.5,25.0,15.0,
  52. 16.5,32.5,27.0,40.0,32.5,29.0,17.5,16.0,17.5,30.5,24.5,4.0,
  53. 26.5,41.5,36.5,21.5,20.5,30.5,42.5,27.5,3.5,30.0,37.5,18.5,
  54. 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,
  55. 43.5,29.5,3.0,27.0,56.5,24.5,15.5,28.0,30.5,44.5,27.5,39.5,
  56. 58.0,13.5,4.5,38.5,41.0,16.0,38.5,9.5,21.5,5.0,58.5,45.5,
  57. 50.5,14.0,46.0,11.5,46.5,22.0,3.0,27.5,54.0,14.0,10.5,49.0,
  58. 39.0,48.0,56.0,25.0,27.5,30.5,56.0,37.0,26.0,29.5,31.0,43.0,
  59. 9.0,35.0,30.5,19.0]
  60.  
  61.  
  62.  
  63.  
  64. !poziadavky jdenotlivych obci.
  65. forall(i in SKL) poziadavky(i):=round(ceil(pocobyv(i)*0.20))
  66. forall(i in SKL, j in ZAK) x(i,j) is_binary
  67. forall(i in SKL) y(i) is_binary
  68.  
  69. suma:=sum(i in ZAK) pocobyv(i)
  70.  
  71. f(1):=round(ceil(suma*0.18));
  72. f(2):=round(ceil(suma*0.16));
  73. f(3):=round(ceil(suma*0.14));
  74. f(4):=round(ceil(suma*0.12));
  75. f(5):=round(ceil(suma*0.10));
  76. f(6):=round(ceil(suma*0.08));
  77.  
  78.  
  79. !hranica poctu stredisiek
  80. sum (i in SKL) y(i)<=6
  81.  
  82. !kazdy zak je obsluhovany len z 1 miesta a musi byt obsluzeny
  83. forall( j in ZAK) sum (i in SKL) x(i,j)=1
  84.  
  85.  
  86.  
  87. !zabezpecenie tvorby stredisiek
  88. forall( i in SKL) sum (j in ZAK) x(i,j)<=y(i)*200000
  89.  
  90.  
  91.  
  92. !ucelovka
  93. 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)
  94.  
  95.  
  96.  
  97. minimize(naklady)
  98.  
  99.  
  100. writeln("naklady su "+ getobjval)
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112. end-model
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement