mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 13:03:05 +02:00
feat: change wdwr project to meet requiremetns
This commit is contained in:
parent
86a5ab4a18
commit
6d3b860f1f
@ -71,6 +71,10 @@ var produced {MONTHS, PRODUCTS} >= 0 integer;
|
|||||||
var sold {MONTHS,PRODUCTS} >= 0 integer;
|
var sold {MONTHS,PRODUCTS} >= 0 integer;
|
||||||
var totalSold {p in PRODUCTS} = sum {m in MONTHS} sold[m, p];
|
var totalSold {p in PRODUCTS} = sum {m in MONTHS} sold[m, p];
|
||||||
|
|
||||||
|
# Sprzedaz z podziałem na normalną (do 80% limitu rynku) i z obniżonym zyskiem (powyżej 80% limitu)
|
||||||
|
var salesNormal {m in MONTHS, p in PRODUCTS} >= 0 integer;
|
||||||
|
var salesDiscounted {m in MONTHS, p in PRODUCTS} >= 0 integer;
|
||||||
|
|
||||||
# Iloosc produktow przekazanych do magazynu w danym miesiacu
|
# Iloosc produktow przekazanych do magazynu w danym miesiacu
|
||||||
var stored {m in MONTHS, p in PRODUCTS} = produced[m, p] - sold[m, p];
|
var stored {m in MONTHS, p in PRODUCTS} = produced[m, p] - sold[m, p];
|
||||||
|
|
||||||
@ -91,7 +95,10 @@ var totalStorageCost = sum {m in MONTHS} monthlyStorageCost[m];
|
|||||||
|
|
||||||
# Zysk dla warto<EFBFBD>ci oczekiwanej
|
# Zysk dla warto<EFBFBD>ci oczekiwanej
|
||||||
var expectedSalesProfit =
|
var expectedSalesProfit =
|
||||||
sum {p in PRODUCTS} totalSold[p]*expectedProfitPerUnit[p];
|
sum {m in MONTHS, p in PRODUCTS} (
|
||||||
|
salesNormal[m, p] * expectedProfitPerUnit[p] +
|
||||||
|
salesDiscounted[m, p] * 0.8 * expectedProfitPerUnit[p]
|
||||||
|
);
|
||||||
var expectedNetProfit =
|
var expectedNetProfit =
|
||||||
expectedSalesProfit - totalStorageCost;
|
expectedSalesProfit - totalStorageCost;
|
||||||
|
|
||||||
@ -100,6 +107,14 @@ var expectedNetProfit =
|
|||||||
# Ograniczenia modelu #
|
# Ograniczenia modelu #
|
||||||
#######################
|
#######################
|
||||||
|
|
||||||
|
# Podział sprzedaży na normalną i z obniżonym zyskiem
|
||||||
|
subject to TotalSales {m in MONTHS, p in PRODUCTS}:
|
||||||
|
sold[m, p] = salesNormal[m, p] + salesDiscounted[m, p];
|
||||||
|
|
||||||
|
# Ograniczenie normalnej sprzedaży do 80% limitu rynkowego
|
||||||
|
subject to NormalSalesLimit {m in MONTHS, p in PRODUCTS}:
|
||||||
|
salesNormal[m, p] <= 0.8 * salesMarketLimit[m, p];
|
||||||
|
|
||||||
# Ograniczenie rynkowe sprzedazy produktow
|
# Ograniczenie rynkowe sprzedazy produktow
|
||||||
subject to SalesMarketLimit {m in MONTHS, p in PRODUCTS}:
|
subject to SalesMarketLimit {m in MONTHS, p in PRODUCTS}:
|
||||||
sold[m, p] <= salesMarketLimit[m, p];
|
sold[m, p] <= salesMarketLimit[m, p];
|
||||||
@ -108,9 +123,6 @@ subject to SalesLimit1 {p in PRODUCTS}:
|
|||||||
sold[first(MONTHS), p] <= produced[first(MONTHS), p];
|
sold[first(MONTHS), p] <= produced[first(MONTHS), p];
|
||||||
subject to SalesLimit2 {m in MONTHS, p in PRODUCTS: m != first(MONTHS)}:
|
subject to SalesLimit2 {m in MONTHS, p in PRODUCTS: m != first(MONTHS)}:
|
||||||
sold[m, p] <= produced [m, p] + storage[m, p];
|
sold[m, p] <= produced [m, p] + storage[m, p];
|
||||||
# Powiazanie sprzedazy produktu P4 ze sprzedaza produktow P1 i P2
|
|
||||||
subject to P4SalesConstraint {m in MONTHS}:
|
|
||||||
sold[m, "P4"] >= sold[m, "P1"] + sold[m, "P2"];
|
|
||||||
# Ograniczenie pojemno<EFBFBD>ci magazynowej
|
# Ograniczenie pojemno<EFBFBD>ci magazynowej
|
||||||
subject to StorageLimit {m in MONTHS, p in PRODUCTS}:
|
subject to StorageLimit {m in MONTHS, p in PRODUCTS}:
|
||||||
storage[m, p] <= storageLimit[p];
|
storage[m, p] <= storageLimit[p];
|
||||||
|
|||||||
@ -74,6 +74,10 @@ var produced {MONTHS, PRODUCTS} >= 0 integer;
|
|||||||
var sold {MONTHS,PRODUCTS} >= 0 integer;
|
var sold {MONTHS,PRODUCTS} >= 0 integer;
|
||||||
var totalSold {p in PRODUCTS} = sum {m in MONTHS} sold[m, p];
|
var totalSold {p in PRODUCTS} = sum {m in MONTHS} sold[m, p];
|
||||||
|
|
||||||
|
# Sprzedaz z podziałem na normalną (do 80% limitu rynku) i z obniżonym zyskiem (powyżej 80% limitu)
|
||||||
|
var salesNormal {m in MONTHS, p in PRODUCTS} >= 0 integer;
|
||||||
|
var salesDiscounted {m in MONTHS, p in PRODUCTS} >= 0 integer;
|
||||||
|
|
||||||
# Iloosc produktow przekazanych do magazynu w danym miesiacu
|
# Iloosc produktow przekazanych do magazynu w danym miesiacu
|
||||||
var stored {m in MONTHS, p in PRODUCTS} = produced[m, p] - sold[m, p];
|
var stored {m in MONTHS, p in PRODUCTS} = produced[m, p] - sold[m, p];
|
||||||
|
|
||||||
@ -92,13 +96,19 @@ var totalStorageCost = sum {m in MONTHS} monthlyStorageCost[m];
|
|||||||
|
|
||||||
# Zysk dla warto<EFBFBD>ci oczekiwanej
|
# Zysk dla warto<EFBFBD>ci oczekiwanej
|
||||||
var expectedSalesProfit =
|
var expectedSalesProfit =
|
||||||
sum {p in PRODUCTS} totalSold[p]*expectedProfitPerUnit[p];
|
sum {m in MONTHS, p in PRODUCTS} (
|
||||||
|
salesNormal[m, p] * expectedProfitPerUnit[p] +
|
||||||
|
salesDiscounted[m, p] * 0.8 * expectedProfitPerUnit[p]
|
||||||
|
);
|
||||||
var expectedNetProfit =
|
var expectedNetProfit =
|
||||||
expectedSalesProfit - totalStorageCost;
|
expectedSalesProfit - totalStorageCost;
|
||||||
|
|
||||||
# Zysk w danym scenariuszu
|
# Zysk w danym scenariuszu
|
||||||
var scenarioSalesProfit {s in SCENARIOS} =
|
var scenarioSalesProfit {s in SCENARIOS} =
|
||||||
sum {p in PRODUCTS} totalSold[p]*scenarioProfitPerUnit[s, p];
|
sum {m in MONTHS, p in PRODUCTS} (
|
||||||
|
salesNormal[m, p] * scenarioProfitPerUnit[s, p] +
|
||||||
|
salesDiscounted[m, p] * 0.8 * scenarioProfitPerUnit[s, p]
|
||||||
|
);
|
||||||
var scenarioNetProfit {s in SCENARIOS} =
|
var scenarioNetProfit {s in SCENARIOS} =
|
||||||
scenarioSalesProfit[s] - totalStorageCost;
|
scenarioSalesProfit[s] - totalStorageCost;
|
||||||
|
|
||||||
@ -130,6 +140,14 @@ var risk = maxDeviation;
|
|||||||
# Ograniczenia modelu #
|
# Ograniczenia modelu #
|
||||||
#######################
|
#######################
|
||||||
|
|
||||||
|
# Podział sprzedaży na normalną i z obniżonym zyskiem
|
||||||
|
subject to TotalSales {m in MONTHS, p in PRODUCTS}:
|
||||||
|
sold[m, p] = salesNormal[m, p] + salesDiscounted[m, p];
|
||||||
|
|
||||||
|
# Ograniczenie normalnej sprzedaży do 80% limitu rynkowego
|
||||||
|
subject to NormalSalesLimit {m in MONTHS, p in PRODUCTS}:
|
||||||
|
salesNormal[m, p] <= 0.8 * salesMarketLimit[m, p];
|
||||||
|
|
||||||
# Ograniczenie rynkowe sprzedazy produktow
|
# Ograniczenie rynkowe sprzedazy produktow
|
||||||
subject to SalesMarketLimit {m in MONTHS, p in PRODUCTS}:
|
subject to SalesMarketLimit {m in MONTHS, p in PRODUCTS}:
|
||||||
sold[m, p] <= salesMarketLimit[m, p];
|
sold[m, p] <= salesMarketLimit[m, p];
|
||||||
@ -138,9 +156,6 @@ subject to SalesLimit1 {p in PRODUCTS}:
|
|||||||
sold[first(MONTHS), p] <= produced[first(MONTHS), p];
|
sold[first(MONTHS), p] <= produced[first(MONTHS), p];
|
||||||
subject to SalesLimit2 {m in MONTHS, p in PRODUCTS: m != first(MONTHS)}:
|
subject to SalesLimit2 {m in MONTHS, p in PRODUCTS: m != first(MONTHS)}:
|
||||||
sold[m, p] <= produced [m, p] + storage[m, p];
|
sold[m, p] <= produced [m, p] + storage[m, p];
|
||||||
# Powiazanie sprzedazy produktu P4 ze sprzedaza produktow P1 i P2
|
|
||||||
subject to P4SalesConstraint {m in MONTHS}:
|
|
||||||
sold[m, "P4"] >= sold[m, "P1"] + sold[m, "P2"];
|
|
||||||
# Ograniczenie pojemno<EFBFBD>ci magazynowej
|
# Ograniczenie pojemno<EFBFBD>ci magazynowej
|
||||||
subject to StorageLimit {m in MONTHS, p in PRODUCTS}:
|
subject to StorageLimit {m in MONTHS, p in PRODUCTS}:
|
||||||
storage[m, p] <= storageLimit[p];
|
storage[m, p] <= storageLimit[p];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user