Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set products := { "prod1" , "prod2" , "prod3" , "prod4" , "prod5" , "prod6" , "prod7" };
- set months := {1, 2, 3, 4, 5, 6};
- set months_zero := {0, 1, 2, 3, 4, 5, 6};
- set tools := { "szlifierka", "wiertarka_pion", "wiertarka_poziom", "swider", "strugarka" };
- param profit[products] := <"prod1"> 10, <"prod2"> 6, <"prod3"> 8, <"prod4"> 4, <"prod5"> 11, <"prod6"> 9, <"prod7"> 3;
- param time_needed[tools * products] :=
- |"prod1", "prod2", "prod3", "prod4", "prod5", "prod6", "prod7"|
- |"szlifierka" | 0.5 , 0.7 , 0 , 0 , 0.3 , 0.2 , 0.5 |
- |"wiertarka_pion" | 0.1 , 0.2 , 0 , 0.3 , 0 , 0.6 , 0 |
- |"wiertarka_poziom" | 0.2 , 0 , 0.8 , 0 , 0 , 0 , 0.6 |
- |"swider" | 0.05 , 0.03 , 0 , 0.07 , 0.1 , 0 , 0.08 |
- |"strugarka" | 0 , 0 , 0.01 , 0 , 0.05 , 0 , 0.05 |;
- param machine_available_hour[tools * months] :=
- | 1 , 2 , 3 , 4 , 5 , 6 |
- |"szlifierka" | 1152 , 1536 , 1536 , 1536 , 1152 , 1536 |
- |"wiertarka_pion" | 768 , 768 , 768 , 384 , 384 , 768 |
- |"wiertarka_poziom" | 1152 , 384 , 1152 , 1152 , 1152 , 768 |
- |"swider" | 384 , 384 , 0 , 384 , 384 , 384 |
- |"strugarka" | 384 , 384 , 384 , 384 , 384 , 0 |;
- param sales[months * products] :=
- | "prod1" , "prod2" , "prod3" , "prod4" , "prod5" , "prod6" , "prod7" |
- | 1 | 500 , 1000 , 300 , 300 , 800 , 200 , 100 |
- | 2 | 600 , 500 , 200 , 0 , 400 , 300 , 150 |
- | 3 | 300 , 600 , 0 , 0 , 500 , 400 , 100 |
- | 4 | 200 , 300 , 400 , 500 , 200 , 0 , 100 |
- | 5 | 0 , 100 , 500 , 100 , 1000 , 300 , 0 |
- | 6 | 500 , 500 , 100 , 300 , 1100 , 500 , 60 |;
- #sprzedaz
- var sold[products * months] >= 0;
- #produkcja
- var production[products * months] integer >= 0;
- #magazyn
- var magazine[products * months_zero] >= 0;
- maximize earnings:
- sum<a, b> in products * months: (sold[a, b] * profit[a] - magazine[a, b] * 0.5);
- subto products_in_magazine:
- forall<a, b> in products * months: magazine[a, b] <= 100;
- subto products_in_magazine_0:
- forall<a> in products: magazine[a, 0] == 0;
- subto products_in_magazine_6:
- forall<a> in products: magazine[a, 6] == 50;
- subto products_in_magazine_months:
- forall<a, b> in products * months: magazine[a, b] == production[a, b] - sold[a, b] + magazine[a, b-1];
- subto average_machine:
- forall <a, b> in tools * months:
- sum<c> in products: time_needed[a, c] * production[c, b] <= machine_available_hour[a, b];
- subto sold_all:
- forall<a, b> in products * months: sold[a, b] <= sales[b, a];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement