From a953d1407d1a740fab59eca24ed6f589c8ab54a5 Mon Sep 17 00:00:00 2001 From: "Krzysztof R." Date: Sun, 19 Nov 2023 13:54:14 +0100 Subject: [PATCH] Finished mom project 1 --- NotProgramming/MOM/.report_one.tex.swp | 141 ----- NotProgramming/MOM/12glpk.dat | 18 + NotProgramming/MOM/12glpk.mod | 21 + NotProgramming/MOM/1glpk.dat | 13 - NotProgramming/MOM/1glpk.mod | 15 +- NotProgramming/MOM/21glpk.dat | 19 + NotProgramming/MOM/21glpk.mod | 29 ++ NotProgramming/MOM/22glpk.dat | 19 + NotProgramming/MOM/22glpk.mod | 27 + NotProgramming/MOM/23glpk.dat | 19 + NotProgramming/MOM/23glpk.mod | 31 ++ NotProgramming/MOM/flow12.pdf | Bin 0 -> 29930 bytes NotProgramming/MOM/flowchart21 | 264 ++++++++++ NotProgramming/MOM/flowchart21.pdf | Bin 0 -> 35300 bytes NotProgramming/MOM/flowchart22 | 371 ++++++++++++++ NotProgramming/MOM/flowchart22.pdf | Bin 0 -> 37619 bytes NotProgramming/MOM/graphs12 | 218 ++++++++ NotProgramming/MOM/report_one.tex | 683 ++++++++++++++++++++++++- 18 files changed, 1715 insertions(+), 173 deletions(-) delete mode 100644 NotProgramming/MOM/.report_one.tex.swp create mode 100644 NotProgramming/MOM/12glpk.dat create mode 100644 NotProgramming/MOM/12glpk.mod create mode 100644 NotProgramming/MOM/21glpk.dat create mode 100644 NotProgramming/MOM/21glpk.mod create mode 100644 NotProgramming/MOM/22glpk.dat create mode 100644 NotProgramming/MOM/22glpk.mod create mode 100644 NotProgramming/MOM/23glpk.dat create mode 100644 NotProgramming/MOM/23glpk.mod create mode 100644 NotProgramming/MOM/flow12.pdf create mode 100644 NotProgramming/MOM/flowchart21 create mode 100644 NotProgramming/MOM/flowchart21.pdf create mode 100644 NotProgramming/MOM/flowchart22 create mode 100644 NotProgramming/MOM/flowchart22.pdf create mode 100644 NotProgramming/MOM/graphs12 diff --git a/NotProgramming/MOM/.report_one.tex.swp b/NotProgramming/MOM/.report_one.tex.swp deleted file mode 100644 index 4a61c7c2..00000000 --- a/NotProgramming/MOM/.report_one.tex.swp +++ /dev/null @@ -1,141 +0,0 @@ -\documentclass[12pt]{article} -\usepackage[polish]{babel} -\usepackage{float} -\usepackage[utf8]{inputenc} -\usepackage{amsmath} -\usepackage{pdfpages} -\usepackage[T1]{fontenc} % Add this line - \title{Sprawozdanie z projektu MOM} - \author{Krzysztof Rudnicki, 307585} - \date{\today} -\begin{document} - -\maketitle -\section{Zadanie 1. Sieć przepływowa} - -\subsection{Model sieciowy} -\paragraph{Problem do rozwiązania} -Należy rozwiązać problem najtańszego przepływu \\ -\begin{figure}[htb] -\caption{Koszty transportowe i przepustowości na poszczególnych odcinkach} -\begin{center} -\begin{tabular}{ | c | c | c | c | c | c | } -\hline - & D & E & F & G & H \\ - \hline - A & 4, 15 & 2, 10 & - & - & -\\ - \hline - B & 4, 4 & 3, 9 & - & 8, 9 & - \\ - \hline - C & 2, 20 & 6, 10 & - & - & - \\ - \hline - D & - & - & 3, 10 & 7, 3 & 2, 2 \\ - \hline - E & 5, 20 & - & 7, 5 & 6, 5 & 3, 5 \\ - \hline -\end{tabular} -\end{center} -\end{figure} -\begin{figure}[htb] -\caption{Zdolności wydobywcze kopalń (w tys. ton)} -\begin{center} -\begin{tabular}{ | c | c |} -\hline - $W_A$ & 10 \\ - \hline -$W_B$ & 13 \\ - \hline - $W_C$ & 17 \\ - \hline -\end{tabular} -\end{center} -\end{figure} -\begin{figure}[htb] -\caption{Średnie zużycie dobowe węgla przez elektronie (w tys. ton)} -\begin{center} -\begin{tabular}{ | c | c |} -\hline - $Z_F$ & 15 \\ - \hline -$Z_G$ & 13 \\ - \hline - $Z_H$ & 7 \\ - \hline -\end{tabular} -\end{center} -\end{figure} -\paragraph{Sformułowanie} -Matematyczne sformułowanie zadania: -\begin{enumerate} -\item Parametry \\ -s - źródło \\ -B - Budynki (kopalnie, stacje, elektrownie) \\ -K - kopalnie \\ -$c_{ij}$ - koszt transportu z budynku i do budynku j ($c_{sk}$ = 0) \\ -$W_k$ - zdolność wydobywcza kopalni k [w tonach] \\ -$p_{ij}$ - przepustowość transportu z budynku i do budynku j [w tonach] ($u_{sk}$ = $W_k$) \\ -E - elektrownie \\ -$Z_e$ - średnie zużycie dobowe przez elektrownię e [w tonach] \\ -\item Zmienne decyzyjne -$f_{ij}$ - przepływ transportu z budynku i do obiektu j \\ -\item Funkcja celu -\begin{align*} - Q &= \min\left(\sum_{(i, j) \in B \backslash \{s\}} c_{ij} f_{ij}\right) \\ - &= \min(4f_{AD} + 2f_{AE} + 4f_{BD} + 3f_{BE} + 8f_{BG} + 2f_{CD} \\ - &\quad + 6f_{CE} + 3f_{DF} + 7f_{DG} + 2f_{DH} + 5f_{ED} + 7f_{EF} \\ - &\quad + 6f_{EG} + 3f_{EH}) -\end{align*} - -\item Ograniczenia -\begin{equation} - 0 \leq f_{sk} \leq W_k, \; k \in K = \{A, B, C\} -\end{equation} -\begin{equation} - f_{si} = 0, \; i \in B \backslash K -\end{equation} -\begin{equation} - f_{is} = 0, \; i \in B -\end{equation} -\begin{equation} - 0 \leq f_{ij} \leq p_{uj}, \; (i, j) \in B \backslash \{s\} -\end{equation} -\begin{equation} - f_{is} = 0, \; i \in B -\end{equation} -\begin{equation} - \sum_{b \in B} f_{be} \ge Z_e, \; e \in E = \{F, G, H\} -\end{equation} -\begin{equation} - \sum_{i \in B \backslash \{ s \} } f_{bi} \leq \sum_{j \in B} f_{bn}, \; b \in B \backslash \{s\} -\end{equation} - -\end{enumerate} -\paragraph{Narysowanie modelu} -\includepdf[pages=-]{1flow.pdf} - -\subsection{Rozwiązanie}Z -\paragraph{Metoda } - - -\subsection{Zadanie programowania liniowego} - -\section{Zadanie 2. Zadanie przydziału} -\subsection{Zadanie 2.1 Planowanie realizacji portfela przy ograniczonych kompetencjach} -\paragraph{Model sieciowy rysunek} -\subsubsection{Problem do rozwiązania} -\paragraph{Rozwiazanie} -\paragraph{Przydział zespołów do projektów} -\subsection{Zadanie 2.2 Minimalizacja kosztów realizacji projektów} -\paragraph{Model sieciowy rysunek} -\paragraph{Problem do rozwiązania} -\paragraph{Rozwiazanie} -\subsection{Zadanie 2.3 Minimalizacja terminu realizacji puli projektów} -\paragraph{Model programowania liniowego} - - - -\section{Zadanie 3} -\paragraph{Model programowania liniowego} - -\end{document} - diff --git a/NotProgramming/MOM/12glpk.dat b/NotProgramming/MOM/12glpk.dat new file mode 100644 index 00000000..9dd3b201 --- /dev/null +++ b/NotProgramming/MOM/12glpk.dat @@ -0,0 +1,18 @@ +data; + +set BudynkiNaStart := s, A, B, C, D, E, F, G, H; +set Budynki := A, B, C, D, E, F, G, H; +set Elektrownie := F, G, H; + +param p := +s A 10 s B 13 s C 17 s D 0 s E 0 s F 0 s G 0 s H 0 +A A 0 A B 0 A C 0 A D 15 A E 10 A F 0 A G 0 A H 0 +B A 0 B B 0 B C 0 B D 4 B E 9 B F 0 B G 9 B H 0 +C A 0 C B 0 C C 0 C D 20 C E 10 C F 0 C G 0 C H 0 +D A 0 D B 0 D C 0 D D 0 D E 0 D F 10 D G 3 D H 2 +E A 0 E B 0 E C 0 E D 20 E E 0 E F 5 E G 5 E H 5 +F A 0 F B 0 F C 0 F D 0 F E 0 F F 0 F G 0 F H 0 +G A 0 G B 0 G C 0 G D 0 G E 0 G F 0 G G 0 G H 0 +H A 0 H B 0 H C 0 H D 0 H E 0 H F 0 H G 0 H H 0; + +end; \ No newline at end of file diff --git a/NotProgramming/MOM/12glpk.mod b/NotProgramming/MOM/12glpk.mod new file mode 100644 index 00000000..c8f332df --- /dev/null +++ b/NotProgramming/MOM/12glpk.mod @@ -0,0 +1,21 @@ +set BudynkiNaStart; +set Budynki; +set Elektrownie; + +param p{i in BudynkiNaStart, j in Budynki}; + +var f{i in BudynkiNaStart, j in Budynki}, >= 0; + +maximize Q: sum {i in Budynki, e in Elektrownie} f[i,e]; + +subject to + Ogr_1{i in BudynkiNaStart, j in Budynki}: + f[i,j] >= 0; + Ogr_2{i in BudynkiNaStart, j in Budynki}: + f[i,j] <= p[i,j]; + Ogr_3{n in Budynki}: + sum {i in Budynki} f[n,i] <= sum {j in BudynkiNaStart} f[j,n]; + +solve; +display {i in Budynki, j in Budynki: f[i,j] > 0}: f[i,j]; +display: Q; \ No newline at end of file diff --git a/NotProgramming/MOM/1glpk.dat b/NotProgramming/MOM/1glpk.dat index 2af0d71f..9dd3b201 100644 --- a/NotProgramming/MOM/1glpk.dat +++ b/NotProgramming/MOM/1glpk.dat @@ -4,17 +4,6 @@ set BudynkiNaStart := s, A, B, C, D, E, F, G, H; set Budynki := A, B, C, D, E, F, G, H; set Elektrownie := F, G, H; -param c := -s A 0 s B 0 s C 0 s D 0 s E 0 s F 0 s G 0 s H 0 -A A 0 A B 0 A C 0 A D 4 A E 2 A F 0 A G 0 A H 0 -B A 0 B B 0 B C 0 B D 4 B E 3 B F 0 B G 8 B H 0 -C A 0 C B 0 C C 0 C D 2 C E 6 C F 0 C G 0 C H 0 -D A 0 D B 0 D C 0 D D 0 D E 0 D F 3 D G 7 D H 2 -E A 0 E B 0 E C 0 E D 5 E E 0 E F 7 E G 6 E H 3 -F A 0 F B 0 F C 0 F D 0 F E 0 F F 0 F G 0 F H 0 -G A 0 G B 0 G C 0 G D 0 G E 0 G F 0 G G 0 G H 0 -H A 0 H B 0 H C 0 H D 0 H E 0 H F 0 H G 0 H H 0; - param p := s A 10 s B 13 s C 17 s D 0 s E 0 s F 0 s G 0 s H 0 A A 0 A B 0 A C 0 A D 15 A E 10 A F 0 A G 0 A H 0 @@ -26,6 +15,4 @@ F A 0 F B 0 F C 0 F D 0 F E 0 F F 0 F G 0 F H 0 G A 0 G B 0 G C 0 G D 0 G E 0 G F 0 G G 0 G H 0 H A 0 H B 0 H C 0 H D 0 H E 0 H F 0 H G 0 H H 0; -param Z := F 15 G 13 H 7; - end; \ No newline at end of file diff --git a/NotProgramming/MOM/1glpk.mod b/NotProgramming/MOM/1glpk.mod index 5e9270b5..c8f332df 100644 --- a/NotProgramming/MOM/1glpk.mod +++ b/NotProgramming/MOM/1glpk.mod @@ -2,23 +2,20 @@ set BudynkiNaStart; set Budynki; set Elektrownie; -param c{i in BudynkiNaStart, j in Budynki}; param p{i in BudynkiNaStart, j in Budynki}; -param Z{e in Elektrownie}; var f{i in BudynkiNaStart, j in Budynki}, >= 0; -minimize Q: sum {i in Budynki, j in Budynki} c[i,j] * f[i,j]; +maximize Q: sum {i in Budynki, e in Elektrownie} f[i,e]; subject to - Ograniczenie_1{i in BudynkiNaStart, j in Budynki}: + Ogr_1{i in BudynkiNaStart, j in Budynki}: f[i,j] >= 0; - Ograniczenie_2{i in BudynkiNaStart, j in Budynki}: + Ogr_2{i in BudynkiNaStart, j in Budynki}: f[i,j] <= p[i,j]; - Ograniczenie_3{e in Elektrownie}: - sum {n in BudynkiNaStart} f[n,e] >= Z[e]; - Ograniczenie_4{n in Budynki}: + Ogr_3{n in Budynki}: sum {i in Budynki} f[n,i] <= sum {j in BudynkiNaStart} f[j,n]; solve; -display {i in Budynki, j in Budynki: f[i,j] > 0}: f[i,j]; \ No newline at end of file +display {i in Budynki, j in Budynki: f[i,j] > 0}: f[i,j]; +display: Q; \ No newline at end of file diff --git a/NotProgramming/MOM/21glpk.dat b/NotProgramming/MOM/21glpk.dat new file mode 100644 index 00000000..0d4f803b --- /dev/null +++ b/NotProgramming/MOM/21glpk.dat @@ -0,0 +1,19 @@ +data; + +set Wyjscie := t; +set Wezly := 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWezly := s, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set WyjscieWezly := t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWyjscieWezly := s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set Projekty := 1, 2, 3, 4, 5, 6; +set Zespoly := A, B, C, D, E, F; + +param u := +A 1 0 A 2 0 A 3 1 A 4 1 A 5 0 A 6 1 +B 1 1 B 2 1 B 3 0 B 4 0 B 5 1 B 6 0 +C 1 1 C 2 0 C 3 1 C 4 0 C 5 0 C 6 1 +D 1 1 D 2 0 D 3 1 D 4 0 D 5 0 D 6 1 +E 1 1 E 2 1 E 3 0 E 4 0 E 5 1 E 6 0 +F 1 0 F 2 0 F 3 1 F 4 1 F 5 1 F 6 0; + +end; \ No newline at end of file diff --git a/NotProgramming/MOM/21glpk.mod b/NotProgramming/MOM/21glpk.mod new file mode 100644 index 00000000..7b96d220 --- /dev/null +++ b/NotProgramming/MOM/21glpk.mod @@ -0,0 +1,29 @@ +set Wyjscie; +set Wezly; +set StartWezly; +set WyjscieWezly; +set StartWyjscieWezly; +set Projekty; +set Zespoly; + +param u{z in Zespoly, p in Projekty}; + +var f{i in StartWyjscieWezly, j in StartWyjscieWezly}, >= 0; + +maximize Q: sum {p in Projekty, t in Wyjscie} f[p,t]; + + Ograniczeni_jeden{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] >= 0; + Ograniczeni_dwa{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] <= 1; + Ograniczeni_trzy{p in Projekty, z in Zespoly}: + f[z,p] <= u[z,p]; + Ograniczeni_cztery{p in Projekty}: + sum {z in Zespoly} f[z,p] = 1; + Ograniczeni_piec{z in Zespoly}: + sum {p in Projekty} f[z,p] = 1; + Ograniczeni_szesc{n in Wezly}: + sum {i in WyjscieWezly} f[n,i] = sum {j in StartWezly} f[j,n]; + solve; +display {i in Wezly, j in Wezly: f[i,j] > 0}: f[i,j]; +display: Q; diff --git a/NotProgramming/MOM/22glpk.dat b/NotProgramming/MOM/22glpk.dat new file mode 100644 index 00000000..babf5bde --- /dev/null +++ b/NotProgramming/MOM/22glpk.dat @@ -0,0 +1,19 @@ +data; + +set Wyjscie := t; +set Wezly := 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWezly := s, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set WyjscieWezly := t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWyjscieWezly := s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set Projekty := 1, 2, 3, 4, 5, 6; +set Zespoly := A, B, C, D, E, F; + +param k := +A 1 1000 A 2 1000 A 3 2 A 4 10 A 5 1000 A 6 20 +B 1 13 B 2 4 B 3 1000 B 4 1000 B 5 10 B 6 1000 +C 1 1000 C 2 2 C 3 1000 C 4 5 C 5 1000 C 6 6 +D 1 14 D 2 1000 D 3 10 D 4 1000 D 5 1000 D 6 16 +E 1 18 E 2 3 E 3 1000 E 4 1000 E 5 17 E 6 1000 +F 1 1000 F 2 1000 F 3 13 F 4 15 F 5 12 F 6 1000; + +end; \ No newline at end of file diff --git a/NotProgramming/MOM/22glpk.mod b/NotProgramming/MOM/22glpk.mod new file mode 100644 index 00000000..704fb392 --- /dev/null +++ b/NotProgramming/MOM/22glpk.mod @@ -0,0 +1,27 @@ +set Wyjscie; +set Wezly; +set StartWezly; +set WyjscieWezly; +set StartWyjscieWezly; +set Projekty; +set Zespoly; + +param k{z in Zespoly, p in Projekty}; + +var f{i in StartWyjscieWezly, j in StartWyjscieWezly}, >= 0; + +minimize Q: sum {p in Projekty, z in Zespoly} k[z, p] * f[z, p]; + + Ograniczenie_jeden{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] >= 0; + Ograniczenie_dwa{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] <= 1; + Ograniczenie_trzy{p in Projekty}: + sum {z in Zespoly} f[z,p] = 1; + Ograniczenie_cztery{z in Zespoly}: + sum {p in Projekty} f[z,p] = 1; + Ograniczenie_piec{n in Wezly}: + sum {i in WyjscieWezly} f[n,i] = sum {j in StartWezly} f[j,n]; + solve; +display {i in Wezly, j in Wezly: f[i,j] > 0}: f[i,j]; +display: Q; diff --git a/NotProgramming/MOM/23glpk.dat b/NotProgramming/MOM/23glpk.dat new file mode 100644 index 00000000..59750af7 --- /dev/null +++ b/NotProgramming/MOM/23glpk.dat @@ -0,0 +1,19 @@ +data; + +set Wyjscie := t; +set Wezly := 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWezly := s, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set WyjscieWezly := t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWyjscieWezly := s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set Projekty := 1, 2, 3, 4, 5, 6; +set Zespoly := A, B, C, D, E, F; + +param c := +A 1 1000 A 2 1000 A 3 2 A 4 10 A 5 1000 A 6 20 +B 1 13 B 2 4 B 3 1000 B 4 1000 B 5 10 B 6 1000 +C 1 1000 C 2 2 C 3 1000 C 4 5 C 5 1000 C 6 6 +D 1 14 D 2 1000 D 3 10 D 4 1000 D 5 1000 D 6 16 +E 1 18 E 2 3 E 3 1000 E 4 1000 E 5 17 E 6 1000 +F 1 1000 F 2 1000 F 3 13 F 4 15 F 5 12 F 6 1000; + +end; \ No newline at end of file diff --git a/NotProgramming/MOM/23glpk.mod b/NotProgramming/MOM/23glpk.mod new file mode 100644 index 00000000..ae719fa1 --- /dev/null +++ b/NotProgramming/MOM/23glpk.mod @@ -0,0 +1,31 @@ +set Wyjscie; +set Wezly; +set StartWezly; +set WyjscieWezly; +set StartWyjscieWezly; +set Projekty; +set Zespoly; + +param c{z in Zespoly, p in Projekty}; + +var f{i in StartWyjscieWezly, j in StartWyjscieWezly}, >= 0, integer; +var cmax, >= 0; + +minimize Q: cmax; + +subject to + Ograniczenie_jeden{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] >= 0; + Ograniczenie_dwa{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] <= 1; + Ograniczenie_trzy{p in Projekty}: + sum {z in Zespoly} f[z,p] = 1; + Ograniczenie_cztery{z in Zespoly}: + sum {p in Projekty} f[z,p] = 1; + Ograniczenie_piec{n in Wezly}: + sum {i in WyjscieWezly} f[n,i] = sum {j in StartWezly} f[j,n]; + Ograniczenie_szesc{z in Zespoly, p in Projekty}: + c[z,p] * f[z,p] <= cmax; +solve; +display {i in Wezly, j in Wezly: f[i,j] > 0}: f[i,j]; +display: Q; diff --git a/NotProgramming/MOM/flow12.pdf b/NotProgramming/MOM/flow12.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5909ad001815388ca0b18876d55e553dcb1df5d1 GIT binary patch literal 29930 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 literal 0 HcmV?d00001 diff --git a/NotProgramming/MOM/flowchart21 b/NotProgramming/MOM/flowchart21 new file mode 100644 index 00000000..d01bdb12 --- /dev/null +++ b/NotProgramming/MOM/flowchart21 @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/MOM/flowchart21.pdf b/NotProgramming/MOM/flowchart21.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b6bccb577fa7317fe2aadc2eb9a6ed72be9df0e9 GIT binary patch literal 35300 zcma&NbBw1^vo1Pq+qP}nwr$(C-92sFwx{`Po71*!pZWH=`{wTC=H$Goys1=GR#iP& z>z`HYAyX6;r(>e$fF=w2_d!E5F%dEnIv86+^YTJ7$eP((xLPt1GPALn40}}3?UN>3nwcyKR>jKtFxJr9kgf8l`oX9s@Td+W!KB|Rj-3b zn|#-zA5X3;As!^DAf)I55fo$+o^fy#DXEc0T3~dMDA;^QV0Xnq-)^wGaG<%9pqZ;E z5-PZa1Q;3`o>QjKCgGR7nui6}(8uFT?@jMc&(7xcL%oVxd7DbP{BkY)FQ8vwLZBIp zWE36)l^BD+P)!tdl(_4h_w63~AWnby1E1pGW6sf&qz<)zArF2&oHJ-u*>AcXqW|(j z3q0P}iZM4}eY_JD5Zt%=CF1C=w@54rjxd3vMbnHyoB#CO-uCeeIObQ+!3nFb>$;cE zdo37aF6f-q3F`{mXK&9w+;0c*HzF6tfwXcNfG6AN;)!m{V^bpqtI97>iZVLQhK4@- zk-ryYmkuDu5%g8vwn^s6*IrXYzKRTW-4#x+vx^=FyLA$o`51Jz+SoI}-HiQ-M-18v z9jAM32L`|;d@zPnK)}G3LI~=KgGLR%7N@~nSx^V{6N7?*fjZy?rIY)Bp$>p=DRRco zFOLT9?<3>y6pQ}M&i?pz4yt(bV%(x)8E*G|rD3HF-n7Eg&3YcDOwpp_>$_c6=jRKs z=m1@j#-4XA3npnI>?1)Th+#$-;sXTlSU|;vP;{e7fG{CPkoZ5P4i}3lf*tv^B1jgb zU!=X(q$EgDw}Z8o%2F$YNR*!=Zy883xa&m4a$!SdN<;8cB=dNKTfhQCwX%y8{tmRj zLfO&>9Gnog!l;a-Dt8}OZ}a~h@3MJ1fXfV@9_{(5Oz0%LZ{)9hTXy|=!Ec0$CqyGw zBP=D96TyDbnUq1>V^Id%BfX(wRG7n zls|~vxi%_jD>uSFCB*flL06?1+(n8gdQ?k0wCT;iy+*4yaS~oiD^dww$A`9P;=&C6G2FtE zp5C2t;latUGe(BJM{Jv7)g4rfeWfI;esm_c$$o5XkmjzfZHr4AK=o`)pJppe7ubTA zoTOYrL8SFq_$B=6QgT3hnSsMUbFU@oR35DO``7B1I5P(OAiZalZ%k=kgxwr`Ksc!` z*2@rd2gu4UbVfWC$1begXsQylN8+I)&*7h;4q^OoKT02dU9b(Jq_rV~Khm0XxWmfT z^T7*q$K=Kd4&*0c=|XJYbv90IvqMR=#M65dw{&|Og9!r%4RWt8udtYeU=q3rAA<%m z0dV~YUk$^#4fyei8?M<-5u5~BO7{qy-#%g3Nud@I0i*byj_l8S=XekwWA^8Ozc_m? z#uPN6$Tdgvj*LAJr8$Zr%`ObK6d~i5=SfvV2ZJAkNE;onHhKtl4PXL9o2(C_A72BAIYls)XVH%QG7*}CE+s#sVxn<68Q;f2lzN}CgF$I zb7S87AZ&gTU&qm{OFqIRMl6O6SS#@)hRk!22sR-C0x_bXB&w3ho#D7-`3uQh!Fv<@ zX*Y@Z$@=J4_bM1fWxBEQf(RnxU`Je5!A#+`gjN!D#=V;oa0vlcOu5o0iw>b&gT{Mc zPNe>2k#hU33vLT>SqFHjcs|_Q=dVOLIDPQsg?zekz5OWof0FD%zHaILLs-aqGq57zGnW%05_%;atu(j>h9jR&i&vFL9GlcHov@8=onRf{!ruLq3B@#4!j% zJEDA2#1y9~gQ6|L7{f@)WS*fPdt63LoyhEq%)GMSMZHj0p1fYzUxTX2GXAK8gmZV6 zVsC>Kj&xJy0bwW|@%0hiQX!l;_CdT&!2A&uj%tso^ed)T$YVCHb!);0l01EyykW&O zglD3O`$lM$NY~50B0FLRJqAld5rfTZA777LMmevwteH~-XpUrg9T*Yy;YZ4)uk4v{ zz?Ffpca+}kXu@@;1CC_gsn(BHI*x7*5(0{}u|udl+B0637>jcvn=$!5a|)4`LM~2m z`3d@$a+a&Ir9>HYnNZ$%ys16gOjuyA#Z?57dmhH{=@D;+@mVXX~8HP;=$ zd|faaGZBZpR;XJHanLWtbdP%6VcW|t{z@BI!|(?CCtR_yf0`X*Ug2efif-lh`U~7% zgb=#%J(3$8VI|(!+8pZ|aPGNB7gug6fnE&GAZ4Kiu-sAjrl1)9;Q3PU(#t4Pd^p92 z9NOXDpv_5AM5IH<;khUw*eJnVewkvu=i>~I?6>YKIHJ_Ob2ld#HAB2$ zR=yz>eu|5@J_YyF!?jIZqqEc`T2XeHgVYtwa60=o9m zN37Lo`^)`TxM-3|`1{gzVg4D}b$olK-+j(4v=c<6Rd;C}ZZVA6H9-fjf z4iz*u52O@cIs*QMs%yiNPGtX7gA)*NkSerJiWWW^)_)Iu%$BbA=5> zputWP@KQ2(>;~q1e>Ht+`F)taGcWX7;V)lFyKyTgUr9wl-8r#u5;>*}xdf`ONEQh~ znWlS5ELRB`*eO1G&GNMq#Q0n=7S`zq+bNEeDDjyEThn2v_(+2*I4fvJnvx$}|REd5cD?6lO^A5Z@u>8;76NFXgNmDd~8p|w%msWbNJ=wQfwWV8^1 zg~he>L>%`^CYqEZ04mE2Jd)Dqy(}TScvvm3oshq8&4aU&3#PJ_PMYTb#97-sU#DdY zLr>K_;o$VZxhRi^4IG>q-lR?)b%jfzYj9%UzkSUb<=_^;PS zvlXqWHdJI_?ckefH9+yODk%yrGeJ_fuN><~;% z7?TsH@8%d2NZh{e`md*lR;+eQDlrK@4Tvt;=`AEY@kLD^T;&W3QqhD=9{7wQ6)o-q$z9}&#y`dV zVU{2)vAV!KQ5|nxX;%pomTlp!HnPza*C%RVt);4t!;+)u`4JbtTajI*sNpi!;J>b) zwz#k`2Q3WFj^fyYJad@7sfm`eTYnF3@!pH?U`7&O>V}EQr(z?MSj^b8EK`@igiW}r zkg4AZr%-nOq(ZYnSxDAOQmwtnRPT&~PY%qR+N7E`Mob+e$R)JgqC}VOVGHw%^+7j@ z;?~nI@|VKm=mO+Yge9q56zkyu99W=nJmxsmaEX}gqWD4<$%0?eg7%b>=8XFvJP1$o zL#vUorHMd(0Y+LzUdCW_r6oui>!IIQlsq|q%8*JTIkg*S#(B9!vveXLa5p^VQi_wO zDaRMGcorK@WNUQ9*7Qwx7rVq6?Yxi5kOH4vM5B@}jq=cW=KbKD0K=D`z5%64ZNC+S zU`#XL3*r6RZBx-;ksTbvUziba^cn`cH$$Sf3!=BN!?cZBnyX61MiMYul?{}zgwn*C zay3=d8obP9SN24+PouFLDch^%!5fk-nB%6Tx#r%BjV7%S_yS!V3zt3|q^7~??I_lRNP$0S+OHu>rVH~Wa6 zxQa_K4YEj!|3qg0X}l%7fSPdu#ZZ0Y5j$VY&~dawFoE&KWZ=zGqO<2I4w-&(TNB%K z7+vyVGNL7~NM#|xHpOv+;o(|dHDW3|vXmK!`Qob*%@>>#GZM4q95{}$woBEH;SZG+ zHse_;2rcA>Nl@74KIR}7A7w$x6##dmQ)!@WuyO%4d$edi$L^i#1kdc1XqkPdG`=yE zHbcavqtkC8x-=f8L>)c%6N+yQ#G?rRdhWG+f2xayInnbl0?tXRa@Y7PACj zC8LJN_$v$kM0dHVsd6D9r>SF0XDtLn|B4;fmnWMy^8%Jb zS;k9c0$arqsD5Nv>Vzg2XOEL~Z=$IrVLM1X!dOb(22{}7Zk~8S;rx2!mU( z=3lF#fq@fh`&?-Cns$u-DU6P4oUvRcWy!OkqpTKicv-rNt2Y7lqc~w%=MQPNZ^>WT1l8B z0x_N$mvGgtt;&|PQ(0oHS&9=RIuTT#5HtzY+AOIp8x%R=w4ip(BVls*WaIBJNtz^g zBELx&U}5DAJFm5uk~SQ#2CMC0UHsY@(P|q{*TpxrB*)DXNlk8YVs=_$c1K0h&Yv;K zj7&TzJFL!W+NEq~4-5+ED9$m_%U5Di;g`TLM8_c!VPMdtih`&zP|%GsSA*-2ZcwC1 zK`>yrUHBVx$?Wkgotko^ceu4ba{Xl##9WWV'l29jHin$0C9^K9)ha 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 literal 0 HcmV?d00001 diff --git a/NotProgramming/MOM/flowchart22 b/NotProgramming/MOM/flowchart22 new file mode 100644 index 00000000..b3899f4f --- /dev/null +++ b/NotProgramming/MOM/flowchart22 @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/MOM/flowchart22.pdf b/NotProgramming/MOM/flowchart22.pdf new file mode 100644 index 0000000000000000000000000000000000000000..796c27cc46021181dccd740c0a43cfb17ede1003 GIT binary patch literal 37619 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/MOM/report_one.tex b/NotProgramming/MOM/report_one.tex index 4a61c7c2..a6cfa374 100644 --- a/NotProgramming/MOM/report_one.tex +++ b/NotProgramming/MOM/report_one.tex @@ -1,6 +1,7 @@ \documentclass[12pt]{article} \usepackage[polish]{babel} \usepackage{float} +\usepackage{listings} \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{pdfpages} @@ -113,29 +114,691 @@ $f_{ij}$ - przepływ transportu z budynku i do obiektu j \\ \paragraph{Narysowanie modelu} \includepdf[pages=-]{1flow.pdf} -\subsection{Rozwiązanie}Z -\paragraph{Metoda } +\subsection{Rozwiązanie} +\paragraph{Zadanie programowania liniowego} + +\begin{lstlisting}[caption= plik dat] +data; + +set BudynkiNaStart := s, A, B, C, D, E, F, G, H; +set Budynki := A, B, C, D, E, F, G, H; +set Elektrownie := F, G, H; + +param Z := F 15 G 13 H 7; + +param p := +s A 10 s B 13 s C 17 s D 0 s E 0 s F 0 s G 0 s H 0 +A A 0 A B 0 A C 0 A D 15 A E 10 A F 0 A G 0 A H 0 +B A 0 B B 0 B C 0 B D 4 B E 9 B F 0 B G 9 B H 0 +C A 0 C B 0 C C 0 C D 20 C E 10 C F 0 C G 0 C H 0 +D A 0 D B 0 D C 0 D D 0 D E 0 D F 10 D G 3 D H 2 +E A 0 E B 0 E C 0 E D 20 E E 0 E F 5 E G 5 E H 5 +F A 0 F B 0 F C 0 F D 0 F E 0 F F 0 F G 0 F H 0 +G A 0 G B 0 G C 0 G D 0 G E 0 G F 0 G G 0 G H 0 +H A 0 H B 0 H C 0 H D 0 H E 0 H F 0 H G 0 H H 0; + +param c := +s A 0 s B 0 s C 0 s D 0 s E 0 s F 0 s G 0 s H 0 +A A 0 A B 0 A C 0 A D 4 A E 2 A F 0 A G 0 A H 0 +B A 0 B B 0 B C 0 B D 4 B E 3 B F 0 B G 8 B H 0 +C A 0 C B 0 C C 0 C D 2 C E 6 C F 0 C G 0 C H 0 +D A 0 D B 0 D C 0 D D 0 D E 0 D F 3 D G 7 D H 2 +E A 0 E B 0 E C 0 E D 5 E E 0 E F 7 E G 6 E H 3 +F A 0 F B 0 F C 0 F D 0 F E 0 F F 0 F G 0 F H 0 +G A 0 G B 0 G C 0 G D 0 G E 0 G F 0 G G 0 G H 0 +H A 0 H B 0 H C 0 H D 0 H E 0 H F 0 H G 0 H H 0; + +end; +\end{lstlisting} +\begin{lstlisting}[caption= plik mod] +set BudynkiNaStart; +set Budynki; +set Elektrownie; + +param Z{e in Elektrownie}; +param p{i in BudynkiNaStart, j in Budynki}; +param c{i in BudynkiNaStart, j in Budynki}; + +var f{i in BudynkiNaStart, j in Budynki}, >= 0; + +minimize Q: sum {i in Budynki, j in Budynki} c[i,j] * f[i,j]; + +subject to + Ograniczenie_jeden{i in BudynkiNaStart, j in Budynki}: + f[i,j] >= 0; + Ograniczenie_dwa{i in BudynkiNaStart, j in Budynki}: + f[i,j] <= p[i,j]; + Ograniczenie_trzy{e in Elektrownie}: + sum {n in BudynkiNaStart} f[n,e] >= Z[e]; + Ograniczenie_cztery{n in Budynki}: + sum {i in Budynki} f[n,i] <= sum {j in BudynkiNaStart} f[j,n]; + +solve; +display {i in Budynki, j in Budynki: f[i,j] > 0}: f[i,j]; +display: Q; +\end{lstlisting} +\paragraph{Wynik} +\begin{lstlisting}[caption=Wynik z glpk] +f[A,E].val = 10 +f[B,E].val = 4 +f[B,G].val = 9 +f[C,D].val = 12 +f[D,F].val = 10 +f[D,H].val = 2 +f[E,F].val = 5 +f[E,G].val = 4 +f[E,H].val = 5 +Q.val = 236 +\end{lstlisting} + +\begin{figure}[htb] +\caption{Plan dostaw węgla} +\begin{center} +\begin{tabular}{ | c | c | c | c | c | c | } +\hline + & D & E & F & G & H \\ + \hline + A & 10 & - & - & - & -\\ + \hline + B & 0 & 4 & - & 9 & - \\ + \hline + C & 12 & - & - & - & - \\ + \hline + D & - & - & 10 & - & 2 \\ + \hline + E & - & - & 5 & 4 & 5 \\ + \hline +\end{tabular} +\end{center} +\end{figure} + +\[ Q = 236 \] + +\subsection{Wąskie gardło} +Następny szukamy przekroju o jak najmniejszej przepustowości \\ +W tym celu usunęliśmy parametry dotyczące średniego zużycia dobowego oraz kosztów transportu i zostawiliśmy wyłącznie przepustowość +\begin{lstlisting}[caption= plik dat] +data; + +set BudynkiNaStart := s, A, B, C, D, E, F, G, H; +set Budynki := A, B, C, D, E, F, G, H; +set Elektrownie := F, G, H; + +param p := +s A 10 s B 13 s C 17 s D 0 s E 0 s F 0 s G 0 s H 0 +A A 0 A B 0 A C 0 A D 15 A E 10 A F 0 A G 0 A H 0 +B A 0 B B 0 B C 0 B D 4 B E 9 B F 0 B G 9 B H 0 +C A 0 C B 0 C C 0 C D 20 C E 10 C F 0 C G 0 C H 0 +D A 0 D B 0 D C 0 D D 0 D E 0 D F 10 D G 3 D H 2 +E A 0 E B 0 E C 0 E D 20 E E 0 E F 5 E G 5 E H 5 +F A 0 F B 0 F C 0 F D 0 F E 0 F F 0 F G 0 F H 0 +G A 0 G B 0 G C 0 G D 0 G E 0 G F 0 G G 0 G H 0 +H A 0 H B 0 H C 0 H D 0 H E 0 H F 0 H G 0 H H 0; + +end; +\end{lstlisting} +\begin{lstlisting}[caption= plik mod] +set BudynkiNaStart; +set Budynki; +set Elektrownie; + +param p{i in BudynkiNaStart, j in Budynki}; + +var f{i in BudynkiNaStart, j in Budynki}, >= 0; + +maximize Q: sum {i in Budynki, e in Elektrownie} f[i,e]; + +subject to + Ograniczenie_jeden{i in BudynkiNaStart, j in Budynki}: + f[i,j] >= 0; + Ograniczenie_dwa{i in BudynkiNaStart, j in Budynki}: + f[i,j] <= p[i,j]; + Ograniczenie_trzy{n in Budynki}: + sum {i in Budynki} f[n,i] <= sum {j in BudynkiNaStart} f[j,n]; + +solve; +display {i in Budynki, j in Budynki: f[i,j] > 0}: f[i,j]; +display: Q; +\end{lstlisting} + +\paragraph{Wyniki} +\begin{lstlisting}[caption=Wynik z glpk] +f[A,D].val = 9 +f[A,E].val = 1 +f[B,E].val = 4 +f[B,G].val = 9 +f[C,D].val = 6 +f[C,E].val = 10 +f[D,F].val = 10 +f[D,G].val = 3 +f[D,H].val = 2 +f[E,F].val = 5 +f[E,G].val = 5 +f[E,H].val = 5 +Q.val = 39 +\end{lstlisting} + +\begin{figure}[htb] +\caption{Wyniki poszukiwań wąskiego gardła} +\begin{center} +\begin{tabular}{ | c | c | c | c | c | c | } +\hline + & D & E & F & G & H \\ + \hline + A & 9 & 1 & - & - & -\\ + \hline + B & - & 4 & - & 9 & - \\ + \hline + C & 6 & 10 & - & - & - \\ + \hline + D & - & - & 10 & 3 & 2 \\ + \hline + E & - & - & 5 & 5 & 5 \\ + \hline +\end{tabular} +\end{center} +\end{figure} + +\[ Q = 39 \] + +\includepdf[pages=-]{flow12.pdf} + +\paragraph{Wnioski} +Następujące przepływy są zbyt niskie w porównaniu do przepustowości: +\[ p_{AD} = 9 \le 15 \] +\[ p_{AE} = 1 \le 10 \] +\[ p_{BE} = 4 \le 9 \] +\[ p_{CD} = 6 \le 20 \] +Zwiększenie przepływów do poziomu maksymalnej przepustowości zwiększyło by wydajność sieci -\subsection{Zadanie programowania liniowego} \section{Zadanie 2. Zadanie przydziału} \subsection{Zadanie 2.1 Planowanie realizacji portfela przy ograniczonych kompetencjach} -\paragraph{Model sieciowy rysunek} +\begin{figure}[htb] +\caption{Kompetencje zespołów} +\begin{center} +\begin{tabular}{ | c | c | c | c | c | c | c | } +\hline + & A & B & C & D & E & F \\ + \hline + 1 & - & X & - & X & X & - \\ + \hline + 2 & - & X & X & - & X & - \\ + \hline + 3 & X & - & - & X & - & X \\ + \hline + 4 & X & - & X & - & - & X \\ + \hline + 5 & - & X & - & - & X & X \\ + \hline + 6 & X & - & X & X & - & - \\ + \hline +\end{tabular} +\end{center} +\end{figure} \subsubsection{Problem do rozwiązania} -\paragraph{Rozwiazanie} -\paragraph{Przydział zespołów do projektów} -\subsection{Zadanie 2.2 Minimalizacja kosztów realizacji projektów} +\paragraph{Sformułowanie} +Matematyczne sformułowanie zadania: +\begin{enumerate} +\item Parametry \\ +s - źródło \\ +w - wyjście \\ +N - węzły (N = {s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F}) +P - projekty (P = {1, 2, 3, 4, 5, 6} $\subseteq$ N) +Z - zespoły (Z = {A, B, C, D, E, F} $\subseteq$ N) +$u_{ij}$ - przepustowość pomiędzy węzłem i a węzłem j +\item Zmienne decyzyjne +$f_{ij}$ - przepływ między węzłem i a węzłem j +\item Funkcja celu +\begin{align*} + Q &= \max\left(\sum_{p \in P} f_{pt} \right) \\ + &= \max(f_{1t} + f_{2t} + f_{3t} + f_{4t} + f{5t} + f_{6t}) +\end{align*} + +\item Ograniczenia +\setcounter{equation}{0} +\begin{equation} +0 \leq f_{ij} \leq 1, (i, j) \in N +\end{equation} +\begin{equation} +0 \leq f_{zp} \leq u_{zp}, z \in Z, p \in P +\end{equation} +\begin{equation} +f_{si} = 0, i \in \{ s, t, 1, 2, 3, 4, 5, 6 \} +\end{equation} +\begin{equation} +f_{is} = 0, i \in N +\end{equation} +\begin{equation} +f_{ti} = 0, i \in N +\end{equation} +\begin{equation} +f_{it} = 0, i \in \{s, t, A, B, C, D, E, F\} +\end{equation} +\begin{equation} +\sum_{z \in Z} f_{zp} = 1, p \in P = \{ 1, 2, 3, 4, 5, 6 \} +\end{equation} + +\begin{equation} +\sum_{p \in P} f_{zp} = 1, z \in Z = \{ A, B, C, D, E, F \} +\end{equation} + +\begin{equation} +\sum_{i \in N \backslash \{s\}} f_{ni} = \sum_{j \in N \backslash \{t\}} f_{jn}, n \in N \backslash \{ s, t \} +\end{equation} + + + +\end{enumerate} + \paragraph{Model sieciowy rysunek} -\paragraph{Problem do rozwiązania} +\includepdf[pages=-]{flowchart21.pdf} \paragraph{Rozwiazanie} +\begin{lstlisting}[caption= plik dat] +data; + +set Wyjscie := t; +set Wezly := 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWezly := s, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set WyjscieWezly := t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWyjscieWezly := s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set Projekty := 1, 2, 3, 4, 5, 6; +set Zespoly := A, B, C, D, E, F; + +param u := +A 1 0 A 2 0 A 3 1 A 4 1 A 5 0 A 6 1 +B 1 1 B 2 1 B 3 0 B 4 0 B 5 1 B 6 0 +C 1 1 C 2 0 C 3 1 C 4 0 C 5 0 C 6 1 +D 1 1 D 2 0 D 3 1 D 4 0 D 5 0 D 6 1 +E 1 1 E 2 1 E 3 0 E 4 0 E 5 1 E 6 0 +F 1 0 F 2 0 F 3 1 F 4 1 F 5 1 F 6 0; + +end; +\end{lstlisting} +\begin{lstlisting}[caption= plik mod] +set Wyjscie; +set Wezly; +set StartWezly; +set WyjscieWezly; +set StartWyjscieWezly; +set Projekty; +set Zespoly; + +param u{z in Zespoly, p in Projekty}; + +var f{i in StartWyjscieWezly, j in StartWyjscieWezly}, >= 0; + +maximize Q: sum {p in Projekty, t in Wyjscie} f[p,t]; + + Ograniczeni_jeden{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] >= 0; + Ograniczeni_dwa{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] <= 1; + Ograniczeni_trzy{p in Projekty, z in Zespoly}: + f[z,p] <= u[z,p]; + Ograniczeni_cztery{p in Projekty}: + sum {z in Zespoly} f[z,p] = 1; + Ograniczeni_piec{z in Zespoly}: + sum {p in Projekty} f[z,p] = 1; + Ograniczeni_szesc{n in Wezly}: + sum {i in WyjscieWezly} f[n,i] = sum {j in StartWezly} f[j,n]; + solve; +display {i in Wezly, j in Wezly: f[i,j] > 0}: f[i,j]; +display: Q; + + +\end{lstlisting} +\paragraph{Przydział zespołów do projektów} +\begin{lstlisting}[caption=wynik z glpk] +f[A,6].val = 1 +f[B,5].val = 1 +f[C,1].val = 1 +f[D,3].val = 1 +f[E,2].val = 1 +f[F,4].val = 1 +Q.val = 6 +\end{lstlisting} +Wyniki: \\ +Projekt numer \textbf{1} zostanie przydzielony zespołowi \textbf{C} \\ +Projekt numer \textbf{2} zostanie przydzielony zespołowi \textbf{E} \\ +Projekt numer \textbf{3} zostanie przydzielony zespołowi \textbf{D} \\ +Projekt numer \textbf{4} zostanie przydzielony zespołowi \textbf{F} \\ +Projekt numer \textbf{5} zostanie przydzielony zespołowi \textbf{B} \\ +Projekt numer \textbf{6} zostanie przydzielony zespołowi \textbf{A} \\ +\subsection{Zadanie 2.2 Minimalizacja kosztów realizacji projektów} +\paragraph{Problem do rozwiązania} +\begin{figure}[htb] +\caption{Koszty wynajmu} +\begin{center} +\begin{tabular}{ | c | c | c | c | c | c | c | } +\hline + & A & B & C & D & E & F \\ + \hline + 1 & - & 13 & - & 14 & 18 & - \\ + \hline + 2 & - & 4 & 2 & - & 3 & - \\ + \hline + 3 & 2 & - & - & 10 & - & 13 \\ + \hline + 4 & 10 & - & 5 & - & - & 15 \\ + \hline + 5 & - & 10 & - & - & 17 & 12 \\ + \hline + 6 & 20 & - & 6 & 16 & - & - \\ + \hline +\end{tabular} +\end{center} +\end{figure} + +\begin{enumerate} +\item Parametry \\ +s - źródło \\ +w - wyjście \\ +N - węzły (N = {s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F}) +P - projekty (P = {1, 2, 3, 4, 5, 6} $\subseteq$ N) +Z - zespoły (Z = {A, B, C, D, E, F} $\subseteq$ N) +$k_{zp}$ - koszty przyporządkowania zespołu z do projektu p + +\item Zmienne decyzyjne: +$f_{ij}$ - przeływ pomiędzy węzłem i oraz węzłem j +\item Funkcja celu +\begin{align*} + Q &= \min \left(\sum_{z \in Z, p \in P} c_{zp}f_{zp} \right) \\ + &= \min \big( 13f_{B1} + 14f_{D1} + 18f_{E1} + 4f_{B2} + 2f_{C2} + 3f_{E2} \\ + &\quad + 2f_{A3} + 10f_{D3} + 13f_{F3} + 10f_{A4} + 5f_{C4} + 15f_{F4} \\ + &\quad + 10f_{B5} + 17f_{E5} + 12f_{F5} + 20f_{A6} + 6f_{C6} + 16f_{D6} \big) +\end{align*} + + +\item Ograniczenia +\setcounter{equation}{0} +\begin{equation} +0 \leq f_{ij} \leq 1, (i, j) \in N +\end{equation} +\begin{equation} +f_{si} = 0, i \in \{ s, t, 1, 2, 3, 4, 5, 6 \} +\end{equation} +\begin{equation} +f_{is} = 0, i \in N +\end{equation} +\begin{equation} +f_{ti} = 0, i \in N +\end{equation} +\begin{equation} +f_{it} = 0, i \in \{s, t, A, B, C, D, E, F\} +\end{equation} +\begin{equation} +\sum_{z \in Z} f_{zp} = 1, p \in P = \{ 1, 2, 3, 4, 5, 6 \} +\end{equation} +\begin{equation} +\sum_{p \in P} f_{zp} = 1, z \in Z = \{ A, B, C, D, E, F \} +\end{equation} +\begin{equation} +\sum_{i \in N \backslash \{s\}} f_{ni} = \sum_{j \in N \backslash \{t\}} f_{jn}, n \in N \backslash \{ s, t \} +\end{equation} + +\end{enumerate} +\paragraph{Model sieciowy rysunek} +\includepdf[pages=-]{flowchart22.pdf} +\paragraph{Rozwiazanie} +\begin{lstlisting}[caption= plik dat] +data; + +set Wyjscie := t; +set Wezly := 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWezly := s, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set WyjscieWezly := t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWyjscieWezly := s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set Projekty := 1, 2, 3, 4, 5, 6; +set Zespoly := A, B, C, D, E, F; + +param k := +A 1 1000 A 2 1000 A 3 2 A 4 10 A 5 1000 A 6 20 +B 1 13 B 2 4 B 3 1000 B 4 1000 B 5 10 B 6 1000 +C 1 1000 C 2 2 C 3 1000 C 4 5 C 5 1000 C 6 6 +D 1 14 D 2 1000 D 3 10 D 4 1000 D 5 1000 D 6 16 +E 1 18 E 2 3 E 3 1000 E 4 1000 E 5 17 E 6 1000 +F 1 1000 F 2 1000 F 3 13 F 4 15 F 5 12 F 6 1000; + +end; +\end{lstlisting} +\begin{lstlisting}[caption= plik mod] +set Wyjscie; +set Wezly; +set StartWezly; +set WyjscieWezly; +set StartWyjscieWezly; +set Projekty; +set Zespoly; + +param k{z in Zespoly, p in Projekty}; + +var f{i in StartWyjscieWezly, j in StartWyjscieWezly}, >= 0; + +minimize Q: sum {p in Projekty, z in Zespoly} k[z, p] * f[z, p]; + + Ograniczenie_jeden{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] >= 0; + Ograniczenie_dwa{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] <= 1; + Ograniczenie_trzy{p in Projekty}: + sum {z in Zespoly} f[z,p] = 1; + Ograniczenie_cztery{z in Zespoly}: + sum {p in Projekty} f[z,p] = 1; + Ograniczenie_piec{n in Wezly}: + sum {i in WyjscieWezly} f[n,i] = sum {j in StartWezly} f[j,n]; + solve; +display {i in Wezly, j in Wezly: f[i,j] > 0}: f[i,j]; +display: Q; + + + +\end{lstlisting} +\paragraph{Przydział zespołów do projektów} +\begin{lstlisting}[caption=wynik z glpk] +f[A,3].val = 1 +f[B,5].val = 1 +f[C,6].val = 1 +f[D,1].val = 1 +f[E,2].val = 1 +f[F,4].val = 1 +Q.val = 50 +\end{lstlisting} +Wyniki: \\ +Projekt numer \textbf{1} zostanie przydzielony zespołowi \textbf{D} \\ +Projekt numer \textbf{2} zostanie przydzielony zespołowi \textbf{E} \\ +Projekt numer \textbf{3} zostanie przydzielony zespołowi \textbf{A} \\ +Projekt numer \textbf{4} zostanie przydzielony zespołowi \textbf{F} \\ +Projekt numer \textbf{5} zostanie przydzielony zespołowi \textbf{B} \\ +Projekt numer \textbf{6} zostanie przydzielony zespołowi \textbf{C} \\ \subsection{Zadanie 2.3 Minimalizacja terminu realizacji puli projektów} +\begin{figure}[htb] +\caption{Czas realizacji projektów} +\begin{center} +\begin{tabular}{ | c | c | c | c | c | c | c | } +\hline + & A & B & C & D & E & F \\ + \hline + 1 & - & 13 & - & 14 & 18 & - \\ + \hline + 2 & - & 4 & 2 & - & 3 & - \\ + \hline + 3 & 2 & - & - & 10 & - & 13 \\ + \hline + 4 & 10 & - & 5 & - & - & 15 \\ + \hline + 5 & - & 10 & - & - & 17 & 12 \\ + \hline + 6 & 20 & - & 6 & 16 & - & - \\ + \hline +\end{tabular} +\end{center} +\end{figure} + +\begin{enumerate} +\item Parametry \\ +s - źródło \\ +w - wyjście \\ +N - węzły (N = {s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F}) +P - projekty (P = {1, 2, 3, 4, 5, 6} $\subseteq$ N) +Z - zespoły (Z = {A, B, C, D, E, F} $\subseteq$ N) +$t_{zp}$ - czas realizacji projektu p przez zespół z [w miesiącach] + +\item Zmienne decyzyjne: +$f_{ij}$ - przeływ pomiędzy węzłem i oraz węzłem j +\item Funkcja celu +\begin{align*} + Q &= \min \left( \max_{z \in Z, p \in P} c_{zp} f_{zp} \right) \\ + &= \min \big\{13f_{B1}, 14f_{D1}, 18f_{E1}, 4f_{B2}, 2f_{C2}, 3f_{E2}, \\ + &\quad 2f_{A3}, 10f_{D3},13f_{F3}, 10f_{A4}, 5f_{C4}, 15f_{F4} \\ + &\quad 10f_{B5}, 17f_{E5}, 12f_{F5}, 20f_{A6}, 6f_{C6}, 16f_{D6} \big\} +\end{align*} + + +\item Ograniczenia +\setcounter{equation}{0} +\begin{equation} +0 \leq f_{ij} \leq 1, \; (i, j) \in N +\end{equation} +\begin{equation} +f_{si} = 0, \; i \in \{ s, t, 1, 2, 3, 4, 5, 6 \} +\end{equation} +\begin{equation} +f_{is} = 0, \; i \in N +\end{equation} +\begin{equation} +f_{ti} = 0, \; i \in N +\end{equation} +\begin{equation} +f_{it} = 0, \; i \in \{s, t, A, B, C, D, E, F\} +\end{equation} +\begin{equation} +\sum_{z \in Z} f_{zp} = 1, \; p \in P = \{ 1, 2, 3, 4, 5, 6 \} +\end{equation} +\begin{equation} +\sum_{p \in P} f_{zp} = 1, \; z \in Z = \{ A, B, C, D, E, F \} +\end{equation} +\begin{equation} +\sum_{i \in N \backslash \{s\}} f_{ni} = \sum_{j \in N \backslash \{t\}} f_{jn}, \; n \in N \backslash \{ s, t \} +\end{equation} + +\end{enumerate} +\paragraph{Model sieciowy rysunek} +\includepdf[pages=-]{flowchart22.pdf} \paragraph{Model programowania liniowego} +\begin{lstlisting}[caption= plik dat] +data; + +set Wyjscie := t; +set Wezly := 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWezly := s, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set WyjscieWezly := t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set StartWyjscieWezly := s, t, 1, 2, 3, 4, 5, 6, A, B, C, D, E, F; +set Projekty := 1, 2, 3, 4, 5, 6; +set Zespoly := A, B, C, D, E, F; + +param c := +A 1 1000 A 2 1000 A 3 2 A 4 10 A 5 1000 A 6 20 +B 1 13 B 2 4 B 3 1000 B 4 1000 B 5 10 B 6 1000 +C 1 1000 C 2 2 C 3 1000 C 4 5 C 5 1000 C 6 6 +D 1 14 D 2 1000 D 3 10 D 4 1000 D 5 1000 D 6 16 +E 1 18 E 2 3 E 3 1000 E 4 1000 E 5 17 E 6 1000 +F 1 1000 F 2 1000 F 3 13 F 4 15 F 5 12 F 6 1000; + +end; +\end{lstlisting} +\begin{lstlisting}[caption= plik mod] +set Wyjscie; +set Wezly; +set StartWezly; +set WyjscieWezly; +set StartWyjscieWezly; +set Projekty; +set Zespoly; + +param c{z in Zespoly, p in Projekty}; + +var f{i in StartWyjscieWezly, j in StartWyjscieWezly}, >= 0, integer; +var cmax, >= 0; + +minimize Q: cmax; + +subject to + Ograniczenie_jeden{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] >= 0; + Ograniczenie_dwa{i in StartWyjscieWezly, j in StartWyjscieWezly}: + f[i,j] <= 1; + Ograniczenie_trzy{p in Projekty}: + sum {z in Zespoly} f[z,p] = 1; + Ograniczenie_cztery{z in Zespoly}: + sum {p in Projekty} f[z,p] = 1; + Ograniczenie_piec{n in Wezly}: + sum {i in WyjscieWezly} f[n,i] = sum {j in StartWezly} f[j,n]; + Ograniczenie_szesc{z in Zespoly, p in Projekty}: + c[z,p] * f[z,p] <= cmax; +solve; +display {i in Wezly, j in Wezly: f[i,j] > 0}: f[i,j]; +display: Q; +\end{lstlisting} - - +\begin{lstlisting}[caption=wynik z glpk] +f[A,4].val = 1 +f[B,1].val = 1 +f[C,6].val = 1 +f[D,3].val = 1 +f[E,2].val = 1 +f[F,5].val = 1 +Q.val = 13 +\end{lstlisting} +Wyniki: \\ +Projekt numer \textbf{1} zostanie przydzielony zespołowi \textbf{B} \\ +Projekt numer \textbf{2} zostanie przydzielony zespołowi \textbf{E} \\ +Projekt numer \textbf{3} zostanie przydzielony zespołowi \textbf{D} \\ +Projekt numer \textbf{4} zostanie przydzielony zespołowi \textbf{A} \\ +Projekt numer \textbf{5} zostanie przydzielony zespołowi \textbf{F} \\ +Projekt numer \textbf{6} zostanie przydzielony zespołowi \textbf{C} \\ \section{Zadanie 3} \paragraph{Model programowania liniowego} +\begin{enumerate} +\item Parametry \\ +m - liczba różnych zasobów, i $\in$ N \\ +n - liczba różnych produktów, j $\in$ N \\ +$c_{i}^{max}$ - Maksymalna przepustowość dla zasobu i \\ +$A_{ij}$ - Użycie zasobu i przez produkt j \\ +$q_j$ - Limit produkcji dla produktu j, po którym zmniejsza się przychód na jednostce \\ +$p_j$ - Normalny przychód na pojedyńczej sztuce produktu j \\ +$p_j^{disc}$ - Pomniejszony przychód na sztuce produktu j +\item Zmienne decyzyjne +$x_j$ - Wolumin produkcji produktu j +\item Zmienne pomocnicze +$r_j(u)$ - Funkcja wyliczająca przychód dla produktu j bazując na poziomie produkcji u \\ +$c_i$ - Całkowite zużycie zasobu typu i + +\item Funkcja celu +\[ \max Z = \sum_{j=1}^n r_j u_j \] +\[ r_j(u) = \{ \] +\[ p_{j} u \qquad \qquad \qquad \qquad u <= q_j \] +\[ p_j q_j + p_{j}^{disc}(u-q_j), \qquad u => q_j \] +\[ \} \] + +\item Ograniczenia +\setcounter{equation}{0} +Całkowite zużycie zasobów nie może przekraczać dostępnośli dla żadnego zasobu +\begin{equation} +\sum_{j=1}^n A_{ij} \cdot x_j \leq c_i^{max}, \qquad i \in N +\end{equation} +Produkcja każdego produktu j, jest powiżana z właściwym $u_j$ +\begin{equation} +u_j = x_j, \qquad j \in N +\end{equation} +Wolumin produkcji nie może być mniejszy od zera +\begin{equation} +x_j \geq 0, \qquad j \in N +\end{equation} + + +\end{enumerate} \end{document}