44 lines
1.4 KiB
Modula-2
44 lines
1.4 KiB
Modula-2
#Szenvedélyünk az autók gyűjtése.
|
|
#Jelenleg lehetőségünk van autókat vásárolni, és 5 egymást követő napon tervezzük is megtenni ezt. Minden nap pontosan egy autót tervezünk venni, azonban az autóknak minden egyes nap változik az áruk a világpiaci helyzettől függően.
|
|
#Milyen sorrendben vásároljuk meg az autókat, hogy a kollekciónk teljes legyen és a lehető legkisebb legyen a költségünk?
|
|
|
|
# Hetfo Kedd Szerda Csutortok Pentek
|
|
#Wartburg 60000 65000 61000 66000 60000
|
|
#Lada 50000 55000 63000 60000 52000
|
|
#Kispolski 30000 32000 33000 30000 27000
|
|
#Trabant 70000 65000 77000 85000 100000
|
|
#Skoda 65000 70000 75000 90000 70000
|
|
|
|
|
|
#Megoldás:
|
|
set Cars;
|
|
set Days;
|
|
param price {Cars, Days};
|
|
|
|
var buy{Cars, Days} binary;
|
|
|
|
s.t. ExactlyOneCarEachDay{d in Days}: sum{c in Cars} buy[c,d] =1;
|
|
|
|
s.t. EachCarExactlyOnce {c in Cars}: sum {d in Days} buy[c,d] =1;
|
|
|
|
minimize TotalCost: sum {c in Cars, d in Days} buy[c,d]*price[c,d];
|
|
|
|
solve;
|
|
printf "\n\n";
|
|
for {c in Cars, d in Days: buy[c,d]==1}
|
|
printf "%10s:\t%s%d\n", c,d, price[c,d];
|
|
printf "\n\n";
|
|
|
|
data;
|
|
set Days:= Hetfo Kedd Szerda Csutortok Pentek;
|
|
set Cars:= Wartburg Lada Kispolski Trabant Skoda;
|
|
|
|
param price:
|
|
Hetfo Kedd Szerda Csutortok Pentek:=
|
|
Wartburg 60000 65000 61000 66000 60000
|
|
Lada 50000 55000 63000 60000 52000
|
|
Kispolski 30000 32000 33000 30000 27000
|
|
Trabant 70000 65000 77000 85000 100000
|
|
Skoda 65000 70000 75000 90000 70000
|
|
;
|
|
end; |