mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 15:23:11 +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 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
|
||||
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
|
||||
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 =
|
||||
expectedSalesProfit - totalStorageCost;
|
||||
|
||||
@ -100,6 +107,14 @@ var expectedNetProfit =
|
||||
# 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
|
||||
subject to SalesMarketLimit {m in MONTHS, p in PRODUCTS}:
|
||||
sold[m, p] <= salesMarketLimit[m, p];
|
||||
@ -108,9 +123,6 @@ subject to SalesLimit1 {p in PRODUCTS}:
|
||||
sold[first(MONTHS), p] <= produced[first(MONTHS), p];
|
||||
subject to SalesLimit2 {m in MONTHS, p in PRODUCTS: m != first(MONTHS)}:
|
||||
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
|
||||
subject to StorageLimit {m in MONTHS, p in PRODUCTS}:
|
||||
storage[m, p] <= storageLimit[p];
|
||||
|
||||
@ -74,6 +74,10 @@ var produced {MONTHS, PRODUCTS} >= 0 integer;
|
||||
var sold {MONTHS,PRODUCTS} >= 0 integer;
|
||||
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
|
||||
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
|
||||
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 =
|
||||
expectedSalesProfit - totalStorageCost;
|
||||
|
||||
# Zysk w danym scenariuszu
|
||||
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} =
|
||||
scenarioSalesProfit[s] - totalStorageCost;
|
||||
|
||||
@ -130,6 +140,14 @@ var risk = maxDeviation;
|
||||
# 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
|
||||
subject to SalesMarketLimit {m in MONTHS, p in PRODUCTS}:
|
||||
sold[m, p] <= salesMarketLimit[m, p];
|
||||
@ -138,9 +156,6 @@ subject to SalesLimit1 {p in PRODUCTS}:
|
||||
sold[first(MONTHS), p] <= produced[first(MONTHS), p];
|
||||
subject to SalesLimit2 {m in MONTHS, p in PRODUCTS: m != first(MONTHS)}:
|
||||
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
|
||||
subject to StorageLimit {m in MONTHS, p in PRODUCTS}:
|
||||
storage[m, p] <= storageLimit[p];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user