WUT_Computer_Science/Programming/WDWR/projekt/doc/DOCS-05-pliki-ampl.md
Krzysztof kuhy Rudnicki 54337a662e Organise markdown into the four namespaces and add CLAUDE.md
Five files were outside README / CLAUDE* / DOCS* / TODO*, and two were over
the 250-line cap. Both gates now pass repo-wide.

Renames: the two lowercase readme.md files, and three documents into DOCS-*.
The AIS requirements doc split at its own boundary into functional (101) and
non-functional (174). The WDWR report split into six numbered sections behind
an index that keeps the original filename, 38-235 lines each; 753 lines of
body plus the 18-line header account for all 771 original lines, so nothing
was dropped.

That WDWR file needed checking before splitting: it sits next to main.tex and
main.pdf and looked like a conversion of them. It is not -- main.tex is
project 25406 and the markdown is project 18402, a different document. So it
is authored content and the split is real work, not churn on a build artifact.

Filled the three empty READMEs and replaced ECOTE's, which was a stale copy of
the root README still claiming the group projects were excluded -- they were
merged in by subtree some time ago.

EOPSY/lab1 turned out not to be the code-free directory the survey suggested:
it has modify.sh and modify_examples.sh. The oddly-named empty files beside
them are the exercise's OUTPUT, committed so the before/after state is
visible, and its README now says so rather than leaving them looking like junk.

CLAUDE.md follows the testsAndMisc structure. Writing it caught a nice one:
the md-naming marker is a biconditional, so quoting the literal removal string
in a non-TODO file fails the gate. The gate was right; the text is rephrased.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE
2026-08-28 17:41:11 +02:00

15 KiB

5.2 Plik z danymi (.dat**)**

załączniku.
1 # ##########################################################
2 # WDWR 25406 #
3 # Planowanie produkcj w warunkach ryzyka. #
4 # DANE #
5 # Autor : Jan Kumor #
6 # ##########################################################
7
8 # Narzedzia
9 set TOOLS := GRINDER VDRILL HDRILL MILLER LATHE ;
10
11 # Miesiace
12 set MONTHS := JAN FEB MAR ;
13
14 # Liczba narzedzi
15 param toolCount :=
16 GRINDER 4
17 VDRILL 2
18 HDRILL 3
19 MILLER 1
20 LATHE 1
21 ;
22
23 # Czasy produkcji h
24 param toolTimePerUnit :
25 P1 P2 P3←-
                               P4 :=
26 GRINDER 0 .4 0 .6 0 ←-
             0
27 VDRILL 0 .2 0 .1 0 ←-
             0 .6
28 HDRILL 0 .1 0 0 .7 ←-
             0
29 MILLER 0 .06 0 .04 0 0 .05
30 LATHE 0 0 .05 0 .02 0
31 ;
32
33 # Ograniczenia rynkowe liczby sprzedawanych produktow pcs
34 param salesMarketLimit :
35 P1 P2 P3 ←-
                       P4 :=
36 JAN 200 0 100 ←-
             200
37 FEB 300 100 200 ←-
             200
38 MAR 0 300 100 ←-
             200
39 ;
40
41 # Ograniczeine liczby magazynowanych produktow pcs
42 param storageLimit :=
43 P1 200
44 P2 200
45 P3 200
46 P4 200

Listing 3: Dane dla modelu AMPL - pominięto scenariusze, pełny zestaw danych dostępny w

47 ;
48
49 # Koszt magazynowania produktow pln/pcs per month
50 param storageUnitCost := 1;
51
52 # Aktualny stan magazynowy pcs
53 param startingStorage :=
54 P1 0
55 P2 0
56 P3 0
57 P4 0
58 ;
59
60 # Pozadany stan magazynowy na koniec marca pcs
61 param desiredEndStorage :=
62 P1 50
63 P2 50
64 P3 50
65 P4 50
66 ;
67
68 # Liczba dni roboczych w miesiacu d
69 param daysPerMonth := 24;
70
71 # Liczba zmian w ciagu jednego dnia roboczego
72 param shiftsPerDay := 2;
73
74 # Dlugosc zmiany h
75 param hoursPerShift := 8;
76
77 # Zyski wartosc oczekiwana
78 param expectedProfitPerUnit :=
79 P1 8 .50944172786882
80 P2 8 .47100593224391
81 P3 8 .1319049712769
82 P4 6 .39446520538826
83 ;
84
85 # Metoda punktu odniesienia
86 param epsilon = 0 .000025 ;
87
88 param beta = 0 .001 ;
89
90 param utopia :=
91 PROFIT 11987
92 RISK 1000
93 ;
94
95 param nadir :=
96 PROFIT -2400
97 RISK 2815
98 ;
99
100 param aspiration :=
101 PROFIT 10000
102 RISK 0

smp oraz wartość wyznaczonego rozwiązania optymalnego:

ep = 11987*.*42[z]

Listing 7: Wynik działania skryptu wyznaczającego rozwiązanie optymalne modelu jednokryterialnego.

1 # ################################################
2 ###
Maximize
profit
for
expected
profit
value
###
3 # ################################################
4 CPLEX 12 .8.0.0 : optimal integer solution ; objective 11987 .41899
5 11
MIP
simplex
iterations
6 0
branch -and - bound
nodes
7 produced :=
8 JAN P1 200
9 JAN P2 0
10 JAN P3 100
11 JAN P4 200
12 FEB P1 200
13 FEB P2 0
14 FEB P3 200
15 FEB P4 200
16 MAR P1 50
17 MAR P2 250
18 MAR P3 150
19 MAR P4 250
20 ;
21
22 sold :=
23 JAN P1 200
24 JAN P2 0
25 JAN P3 100
26 JAN P4 200
27 FEB P1 200
28 FEB P2 0
29 FEB P3 200
30 FEB P4 200
31 MAR P1 0
32 MAR P2 200
33 MAR P3 100
34 MAR P4 200
35 ;
36
37 stored :=
38 JAN P1 0
39 JAN P2 0
40 JAN P3 0
41 JAN P4 0
42 FEB P1 0
43 FEB P2 0
44 FEB P3 0
45 FEB P4 0
46 MAR P1 50
47 MAR P2 50
48 MAR P3 50
49 MAR P4 50

52 Profit: 11987.418989

Rysunek 1: Obraz zbioru rozwiązań efektywnych w przestrzeni ryzyko-zysk