\documentclass[12pt]{article}
\usepackage[polish]{babel}
\usepackage{float}
\usepackage{listings}
\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}
\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



\section{Zadanie 2. Zadanie przydziału}
\subsection{Zadanie 2.1 Planowanie realizacji portfela przy ograniczonych kompetencjach}
\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{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}
\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}

