feat: add wdwr project
@ -3,7 +3,9 @@
|
||||
\usepackage{graphicx}
|
||||
\usepackage{tikz}
|
||||
\usepackage{svg}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[polish]{babel}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\graphicspath{ {./images/} }
|
||||
\usetheme{Warsaw}
|
||||
|
||||
@ -50,7 +52,7 @@
|
||||
\tableofcontents
|
||||
\end{frame}
|
||||
|
||||
\section{Definicje}
|
||||
\section{Teoria}
|
||||
\begin{frame}
|
||||
\frametitle{Gra komputerowa}
|
||||
\large Aplikacja dostępna na platformie "Steam" oznaczona typem "Game"
|
||||
@ -298,7 +300,8 @@
|
||||
\item Intuicyjność
|
||||
\item Materiały
|
||||
\item Zasoby (Assety)
|
||||
\item Dostępne funkcje
|
||||
\item Dostępne funkcje}
|
||||
\item ChatGPT
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
4
NotProgramming/SDM/presentations/my_thesis/test.txt
Normal file
@ -0,0 +1,4 @@
|
||||
krotka (!) teoria
|
||||
jaki jest cel
|
||||
co zostalo zrobione (NAJWAZNIEJSZE)
|
||||
czy sie udalo
|
||||
BIN
NotProgramming/SDM2/presentations/my_thesis/images/GameMaker.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 71 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/images/RenPy.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/images/bad_fps.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 17 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/images/fps_pick.png
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/images/godot.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 210 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 390 KiB |
|
After Width: | Height: | Size: 606 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/images/unity.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 148 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/images/unreal.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 408 KiB |
|
After Width: | Height: | Size: 28 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/main.pdf
Normal file
657
NotProgramming/SDM2/presentations/my_thesis/main.tex
Normal file
@ -0,0 +1,657 @@
|
||||
\documentclass{beamer}
|
||||
\usepackage[fontsize=20pt]{fontsize}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{tikz}
|
||||
\usepackage{svg}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[polish]{babel}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\graphicspath{ {./images/} }
|
||||
\usetheme{Warsaw}
|
||||
|
||||
%Information to be included in the title page:
|
||||
|
||||
% Custom title page layout adjustments
|
||||
\title{\large Porównanie wydajności i możliwości współczesnych silników do gier komputerowych}
|
||||
\author{Krzysztof Rudnicki}
|
||||
\institute{
|
||||
\textbf{Promotor} \\
|
||||
dr inż. Michał Chwesiuk
|
||||
}
|
||||
\date{\scriptsize \today} % Adjust the font size here
|
||||
|
||||
|
||||
\setbeamertemplate{footline}[frame number]{}
|
||||
\beamertemplatenavigationsymbolsempty
|
||||
\setbeamertemplate{headline}{}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}
|
||||
\vspace{-0.5cm} % Adjust vertical space above title
|
||||
\maketitle
|
||||
% Alternatively, use a completely custom layout:
|
||||
%\begin{center}
|
||||
% {\Large\inserttitle\par}
|
||||
% \vskip1em
|
||||
% {\insertauthor\par}
|
||||
% \vskip1em
|
||||
% {\insertinstitute\par}
|
||||
% \vskip1em
|
||||
% {\insertdate\par}
|
||||
%\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Plan prezentacji}
|
||||
\tableofcontents
|
||||
\end{frame}
|
||||
|
||||
\section{Teoria}
|
||||
\begin{frame}
|
||||
\frametitle{Gra komputerowa}
|
||||
\large Aplikacja dostępna na platformie "Steam" oznaczona typem "Game"
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Silnik do gier}
|
||||
\large Oprogramowanie zaprojektowane i stworzone do kreacji gier komputerowych
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nowoczesne}
|
||||
\large Ponad 1000 gier w tej dekadzie na platformie "Steam"
|
||||
\end{frame}
|
||||
|
||||
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_main.png}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_filter.drawio.pdf}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wybrane silniki - start}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\paperwidth, height=0.8\paperheight]{usedEngines.pdf}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wybrane silniki}
|
||||
\begin{itemize}
|
||||
\item Wyeliminowanie nie generycznych - Ren'Py, RPGMaker
|
||||
\item Wybór najpopularniejszych - Unity, Unreal
|
||||
% Prawie 25k i ponad 7.5k
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wydajność silnika}
|
||||
\begin{itemize}
|
||||
\item Klatki na sekundę (FPS)
|
||||
\item Zużycie CPU, GPU, RAM i VRAM
|
||||
\item Liczba draw calls
|
||||
\item Czas ładowania assetów
|
||||
\item Czas odpowiedzi na interakcję gracza
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Możliwości Silnika}
|
||||
\begin{itemize}
|
||||
\item Renderowanie grafiki
|
||||
% Ray tracing, HDR lighting, dynamic shadows, particle systems, animacja
|
||||
\item Silnik Fizyczny
|
||||
\item Multiplatformowość (VR)
|
||||
% Linux, Windows, MacOS, Android, IOs, Xbox, PlayStation, Nintendo, VR
|
||||
\item Skryptowanie logiki gier (AI)
|
||||
\item Gry online
|
||||
\item Sklepy z assetami
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
\section{Narzędzia}
|
||||
\frametitle{Unity Profiler}
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{unity_profiler.png}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\frametitle{Unreal Profiler}
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{unreal_profiler.jpg}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\frametitle{Nvidia nsight}
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{nvida_nsighty.jpg}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Analiza FPS}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{fps_overview.png}
|
||||
% Ile klatek pokazaliśmy na ile
|
||||
% ile trwała średnio klatka
|
||||
% Ile trwała najkrótsza klatka
|
||||
% Ile trwała najdłuższa klatka
|
||||
% Przeciętne klatki na sekundę dla pokazanego wycinka
|
||||
% Tyle lub mniej czasu trwało 99% klatek
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Analiza FPS}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{stutter_row.png}
|
||||
% Wykrywanie "zawieszek"
|
||||
% Wykrywamy klatki których długość
|
||||
% jest znacznie dłuższa od długości mediany pobliskich 19 klatek
|
||||
% zawieszka musi być dłuższa niż 4 milisekundy
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Analiza FPS}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{dx12_frame_health.png}
|
||||
% Możemy sprawdzić jaka klatka miała zawieszkę
|
||||
% I jaka metoda w api tę zawieszkę spowodowała
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Zużycie VRAM}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{memory_utilization.png}
|
||||
% Zielony -> ile pamięci mamy dostępnej
|
||||
% Pomarańczowy -> ile pamięci zużyliśmy
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Zużycie VRAM}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{memory_utilization_gpu_vram.png}
|
||||
% VidMm Device Suspension -> okresy kiedy przetransferowano
|
||||
% Jeden duży zasób pamięci
|
||||
% Demoted Memory -> w GPU mamy local memory (szybsze) i global memory
|
||||
% (wolniejsze) to może nam mówić o "wyciekach" pamięci
|
||||
% źle zooptymalizowanej pamięci itd.
|
||||
% Allokacja pamięci -> zielone aplikacja, szare -> system
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Zużycie VRAM}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{memory_utilization_resource_migrations.png}
|
||||
% W kolejności co najwięcej zużyło zasobów
|
||||
% Konkretnie ile i kiedy
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Zużycie VRAM}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{memory_utilization_memory_transfer.png}
|
||||
% W kolejności co najwięcej zużyło zasobów
|
||||
% Konkretnie ile i kiedy
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Jak porównywać?}
|
||||
\begin{itemize}
|
||||
\item Stworzenie gry na obu
|
||||
\item Porównywanie istniejących gier
|
||||
\item Porównanie samych edytorów
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{maxresdefault (1).jpg}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wybór gatunku}
|
||||
FPS:
|
||||
\begin{itemize}
|
||||
\item Wystarczająco skomplikowany
|
||||
\item Grafika
|
||||
\item Fizyka
|
||||
\item Klasyczny benchmark
|
||||
% Wolfenstein, Doom, Quake, Crysis
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Problem}
|
||||
Inklinacja Silnika \\
|
||||
\begin{itemize}
|
||||
\item $ \frac{2478}{39713} \approx 6\% $ gier Unity to FPS \\
|
||||
\item $ \frac{1765}{11158} \approx 15\% $ gier Unreal to FPS \\
|
||||
\end{itemize}
|
||||
Źródło: steamdb.info
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wybór gatunku}
|
||||
Bullet hell:
|
||||
\begin{itemize}
|
||||
\item Wystarczająco skomplikowany
|
||||
\item Grafika
|
||||
\item Czas jest ważny
|
||||
% W Bullet hell czas jest ważny, gra musi być płynna
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{maxresdefault.jpg}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
\begin{frame}
|
||||
\frametitle{Wyzwania}
|
||||
\begin{itemize}
|
||||
\item Sprzęt
|
||||
% Ten sam, jeden i ten sam komputer użyty w procesie kreacji obu
|
||||
\item Umiejętności
|
||||
% Nie mam
|
||||
\item Podobne wersje silnika
|
||||
% Użyje ostatniego LTS
|
||||
\item Inklinacja Silnika \\ (3\% Unity, 2.4\% Unreal)
|
||||
% ??? Ch
|
||||
% 1577 FPS UNITY, 271 FPS UNREAL
|
||||
% 39713 Total Unity, 11158 Total Unreal (proporcjonalnie 2 razy więcej :<)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Ocena łatwości użycia}
|
||||
\begin{itemize}
|
||||
\item Dokumentacja
|
||||
\item Intuicyjność
|
||||
\item Materiały
|
||||
\item Zasoby (Assety)
|
||||
\item Dostępne funkcje}
|
||||
\item ChatGPT
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\documentclass{beamer}
|
||||
\usepackage[fontsize=20pt]{fontsize}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{tikz}
|
||||
\usepackage{svg}
|
||||
\usepackage[polish]{babel}
|
||||
\graphicspath{ {./images/} }
|
||||
\usetheme{Warsaw}
|
||||
|
||||
%Information to be included in the title page:
|
||||
|
||||
% Custom title page layout adjustments
|
||||
\title{\large Porównanie wydajności i możliwości współczesnych silników do gier komputerowych}
|
||||
\author{Krzysztof Rudnicki}
|
||||
\institute{
|
||||
\textbf{Promotor} \\
|
||||
dr inż. Michał Chwesiuk
|
||||
}
|
||||
\date{\scriptsize \today} % Adjust the font size here
|
||||
|
||||
|
||||
\setbeamertemplate{footline}[frame number]{}
|
||||
\beamertemplatenavigationsymbolsempty
|
||||
\setbeamertemplate{headline}{}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}
|
||||
\vspace{-0.5cm} % Adjust vertical space above title
|
||||
\maketitle
|
||||
% Alternatively, use a completely custom layout:
|
||||
%\begin{center}
|
||||
% {\Large\inserttitle\par}
|
||||
% \vskip1em
|
||||
% {\insertauthor\par}
|
||||
% \vskip1em
|
||||
% {\insertinstitute\par}
|
||||
% \vskip1em
|
||||
% {\insertdate\par}
|
||||
%\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Plan prezentacji}
|
||||
\tableofcontents
|
||||
\end{frame}
|
||||
|
||||
\section{Teoria}
|
||||
\begin{frame}
|
||||
\frametitle{Gra komputerowa}
|
||||
\large Aplikacja dostępna na platformie "Steam" oznaczona typem "Game"
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Silnik do gier}
|
||||
\large Oprogramowanie zaprojektowane i stworzone do kreacji gier komputerowych
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nowoczesne}
|
||||
\large Ponad 1000 gier w tej dekadzie na platformie "Steam"
|
||||
\end{frame}
|
||||
|
||||
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_main.png}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_filter.drawio.pdf}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wybrane silniki - start}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\paperwidth, height=0.8\paperheight]{usedEngines.pdf}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wybrane silniki}
|
||||
\begin{itemize}
|
||||
\item Wyeliminowanie nie generycznych - Ren'Py, RPGMaker
|
||||
\item Wybór najpopularniejszych - Unity, Unreal
|
||||
% Prawie 25k i ponad 7.5k
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wydajność silnika}
|
||||
\begin{itemize}
|
||||
\item Klatki na sekundę (FPS)
|
||||
\item Zużycie CPU, GPU, RAM i VRAM
|
||||
\item Liczba draw calls
|
||||
\item Czas ładowania assetów
|
||||
\item Czas odpowiedzi na interakcję gracza
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Możliwości Silnika}
|
||||
\begin{itemize}
|
||||
\item Renderowanie grafiki
|
||||
% Ray tracing, HDR lighting, dynamic shadows, particle systems, animacja
|
||||
\item Silnik Fizyczny
|
||||
\item Multiplatformowość (VR)
|
||||
% Linux, Windows, MacOS, Android, IOs, Xbox, PlayStation, Nintendo, VR
|
||||
\item Skryptowanie logiki gier (AI)
|
||||
\item Gry online
|
||||
\item Sklepy z assetami
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
\section{Narzędzia}
|
||||
\frametitle{Unity Profiler}
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{unity_profiler.png}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\frametitle{Unreal Profiler}
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{unreal_profiler.jpg}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Analiza FPS}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{fps_overview.png}
|
||||
% Ile klatek pokazaliśmy na ile
|
||||
% ile trwała średnio klatka
|
||||
% Ile trwała najkrótsza klatka
|
||||
% Ile trwała najdłuższa klatka
|
||||
% Przeciętne klatki na sekundę dla pokazanego wycinka
|
||||
% Tyle lub mniej czasu trwało 99% klatek
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Analiza FPS}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{stutter_row.png}
|
||||
% Wykrywanie "zawieszek"
|
||||
% Wykrywamy klatki których długość
|
||||
% jest znacznie dłuższa od długości mediany pobliskich 19 klatek
|
||||
% zawieszka musi być dłuższa niż 4 milisekundy
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Analiza FPS}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{dx12_frame_health.png}
|
||||
% Możemy sprawdzić jaka klatka miała zawieszkę
|
||||
% I jaka metoda w api tę zawieszkę spowodowała
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Zużycie VRAM}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{memory_utilization.png}
|
||||
% Zielony -> ile pamięci mamy dostępnej
|
||||
% Pomarańczowy -> ile pamięci zużyliśmy
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Zużycie VRAM}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{memory_utilization_gpu_vram.png}
|
||||
% VidMm Device Suspension -> okresy czasku kiedy przetransferowano
|
||||
% Jeden duży zasób pamięci
|
||||
% Demoted Memory -> w GPU mamy local memory (szybsze) i global memory
|
||||
% (wolniejsze) to może nam mówić o "wyciekach" pamięci
|
||||
% źle zooptymalizowanej pamięci itd.
|
||||
% Allokacja pamięci -> zielone aplikacja, szare -> system
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Zużycie VRAM}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{memory_utilization_resource_migrations.png}
|
||||
% W kolejności co najwięcej zużyło zasobów
|
||||
% Konkretnie ile i kiedy
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Nsight - Zużycie VRAM}
|
||||
\center
|
||||
\includegraphics[width=1\textwidth]{memory_utilization_memory_transfer.png}
|
||||
% W kolejności co najwięcej zużyło zasobów
|
||||
% Konkretnie ile i kiedy
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Jak porównywać?}
|
||||
\begin{itemize}
|
||||
\item Stworzenie gry na obu
|
||||
\item Porównywanie istniejących gier
|
||||
\item Porównanie samych edytorów
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{maxresdefault (1).jpg}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wybór gatunku}
|
||||
FPS:
|
||||
\begin{itemize}
|
||||
\item Wystarczająco skomplikowany
|
||||
\item Grafika
|
||||
\item Fizyka
|
||||
\item Klasyczny benchmark
|
||||
% Wolfenstein, Doom, Quake, Crysis
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Problem}
|
||||
Inklinacja Silnika \\
|
||||
\begin{itemize}
|
||||
\item $ \frac{2478}{39713} \approx 6\% $ gier Unity to FPS \\
|
||||
\item $ \frac{1765}{11158} \approx 15\% $ gier Unreal to FPS \\
|
||||
\end{itemize}
|
||||
Źródło: steamdb.info
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Wybór gatunku}
|
||||
Bullet hell:
|
||||
\begin{itemize}
|
||||
\item Wystarczająco skomplikowany
|
||||
\item Grafika
|
||||
\item Czas jest ważny
|
||||
% W Bullet hell czas jest ważny, gra musi być płynna
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
{
|
||||
\setbeamercolor{footline}{fg=white}
|
||||
\usebackgroundtemplate{
|
||||
\includegraphics[width=\paperwidth, height=\paperheight]
|
||||
{maxresdefault.jpg}}
|
||||
\begin{frame}
|
||||
\end{frame}
|
||||
}
|
||||
\begin{frame}
|
||||
\frametitle{Wyzwania}
|
||||
\begin{itemize}
|
||||
\item Sprzęt
|
||||
% Ten sam, jeden i ten sam komputer użyty w procesie kreacji obu
|
||||
\item Umiejętności
|
||||
% Nie mam
|
||||
\item Podobne wersje silnika
|
||||
% Użyje ostatniego LTS
|
||||
\item Inklinacja Silnika \\ (3\% Unity, 2.4\% Unreal)
|
||||
% ??? Ch
|
||||
% 1577 FPS UNITY, 271 FPS UNREAL
|
||||
% 39713 Total Unity, 11158 Total Unreal (proporcjonalnie 2 razy więcej :<)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Ocena łatwości użycia}
|
||||
\begin{itemize}
|
||||
\item Dokumentacja
|
||||
\item Intuicyjność
|
||||
\item Materiały
|
||||
\item Zasoby (Assety)
|
||||
\item Dostępne funkcje}
|
||||
\item ChatGPT
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Po stworzeniu}
|
||||
Przejść obie gry, monitorując używając Nvidia Nsight i porównać wyniki
|
||||
\end{frame}
|
||||
|
||||
|
||||
\section{Źródła}
|
||||
\begin{frame}
|
||||
\frametitle{Źródła}
|
||||
\begin{itemize}
|
||||
\item \href{https://steamdb.info/}{https://steamdb.info/}
|
||||
\item \href{https://docs.nvidia.com/nsight-systems}{https://docs.nvidia.com/nsight-systems}
|
||||
\item An Overview Study of Game Engines, Faizi Noor Ahmad
|
||||
\item Game Engine Architecture, Jason Gregory
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Źródła obrazów}
|
||||
\begin{itemize}
|
||||
\item Crysis - kanał youtube \href{https://www.youtube.com/watch?v=vGjOALIrL_U}{Thronefull}
|
||||
\item BulletHell - kanał youtube \href{https://www.youtube.com/watch?app=desktop&v=h-wr6LoETA0}{Beat that boss}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Po stworzeniu}
|
||||
Przejść obie gry, monitorując używając Nvidia Nsight i porównać wyniki
|
||||
\end{frame}
|
||||
|
||||
|
||||
\section{Źródła}
|
||||
\begin{frame}
|
||||
\frametitle{Źródła}
|
||||
\begin{itemize}
|
||||
\item \href{https://steamdb.info/}{https://steamdb.info/}
|
||||
\item \href{https://docs.nvidia.com/nsight-systems}{https://docs.nvidia.com/nsight-systems}
|
||||
\item An Overview Study of Game Engines, Faizi Noor Ahmad
|
||||
\item Game Engine Architecture, Jason Gregory
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Źródła obrazów}
|
||||
\begin{itemize}
|
||||
\item Crysis - kanał youtube \href{https://www.youtube.com/watch?v=vGjOALIrL_U}{Thronefull}
|
||||
\item BulletHell - kanał youtube \href{https://www.youtube.com/watch?app=desktop&v=h-wr6LoETA0}{Beat that boss}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
||||
15
NotProgramming/SDM2/presentations/my_thesis/script.txt
Normal file
@ -0,0 +1,15 @@
|
||||
Dzień dobry państwu, nazywam się Krzysztof Rudnicki i chciałbym opowiedzieć o mojej pracy magisterskiej pod promotorstwem Pana doktora Michała Chwesiuka, o tytule Porównanie wydajnośći i możliwości współczesnych silników gier komputerowych
|
||||
|
||||
Jeżeli pojawią się jakieś pytania to można je jak najbardziej zadawać w trakcie
|
||||
|
||||
Plan prezentacji wygląda następująco, najpierw omówię krótko co
|
||||
rozumiem pod pojęciem silnika do gier,
|
||||
jakie są współczesne silniki do gier,
|
||||
które z nich będę porównywał,
|
||||
czym są możliwości i wydajności tych silników
|
||||
i jak zamierzam je porównywać
|
||||
|
||||
Chciałbym aby po tej prezentacji wiedzieli Państwo więcej o tym jak można
|
||||
porównywać silniki graficzne niż przed nią
|
||||
|
||||
|
||||
BIN
NotProgramming/SDM2/presentations/my_thesis/show_this/1.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/show_this/2.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/show_this/3.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/show_this/4.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/show_this/5.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
NotProgramming/SDM2/presentations/my_thesis/show_this/6.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
4
NotProgramming/SDM2/presentations/my_thesis/test.txt
Normal file
@ -0,0 +1,4 @@
|
||||
krotka (!) teoria
|
||||
jaki jest cel
|
||||
co zostalo zrobione (NAJWAZNIEJSZE)
|
||||
czy sie udalo
|
||||
@ -1,6 +1,7 @@
|
||||
\documentclass[a4paper, 12pt]{article}
|
||||
\usepackage{graphicx}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[polish]{babel} % Add Polish language support
|
||||
|
||||
% Default fixed font does not support bold face
|
||||
\DeclareFixedFont{\ttb}{T1}{txtt}{bx}{n}{12} % for bold
|
||||
@ -46,6 +47,8 @@ showstringspaces=false
|
||||
|
||||
\title{Przetwarzanie strumieni danych i data science, \\ Zajęcia Zintegrowane 1}
|
||||
\author{Krzysztof Rudnicki, 307585}
|
||||
\date{\today} % Add today's date in Polish format
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\section{Przygotowanie maszyny wirtualnej}
|
||||
|
||||
36
Programming/WDWR/projekt/WDWR.r
Normal file
@ -0,0 +1,36 @@
|
||||
library(tmvtnorm)
|
||||
|
||||
# t-Stutdet parameters
|
||||
Mu = c(9, 8, 7, 6)
|
||||
Sigma = matrix(c(16, -2, -1, -3,
|
||||
-2, 9, -4, -1,
|
||||
-1, -4, 4, 1,
|
||||
-3, -1, 1, 1),
|
||||
nrow=4, ncol=4)
|
||||
lower_bound = 5
|
||||
upper_bound = 12
|
||||
|
||||
# Generate scenarios
|
||||
data <- rtmvt(n=10000, mean=mu, sigma=sigma, df=5, lower=rep(lower_bound, 4), upper=rep(upper_bound, 4))
|
||||
write.table(format(data, digits=15, drop0trailing=F), "data10000.txt", quote=F, sep="\t", eol="\n\t", col.names = F, row.names = T)
|
||||
mean <- colMeans(data)
|
||||
|
||||
E <- function(idx, Mu, Sigma, v, alfa, beta) {
|
||||
mu = Mu[idx]
|
||||
sigma = Sigma[idx, idx]
|
||||
a = (alfa - mu)/sigma
|
||||
b = (beta - mu)/sigma
|
||||
nom = gamma((v-1)/2) *
|
||||
((v+a^2)^(-1*(v-1)/2) -
|
||||
(v+b^2)^(-1*(v-1)/2)) *
|
||||
v^(v/2)
|
||||
den = 2 * (pt(b, v) - pt(a, v)) * gamma(v/2) * gamma(1/2)
|
||||
return (mu + sigma*(nom/den))
|
||||
}
|
||||
|
||||
ER1 <- E(1, Mu, Sigma, 5, 5, 12)
|
||||
ER2 <- E(2, Mu, Sigma, 5, 5, 12)
|
||||
ER3 <- E(3, Mu, Sigma, 5, 5, 12)
|
||||
ER4 <- E(4, Mu, Sigma, 5, 5, 12)
|
||||
ER <- c(ER1, ER2, ER3, ER4)
|
||||
write.table(ER, "ER.txt", sep="\t", col.names=F, row.names=F)
|
||||
10088
Programming/WDWR/projekt/WDWR1.dat
Normal file
127
Programming/WDWR/projekt/WDWR1.mod
Normal file
@ -0,0 +1,127 @@
|
||||
###########################################################
|
||||
# WDWR 18042 #
|
||||
# Planowanie produkcj w warunkach ryzyka. #
|
||||
# MODEL #
|
||||
# Autor: Krzysztof Rudnicki #
|
||||
###########################################################
|
||||
|
||||
##########
|
||||
# Zbiory #
|
||||
##########
|
||||
# Produkty
|
||||
set PRODUCTS = {"P1", "P2", "P3", "P4"};
|
||||
# Narzedzia
|
||||
set TOOLS;
|
||||
# Miesiace
|
||||
set MONTHS ordered;
|
||||
# Scenariusze
|
||||
param scenarioCount = 10000;
|
||||
set SCENARIOS = {0..scenarioCount};
|
||||
|
||||
#############
|
||||
# Parametry #
|
||||
#############
|
||||
|
||||
# Liczba kazdego z narzedzi
|
||||
param toolCount {TOOLS} >= 1;
|
||||
|
||||
# Dochody ze sprzedazy [pln/szt]
|
||||
param expectedProfitPerUnit {PRODUCTS} >= 0;
|
||||
|
||||
# Scenarios
|
||||
param scenarioProfitPerUnit {SCENARIOS, PRODUCTS};
|
||||
|
||||
# Czasy produkcji [godz]
|
||||
param toolTimePerUnit {TOOLS, PRODUCTS} >= 0;
|
||||
|
||||
# Ograniczenia rynkowe liczby sprzedawanych produktow [szt]
|
||||
param salesMarketLimit {MONTHS, PRODUCTS} >= 0;
|
||||
|
||||
# Ograniczeine liczby magazynowanych produktow [szt]
|
||||
param storageLimit {PRODUCTS} >= 0;
|
||||
|
||||
# Koszt magazynowania produktow [pln/szt per msc]
|
||||
param storageUnitCost >= 0;
|
||||
|
||||
# Aktualny stan magazynowy [szt]
|
||||
param startingStorage {PRODUCTS} >= 0;
|
||||
|
||||
# Pozadany stan magazynowy na koniec symulacji [szt]
|
||||
param desiredEndStorage {PRODUCTS} >= 0;
|
||||
|
||||
# Liczba dni roboczych w miesiacu [d]
|
||||
param daysPerMonth >= 1;
|
||||
|
||||
# Liczba zmian w ciagu jednego dnia roboczego
|
||||
param shiftsPerDay >= 1;
|
||||
|
||||
# Dlugosc zmiany [godz]
|
||||
param hoursPerShift >= 1;
|
||||
|
||||
# Liczba roboczogodzin w miesi<EFBFBD>cu [godz]
|
||||
param workHoursPerMonth = daysPerMonth*shiftsPerDay*hoursPerShift;
|
||||
|
||||
###########
|
||||
# Zmienne #
|
||||
###########
|
||||
# Produkcja produktow
|
||||
var produced {MONTHS, PRODUCTS} >= 0 integer;
|
||||
|
||||
# Sprzedaz produktow w danym miesiacu
|
||||
var sold {MONTHS,PRODUCTS} >= 0 integer;
|
||||
var totalSold {p in PRODUCTS} = sum {m in MONTHS} sold[m, p];
|
||||
|
||||
# Iloosc produktow przekazanych do magazynu w danym miesiacu
|
||||
var stored {m in MONTHS, p in PRODUCTS} = produced[m, p] - sold[m, p];
|
||||
|
||||
# Stan magazynowy na koniec danego miesiaca
|
||||
var storage {m in MONTHS, p in PRODUCTS} =
|
||||
startingStorage[p] + sum {m2 in MONTHS: ord(m2) <= ord(m)} stored[m2, p];
|
||||
|
||||
# Czas pracy narzedzi w danym miesi<EFBFBD>cu
|
||||
var availableToolTime {t in TOOLS} =
|
||||
toolCount[t]*workHoursPerMonth;
|
||||
var usedToolTime {m in MONTHS, t in TOOLS} =
|
||||
sum {p in PRODUCTS} produced[m,p]*toolTimePerUnit[t,p];
|
||||
|
||||
# Koszt magazynowania
|
||||
var monthlyStorageCost {m in MONTHS} =
|
||||
(sum {p in PRODUCTS} storage[m, p])*storageUnitCost;
|
||||
var totalStorageCost = sum {m in MONTHS} monthlyStorageCost[m];
|
||||
|
||||
# Zysk dla warto<EFBFBD>ci oczekiwanej
|
||||
var expectedSalesProfit =
|
||||
sum {p in PRODUCTS} totalSold[p]*expectedProfitPerUnit[p];
|
||||
var expectedNetProfit =
|
||||
expectedSalesProfit - totalStorageCost;
|
||||
|
||||
|
||||
#######################
|
||||
# Ograniczenia modelu #
|
||||
#######################
|
||||
|
||||
# Ograniczenie rynkowe sprzedazy produktow
|
||||
subject to SalesMarketLimit {m in MONTHS, p in PRODUCTS}:
|
||||
sold[m, p] <= salesMarketLimit[m, p];
|
||||
# Ograniczenie magazynowe sprzedazy produktow
|
||||
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];
|
||||
# Ograniczenie na po<EFBFBD><EFBFBD>dany stan magazynowy na koniec marca
|
||||
subject to DesiredStorage {p in PRODUCTS}:
|
||||
storage[last(MONTHS), p] >= desiredEndStorage[p];
|
||||
#Ograniczenie czasu pracy narzedzi w miesiacu
|
||||
subject to ToolWorkTime {m in MONTHS, t in TOOLS}:
|
||||
usedToolTime[m, t] <= availableToolTime[t];
|
||||
|
||||
################
|
||||
# Funkcje celu #
|
||||
################
|
||||
maximize Profit: expectedNetProfit;
|
||||
27
Programming/WDWR/projekt/WDWR1.run
Normal file
@ -0,0 +1,27 @@
|
||||
###########################################################
|
||||
# WDWR 18042 #
|
||||
# Planowanie produkcj w warunkach ryzyka. #
|
||||
# SKRYPT URUCHAMIAJACY - Metoda punktu odniesienia #
|
||||
# Autor: Krzysztof Rudnicki #
|
||||
###########################################################
|
||||
|
||||
#######################
|
||||
# Konfiguracja modelu #
|
||||
#######################
|
||||
model WDWR1.mod;
|
||||
data WDWR1.dat;
|
||||
option solver cplex;
|
||||
|
||||
#############################
|
||||
# Model jednokryterialny #
|
||||
#############################
|
||||
printf "\n#################################################\n";
|
||||
printf "### Maximize profit for expected profit value ###\n";
|
||||
printf "#################################################\n";
|
||||
objective Profit;
|
||||
solve;
|
||||
|
||||
display produced;
|
||||
display sold;
|
||||
display stored;
|
||||
printf "Profit: %f\n", Profit;
|
||||
1103
Programming/WDWR/projekt/WDWR2.dat
Normal file
201
Programming/WDWR/projekt/WDWR2.mod
Normal file
@ -0,0 +1,201 @@
|
||||
###########################################################
|
||||
# WDWR 18042 #
|
||||
# Planowanie produkcj w warunkach ryzyka. #
|
||||
# MODEL #
|
||||
# Autor: Krzysztof Rudnicki #
|
||||
###########################################################
|
||||
|
||||
##########
|
||||
# Zbiory #
|
||||
##########
|
||||
# Produkty
|
||||
set PRODUCTS = {"P1", "P2", "P3", "P4"};
|
||||
# Narzedzia
|
||||
set TOOLS;
|
||||
# Miesiace
|
||||
set MONTHS ordered;
|
||||
# Scenariusze
|
||||
param scenarioCount;
|
||||
set SCENARIOS = {1..scenarioCount};
|
||||
|
||||
#############
|
||||
# Parametry #
|
||||
#############
|
||||
|
||||
# Liczba kazdego z narzedzi
|
||||
param toolCount {TOOLS} >= 1;
|
||||
|
||||
# Dochody ze sprzedazy [pln/szt]
|
||||
param expectedProfitPerUnit {PRODUCTS} >= 0;
|
||||
|
||||
# Scenarios
|
||||
param scenarioProfitPerUnit {SCENARIOS, PRODUCTS};
|
||||
|
||||
# Czasy produkcji [godz]
|
||||
param toolTimePerUnit {TOOLS, PRODUCTS} >= 0;
|
||||
|
||||
# Ograniczenia rynkowe liczby sprzedawanych produktow [szt]
|
||||
param salesMarketLimit {MONTHS, PRODUCTS} >= 0;
|
||||
|
||||
# Ograniczeine liczby magazynowanych produktow [szt]
|
||||
param storageLimit {PRODUCTS} >= 0;
|
||||
|
||||
# Koszt magazynowania produktow [pln/szt per msc]
|
||||
param storageUnitCost >= 0;
|
||||
|
||||
# Aktualny stan magazynowy [szt]
|
||||
param startingStorage {PRODUCTS} >= 0;
|
||||
|
||||
# Pozadany stan magazynowy na koniec symulacji [szt]
|
||||
param desiredEndStorage {PRODUCTS} >= 0;
|
||||
|
||||
# Liczba dni roboczych w miesiacu [d]
|
||||
param daysPerMonth >= 1;
|
||||
|
||||
# Liczba zmian w ciagu jednego dnia roboczego
|
||||
param shiftsPerDay >= 1;
|
||||
|
||||
# Dlugosc zmiany [godz]
|
||||
param hoursPerShift >= 1;
|
||||
|
||||
# Liczba roboczogodzin w miesi<EFBFBD>cu [godz]
|
||||
param workHoursPerMonth = daysPerMonth*shiftsPerDay*hoursPerShift;
|
||||
|
||||
# Czas pracy narzedzi w danym miesi<EFBFBD>cu
|
||||
param availableToolTime {t in TOOLS} = toolCount[t]*workHoursPerMonth;
|
||||
|
||||
###########
|
||||
# Zmienne #
|
||||
###########
|
||||
# Produkcja produktow
|
||||
var produced {MONTHS, PRODUCTS} >= 0 integer;
|
||||
|
||||
# Sprzedaz produktow w danym miesiacu
|
||||
var sold {MONTHS,PRODUCTS} >= 0 integer;
|
||||
var totalSold {p in PRODUCTS} = sum {m in MONTHS} sold[m, p];
|
||||
|
||||
# Iloosc produktow przekazanych do magazynu w danym miesiacu
|
||||
var stored {m in MONTHS, p in PRODUCTS} = produced[m, p] - sold[m, p];
|
||||
|
||||
# Stan magazynowy na koniec danego miesiaca
|
||||
var storage {m in MONTHS, p in PRODUCTS} =
|
||||
startingStorage[p] + sum {m2 in MONTHS: ord(m2) <= ord(m)} stored[m2, p];
|
||||
|
||||
# Wykorzystany czas pracy
|
||||
var usedToolTime {m in MONTHS, t in TOOLS} =
|
||||
sum {p in PRODUCTS} produced[m,p]*toolTimePerUnit[t,p];
|
||||
|
||||
# Koszt magazynowania
|
||||
var monthlyStorageCost {m in MONTHS} =
|
||||
(sum {p in PRODUCTS} storage[m, p])*storageUnitCost;
|
||||
var totalStorageCost = sum {m in MONTHS} monthlyStorageCost[m];
|
||||
|
||||
# Zysk dla warto<EFBFBD>ci oczekiwanej
|
||||
var expectedSalesProfit =
|
||||
sum {p in PRODUCTS} totalSold[p]*expectedProfitPerUnit[p];
|
||||
var expectedNetProfit =
|
||||
expectedSalesProfit - totalStorageCost;
|
||||
|
||||
# Zysk w danym scenariuszu
|
||||
var scenarioSalesProfit {s in SCENARIOS} =
|
||||
sum {p in PRODUCTS} totalSold[p]*scenarioProfitPerUnit[s, p];
|
||||
var scenarioNetProfit {s in SCENARIOS} =
|
||||
scenarioSalesProfit[s] - totalStorageCost;
|
||||
|
||||
# Odchylenie jako miara ryzyka - zlinearyzowana wartosc bezwzgledna
|
||||
var deviation {s in SCENARIOS} =
|
||||
expectedNetProfit - scenarioNetProfit[s];
|
||||
var P {SCENARIOS} >= 0;
|
||||
var Q {SCENARIOS} >= 0;
|
||||
subject to deviationLimit {s1 in SCENARIOS, s2 in SCENARIOS}:
|
||||
deviation[s1]-deviation[s2]+P[s1]-Q[s2] = 0;
|
||||
|
||||
#var maxDeviation = max {s in SCENARIOS} deviation[s];
|
||||
var maxDeviation;
|
||||
# Linearyzacja maksymalnego odchylenia jako miary ryzyka
|
||||
param M = 10000;
|
||||
var Z {SCENARIOS} binary;
|
||||
subject to mdLimit {s in SCENARIOS}:
|
||||
maxDeviation >= deviation[s];
|
||||
subject to mdWhere {s in SCENARIOS}:
|
||||
maxDeviation <= deviation[s] + M*(1-Z[s]);
|
||||
subject to mdOS:
|
||||
sum{s in SCENARIOS} Z[s] = 1;
|
||||
|
||||
# Aliasy dla ocenianych warto<EFBFBD>ci
|
||||
var profit = expectedNetProfit;
|
||||
var risk = maxDeviation;
|
||||
|
||||
#######################
|
||||
# Ograniczenia modelu #
|
||||
#######################
|
||||
|
||||
# Ograniczenie rynkowe sprzedazy produktow
|
||||
subject to SalesMarketLimit {m in MONTHS, p in PRODUCTS}:
|
||||
sold[m, p] <= salesMarketLimit[m, p];
|
||||
# Ograniczenie magazynowe sprzedazy produktow
|
||||
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];
|
||||
# Ograniczenie na po<EFBFBD><EFBFBD>dany stan magazynowy na koniec marca
|
||||
subject to DesiredStorage {p in PRODUCTS}:
|
||||
storage[last(MONTHS), p] >= desiredEndStorage[p];
|
||||
#Ograniczenie czasu pracy narzedzi w miesiacu
|
||||
subject to ToolWorkTime {m in MONTHS, t in TOOLS}:
|
||||
usedToolTime[m, t] <= availableToolTime[t];
|
||||
|
||||
#############################
|
||||
# Metoda punktu odniesienia #
|
||||
#############################
|
||||
# Skladniki wektora oceny
|
||||
set RATED = {"PROFIT", "RISK"};
|
||||
# Wektor oceny
|
||||
var value {r in RATED} =
|
||||
if r == "PROFIT" then profit
|
||||
else if r == "RISK" then risk;
|
||||
# Wektor aspiracji
|
||||
param aspiration {RATED};
|
||||
# Warto<EFBFBD>ci utopii i nadiru
|
||||
param utopia {RATED};
|
||||
param nadir {RATED};
|
||||
# Wspolczynniki normalizujace
|
||||
param lambda {r in RATED} =
|
||||
1 / (utopia[r]-nadir[r]);
|
||||
# Wspolczynnik skladnika regularyzacyjnego
|
||||
param epsilon;
|
||||
# Wspolczynnik pomniejszenia warto<EFBFBD>ci ocen ponad poziomem aspiracji
|
||||
param beta;
|
||||
# Indywidualne funkcje osiagniec
|
||||
var individualRating {RATED};
|
||||
# Zmienna pomocnicza metody punktu odniesienia
|
||||
var v;
|
||||
# Skalaryzujaca funkcja osiagniecia
|
||||
var rating = v + epsilon * (sum {r in RATED} individualRating[r]);
|
||||
# Odleglo<EFBFBD>c od punktu odniesienia
|
||||
var distance {r in RATED} = value[r]-aspiration[r];
|
||||
# Znormalizowana odleglo<EFBFBD>c od punktu odniesienia
|
||||
var normalizedDistance {r in RATED} = lambda[r]*distance[r];
|
||||
# Ograniczenia zmiennej v przez indywidualne funkcje osiagniec
|
||||
subject to VSubject {r in RATED}:
|
||||
v <= individualRating[r];
|
||||
# Ograniczenia indywidualnych funkcji osiagniec
|
||||
subject to IndividualRatingSubjectBeta {r in RATED}:
|
||||
individualRating[r] <= beta*normalizedDistance[r];
|
||||
subject to IndividualRatingSubject {r in RATED}:
|
||||
individualRating[r] <= normalizedDistance[r];
|
||||
|
||||
################
|
||||
# Funkcje celu #
|
||||
################
|
||||
minimize MinimizeProfit: profit;
|
||||
maximize MaximizeProfit: profit;
|
||||
minimize MinimizeRisk: risk;
|
||||
maximize MaximizeRisk: risk;
|
||||
maximize RPM: rating;
|
||||
50
Programming/WDWR/projekt/WDWR2.run
Normal file
@ -0,0 +1,50 @@
|
||||
###########################################################
|
||||
# WDWR 18042 #
|
||||
# Planowanie produkcj w warunkach ryzyka. #
|
||||
# SKRYPT URUCHAMIAJACY - Metoda punktu odniesienia #
|
||||
# Autor: Krzysztof Rudnicki #
|
||||
###########################################################
|
||||
|
||||
#######################
|
||||
# Konfiguracja modelu #
|
||||
#######################
|
||||
model WDWR2.mod;
|
||||
data WDWR2_trunc.dat;
|
||||
option solver cplex;
|
||||
|
||||
#############################
|
||||
# Metoda punktu odniesienia #
|
||||
#############################
|
||||
printf "\n######################################\n";
|
||||
printf "### RPM solution space calculation ###\n";
|
||||
printf "######################################\n";
|
||||
objective RPM;
|
||||
|
||||
param steps = 10;
|
||||
param stepSize {r in RATED} = (utopia[r] - nadir[r]) / (steps-1);
|
||||
param iteration;
|
||||
param iterationCount = steps*steps;
|
||||
set RESULTS = {1..iterationCount};
|
||||
set VALUES = {"PROFIT", "RISK", "RPM"};
|
||||
param result {RESULTS, VALUES};
|
||||
|
||||
for {i in 0..steps-1} {
|
||||
for {j in 0..steps-1} {
|
||||
let iteration := 1 + steps*i + j;
|
||||
let aspiration["PROFIT"] := nadir["PROFIT"] + i * stepSize["PROFIT"];
|
||||
let aspiration["RISK"] := nadir["RISK"] + j * stepSize["RISK"];
|
||||
printf "### %d: Solving model for aspirations: %f, %f\n",
|
||||
iteration, aspiration["PROFIT"], aspiration["RISK"];
|
||||
solve;
|
||||
let result[iteration, "PROFIT"] := profit;
|
||||
let result[iteration, "RISK"] := risk;
|
||||
let result[iteration, "RPM"] := RPM;
|
||||
printf "Profit: %f\n", profit;
|
||||
printf "Risk: %f\n", risk;
|
||||
printf "RPM: %f\n", RPM;
|
||||
}
|
||||
}
|
||||
|
||||
display result;
|
||||
|
||||
printf { r in RESULTS } "%f\t%f\t%f\n", result[r,"PROFIT"], result[r, "RISK"], result[r,"RPM"] > ./result.csv ;
|
||||
154
Programming/WDWR/projekt/WDWR2_trunc.dat
Normal file
@ -0,0 +1,154 @@
|
||||
###########################################################
|
||||
# WDWR 18042 #
|
||||
# Planowanie produkcj w warunkach ryzyka. #
|
||||
# DANE #
|
||||
# Autor: Krzysztof Rudnicki #
|
||||
###########################################################
|
||||
|
||||
# Narzedzia
|
||||
set TOOLS := GRINDER VDRILL HDRILL MILLER LATHE;
|
||||
|
||||
# Miesiace
|
||||
set MONTHS := JAN FEB MAR;
|
||||
|
||||
# Licza narzedzi
|
||||
param toolCount :=
|
||||
GRINDER 4
|
||||
VDRILL 2
|
||||
HDRILL 3
|
||||
MILLER 1
|
||||
LATHE 1
|
||||
;
|
||||
|
||||
# Czasy produkcji h
|
||||
param toolTimePerUnit:
|
||||
P1 P2 P3 P4 :=
|
||||
GRINDER 0.4 0.6 0 0
|
||||
VDRILL 0.2 0.1 0 0.6
|
||||
HDRILL 0.1 0 0.7 0
|
||||
MILLER 0.06 0.04 0 0.05
|
||||
LATHE 0 0.05 0.02 0
|
||||
;
|
||||
|
||||
# Ograniczenia rynkowe liczby sprzedawanych produktow pcs
|
||||
param salesMarketLimit:
|
||||
P1 P2 P3 P4 :=
|
||||
JAN 200 0 100 200
|
||||
FEB 300 100 200 200
|
||||
MAR 0 300 100 200
|
||||
;
|
||||
|
||||
# Ograniczeine liczby magazynowanych produktow pcs
|
||||
param storageLimit :=
|
||||
P1 200
|
||||
P2 200
|
||||
P3 200
|
||||
P4 200
|
||||
;
|
||||
|
||||
# Koszt magazynowania produktow pln/pcs per month
|
||||
param storageUnitCost := 1;
|
||||
|
||||
# Aktualny stan magazynowy pcs
|
||||
param startingStorage :=
|
||||
P1 0
|
||||
P2 0
|
||||
P3 0
|
||||
P4 0
|
||||
;
|
||||
|
||||
# Poz<6F>dany stan magazynowy na koniec marca pcs
|
||||
param desiredEndStorage :=
|
||||
P1 50
|
||||
P2 50
|
||||
P3 50
|
||||
P4 50
|
||||
;
|
||||
|
||||
# Liczba dni roboczych w miesiacu d
|
||||
param daysPerMonth := 24;
|
||||
|
||||
# Liczba zmian w ciagu jednego dnia roboczego
|
||||
param shiftsPerDay := 2;
|
||||
|
||||
# Dlugosc zmiany h
|
||||
param hoursPerShift := 8;
|
||||
|
||||
# Zyski warto<74><6F> oczekiwana
|
||||
param expectedProfitPerUnit :=
|
||||
P1 8.50944172786882
|
||||
P2 8.47100593224391
|
||||
P3 8.1319049712769
|
||||
P4 6.39446520538826
|
||||
;
|
||||
|
||||
# Metoda punktu odniesienia
|
||||
param epsilon = 0.000025;
|
||||
|
||||
param beta = 0.001;
|
||||
|
||||
param utopia :=
|
||||
PROFIT 11987
|
||||
RISK 0
|
||||
;
|
||||
|
||||
param nadir :=
|
||||
PROFIT -2400
|
||||
RISK 2815
|
||||
;
|
||||
|
||||
# Scenariusze
|
||||
param scenarioCount := 50;
|
||||
param scenarioProfitPerUnit:
|
||||
P1 P2 P3 P4 :=
|
||||
1 6.78312108289149 5.79640238361981 10.05787433056357 6.57331416435723
|
||||
2 6.99738290528301 9.01490464757196 5.08481517735633 6.42703739335277
|
||||
3 5.16730304787176 7.52317923266688 10.72313438657665 7.22667916959417
|
||||
4 8.52274093276464 11.38240217987188 6.13080610568167 6.43883854824552
|
||||
5 6.50428131735901 6.61788006135640 7.86111017073128 6.96225068464523
|
||||
6 5.73487133076911 9.16374087573468 5.52557377604414 6.34042770048443
|
||||
7 7.57821826531473 5.53212159376577 9.44747152703083 7.92080735281354
|
||||
8 8.46351060213176 6.67108340536348 7.96447972290298 6.74037823409959
|
||||
9 10.60705431897493 6.29351506828248 8.08238578885269 6.64513805083938
|
||||
10 5.49788635095338 8.01657169352075 8.50721094756387 6.32347360999400
|
||||
11 9.98722514505514 8.89045419912165 7.40638427340367 6.19123907839219
|
||||
12 7.73547221322455 11.39341677791569 7.08591860802534 6.65287015880773
|
||||
13 8.00244141512299 7.46013718525416 9.07534043801771 7.01972409076348
|
||||
14 10.01757296285428 11.16631823758034 5.36427432741987 5.93803320930752
|
||||
15 8.73982030016946 7.22788862315047 7.52123044637611 6.30583102048732
|
||||
16 6.74830998356361 5.16961378121024 9.83052665533391 6.97518295642799
|
||||
17 5.79891835909540 7.62305645016980 7.28259746189341 6.58122366239758
|
||||
18 5.01746785364914 5.37120611569365 11.37580509674048 7.45754618734148
|
||||
19 8.84615981059243 10.36884740288172 5.51512168506823 5.14746695259905
|
||||
20 10.27832406220036 6.26817737098193 6.75980452880535 6.00071122161820
|
||||
21 9.15464079326701 9.22511946737560 8.59742728186919 5.85941844163078
|
||||
22 7.41070715265531 9.03326860943882 9.51105396612463 5.95705526059528
|
||||
23 9.41688054404721 5.48792302160852 8.05314441506622 6.33167522079485
|
||||
24 7.99636302963949 8.45127363831087 6.80178566896807 6.40796549415317
|
||||
25 8.77607512859202 9.06083514509964 6.14324653925151 5.73196891114116
|
||||
26 6.15756683330483 5.81155622391928 8.95298231122791 7.75631798464974
|
||||
27 8.71820952681711 6.75933713868641 6.20173677287384 5.94931057772569
|
||||
28 7.50988798239200 8.40250942598753 7.59076793688675 6.83115118367424
|
||||
29 11.46519479939599 5.34788729417893 7.49642151003498 5.09135446750897
|
||||
30 9.24470379243678 7.86407386582905 6.91504065225354 5.66423375179536
|
||||
31 10.11059443261933 5.19726478862852 7.17323727021490 5.35589059533840
|
||||
32 8.52798709174698 9.92750815054074 7.11656712470230 5.52054849939254
|
||||
33 10.96107079994176 7.10910792528864 5.70378349251154 5.17164984043314
|
||||
34 7.06917204470777 7.93024674036222 7.04742602521247 6.02267636557175
|
||||
35 8.48134255283988 5.85227829193417 5.36851422694765 6.58963142694151
|
||||
36 10.79598232218280 6.78064186807628 6.45254214496221 6.01773663687229
|
||||
37 9.31085304521786 7.24038452979960 7.11927599287817 5.94495349693440
|
||||
38 11.73162984938600 8.89170449659670 7.24145427728390 5.50727529989226
|
||||
39 9.95614904957837 8.24343617183020 6.08421773053824 5.59097741826648
|
||||
40 10.84398291202468 5.62144717550252 8.73978776370006 5.90011906694585
|
||||
41 9.66329756207950 8.71563915673125 8.57471405154024 6.25399915313449
|
||||
42 11.75197973817904 9.62791703809340 6.15087294856069 5.12525411655807
|
||||
43 10.21024933655283 5.45043424512963 7.70802205088631 6.26487953122650
|
||||
44 7.00126415308046 9.52080591709321 6.34678934922762 5.78571635562224
|
||||
45 10.95808951943000 5.38346727815726 6.12050483571891 7.52568971146160
|
||||
46 7.24407146573199 10.74100159223745 7.79352388695434 5.86675126000469
|
||||
47 11.09420218544564 7.58722148021949 10.11955301735720 5.87263773263194
|
||||
48 6.56196505922266 8.86557049389506 6.68759866488725 6.54786762414447
|
||||
49 6.36408747696432 9.90697341186375 8.67549323089252 7.10602003316923
|
||||
50 5.25413960261441 9.86316602732531 6.97502397729463 5.79670081684910
|
||||
;
|
||||
53
Programming/WDWR/projekt/WDWR3.run
Normal file
@ -0,0 +1,53 @@
|
||||
###########################################################
|
||||
# WDWR 18042 #
|
||||
# Planowanie produkcj w warunkach ryzyka. #
|
||||
# SKRYPT URUCHAMIAJACY #
|
||||
# Autor: Krzysztof Rudnicki #
|
||||
###########################################################
|
||||
|
||||
#######################
|
||||
# Konfiguracja modelu #
|
||||
#######################
|
||||
model WDWR2.mod;
|
||||
data WDWR2.dat;
|
||||
option solver cplex;
|
||||
|
||||
###########################################################
|
||||
# Rozwiazania optymalne dla wyznaczenia granic zmienno<6E>ci #
|
||||
# tj wektorow utopii i nadiru #
|
||||
###########################################################
|
||||
# Minimalny zysk
|
||||
printf "\n#########################\n";
|
||||
printf "### Minimizing profit ###\n";
|
||||
printf "#########################\n";
|
||||
objective MinimizeProfit;
|
||||
solve;
|
||||
printf "Profit: %f\n", profit;
|
||||
printf "Risk: %f\n", risk;
|
||||
|
||||
# Maksymalny koszt
|
||||
printf "\n#########################\n";
|
||||
printf "### Maximizing profit ###\n";
|
||||
printf "#########################\n";
|
||||
objective MaximizeProfit;
|
||||
solve;
|
||||
printf "Profit: %f\n", profit;
|
||||
printf "Risk: %f\n", risk;
|
||||
|
||||
# Minimalny poziom zanieczyszcze<7A>
|
||||
printf "\n#######################\n";
|
||||
printf "### Minimizing risk ###\n";
|
||||
printf "#######################\n";
|
||||
objective MinimizeRisk;
|
||||
solve;
|
||||
printf "Profit: %f\n", profit;
|
||||
printf "Risk: %f\n", risk;
|
||||
|
||||
# Maksymalny poziom zanieczyszcze<7A>
|
||||
printf "\n########################\n";
|
||||
printf "### Maximizing risk k###\n";
|
||||
printf "########################\n";
|
||||
objective MaximizeRisk;
|
||||
solve;
|
||||
printf "Profit: %f\n", profit;
|
||||
printf "Risk: %f\n", risk;
|
||||
7
Programming/WDWR/projekt/doc/ocena.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Ocenione na 80/100
|
||||
|
||||
Uwagi:
|
||||
- brak wstępu teoretycznego
|
||||
- brak udowodnienia, że można użyć wartości oczekiwanej w zadaniu 1-wszym - E(R) = E(R1) + E(R2)
|
||||
- błąd na wykresie z obrazem rozwiązań - pojawiają się rozwiązania zdominowane! - może sugerować błąd w implementacji
|
||||
- brak odniesienia do przypadku ogólnego i omówienia wyninku w badaniu dominacji stohastycznej
|
||||
50
Programming/WDWR/projekt/results/distr1.csv
Normal file
@ -0,0 +1,50 @@
|
||||
0.020000 11639.667141
|
||||
0.040000 10292.082599
|
||||
0.060000 11996.818322
|
||||
0.080000 11801.202380
|
||||
0.100000 11047.083018
|
||||
0.120000 9941.182838
|
||||
0.140000 12469.184647
|
||||
0.160000 11749.639752
|
||||
0.180000 12521.561887
|
||||
0.200000 10799.437424
|
||||
0.220000 12250.278054
|
||||
0.240000 11998.961779
|
||||
0.260000 12334.974633
|
||||
0.280000 11748.822489
|
||||
0.300000 11533.496636
|
||||
0.320000 11650.567186
|
||||
0.340000 10505.951816
|
||||
0.360000 11906.078116
|
||||
0.380000 10706.762250
|
||||
0.400000 11469.313644
|
||||
0.420000 12261.502189
|
||||
0.440000 11949.591326
|
||||
0.460000 11684.599720
|
||||
0.480000 11254.293504
|
||||
0.500000 11019.077043
|
||||
0.520000 11660.321693
|
||||
0.540000 10689.432294
|
||||
0.560000 11619.454963
|
||||
0.580000 11509.036663
|
||||
0.600000 11235.252802
|
||||
0.620000 10966.519996
|
||||
0.640000 11355.652416
|
||||
0.660000 10990.753206
|
||||
0.680000 10646.294395
|
||||
0.700000 10464.177226
|
||||
0.720000 11666.180143
|
||||
0.740000 11387.100619
|
||||
0.760000 12471.939730
|
||||
0.780000 11219.420397
|
||||
0.800000 12297.869146
|
||||
0.820000 12590.731969
|
||||
0.840000 11961.876952
|
||||
0.860000 11816.323123
|
||||
0.880000 10514.812398
|
||||
0.900000 12223.545025
|
||||
0.920000 11483.289216
|
||||
0.940000 13326.529017
|
||||
0.960000 10801.660163
|
||||
0.980000 12060.838985
|
||||
1.000000 10142.319128
|
||||
|
50
Programming/WDWR/projekt/results/distr2.csv
Normal file
@ -0,0 +1,50 @@
|
||||
0.020000 8334.413457
|
||||
0.040000 8815.328577
|
||||
0.060000 8744.362234
|
||||
0.080000 10054.734924
|
||||
0.100000 8531.997783
|
||||
0.120000 8436.145053
|
||||
0.140000 9274.773903
|
||||
0.160000 9048.940981
|
||||
0.180000 9581.821780
|
||||
0.200000 8268.608177
|
||||
0.220000 9781.602957
|
||||
0.240000 10010.709973
|
||||
0.260000 9378.021217
|
||||
0.280000 10110.988008
|
||||
0.300000 8996.520470
|
||||
0.320000 8371.333346
|
||||
0.340000 8311.828619
|
||||
0.360000 8286.748340
|
||||
0.380000 9051.369471
|
||||
0.400000 8977.096282
|
||||
0.420000 9504.738633
|
||||
0.440000 9024.825705
|
||||
0.460000 8785.788983
|
||||
0.480000 9103.663665
|
||||
0.500000 9064.958116
|
||||
0.520000 8759.874949
|
||||
0.540000 8539.407399
|
||||
0.560000 9251.416429
|
||||
0.580000 8613.449292
|
||||
0.600000 8902.125325
|
||||
0.620000 8270.820433
|
||||
0.640000 9178.385113
|
||||
0.660000 8848.276351
|
||||
0.680000 8450.073796
|
||||
0.700000 8528.075255
|
||||
0.720000 9271.358778
|
||||
0.740000 8934.054436
|
||||
0.760000 9916.588628
|
||||
0.780000 9125.210257
|
||||
0.800000 9075.712755
|
||||
0.820000 9760.295161
|
||||
0.840000 9812.044676
|
||||
0.860000 8961.520425
|
||||
0.880000 8673.882341
|
||||
0.900000 9811.630231
|
||||
0.920000 9256.374980
|
||||
0.940000 9798.126373
|
||||
0.960000 8835.051454
|
||||
0.980000 9556.205053
|
||||
1.000000 8267.170403
|
||||
|
50
Programming/WDWR/projekt/results/distr3.csv
Normal file
@ -0,0 +1,50 @@
|
||||
0.020000 8462.904351
|
||||
0.040000 8887.361263
|
||||
0.060000 8882.563026
|
||||
0.080000 10141.687000
|
||||
0.100000 8634.948985
|
||||
0.120000 8513.615679
|
||||
0.140000 9395.675683
|
||||
0.160000 9153.185821
|
||||
0.180000 9687.103924
|
||||
0.200000 8380.711280
|
||||
0.220000 9881.370022
|
||||
0.240000 10109.134413
|
||||
0.260000 9496.385439
|
||||
0.280000 10188.525618
|
||||
0.300000 9096.003124
|
||||
0.320000 8496.469280
|
||||
0.340000 8408.842845
|
||||
0.360000 8430.629207
|
||||
0.380000 9129.919779
|
||||
0.400000 9066.482113
|
||||
0.420000 9619.132880
|
||||
0.440000 9149.991621
|
||||
0.460000 8889.914639
|
||||
0.480000 9195.736366
|
||||
0.500000 9149.737910
|
||||
0.520000 8875.122293
|
||||
0.540000 8622.587577
|
||||
0.560000 9352.908154
|
||||
0.580000 8710.754238
|
||||
0.600000 8994.969887
|
||||
0.620000 8364.096545
|
||||
0.640000 9275.711427
|
||||
0.660000 8925.830861
|
||||
0.680000 8544.573155
|
||||
0.700000 8600.349704
|
||||
0.720000 9357.569926
|
||||
0.740000 9028.726132
|
||||
0.760000 10014.377784
|
||||
0.780000 9208.464306
|
||||
0.800000 9188.211655
|
||||
0.820000 9873.907368
|
||||
0.840000 9897.483068
|
||||
0.860000 9061.467124
|
||||
0.880000 8761.564619
|
||||
0.900000 9892.459756
|
||||
0.920000 9362.638268
|
||||
0.940000 9929.148231
|
||||
0.960000 8926.168209
|
||||
0.980000 9672.217945
|
||||
1.000000 8362.733857
|
||||
|
100
Programming/WDWR/projekt/results/result.csv
Normal file
@ -0,0 +1,100 @@
|
||||
-200.000000 0.000000 0.000153
|
||||
-200.000000 0.000000 0.000153
|
||||
-200.000000 0.000000 0.000153
|
||||
-200.000000 0.000000 0.000153
|
||||
-200.000000 0.000000 0.000153
|
||||
-200.000000 0.000000 0.000153
|
||||
-200.000000 0.000000 0.000153
|
||||
-200.000000 0.000000 0.000153
|
||||
-200.000000 0.000000 0.000111
|
||||
-200.000000 0.000000 0.000000
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000042
|
||||
-200.000000 0.000000 0.000000
|
||||
5388.280763 673.375180 0.000319
|
||||
8453.165836 1004.361418 0.000532
|
||||
7464.470364 888.082372 0.000462
|
||||
6464.644347 771.022268 0.000393
|
||||
5456.347323 654.460477 0.000323
|
||||
4366.632009 549.520402 0.000248
|
||||
3392.421231 434.063877 0.000179
|
||||
2374.847064 318.378638 0.000109
|
||||
1765.371563 240.818335 0.000026
|
||||
425.448190 72.719700 -0.025835
|
||||
5388.280763 673.375180 0.000208
|
||||
9317.090153 1147.518267 0.000481
|
||||
8301.136529 1036.409118 0.000410
|
||||
7285.591657 919.291964 0.000340
|
||||
6361.934765 790.460607 0.000275
|
||||
5365.283387 669.990504 0.000206
|
||||
4434.582882 540.004038 0.000142
|
||||
3373.344061 434.703276 0.000068
|
||||
2417.827519 311.250020 0.000001
|
||||
1432.148909 188.510726 -0.066975
|
||||
5388.280763 673.375180 0.000097
|
||||
10000.288917 1307.292831 0.000417
|
||||
9291.427014 1151.339411 0.000368
|
||||
8439.813809 1007.101848 0.000309
|
||||
7436.822686 890.327465 0.000239
|
||||
6344.809413 790.851811 0.000163
|
||||
5340.293203 671.880254 0.000094
|
||||
4375.860271 553.674833 0.000026
|
||||
3444.833709 420.543399 -0.038285
|
||||
2443.218902 304.590798 -0.108208
|
||||
9382.134535 1104.116837 0.000263
|
||||
11040.319690 1435.989662 0.000379
|
||||
10406.562382 1249.283436 0.000334
|
||||
9157.108633 1182.543437 0.000247
|
||||
8243.887310 1046.431089 0.000184
|
||||
7252.262318 926.566187 0.000115
|
||||
6114.343105 833.935936 0.000036
|
||||
5458.235147 652.125451 -0.009439
|
||||
4451.534428 536.334425 -0.079420
|
||||
3445.121460 420.374152 -0.149341
|
||||
9534.263193 1124.891344 0.000163
|
||||
11623.893720 1629.772538 0.000308
|
||||
11040.319690 1435.989662 0.000268
|
||||
10234.420750 1282.152533 0.000212
|
||||
8955.458871 1217.950976 0.000123
|
||||
8125.266489 1067.542071 0.000065
|
||||
7460.723990 888.894318 0.000018
|
||||
6462.769540 767.700977 -0.050643
|
||||
5458.235147 652.125451 -0.120556
|
||||
4451.534428 536.334425 -0.190537
|
||||
9371.663529 1104.493126 0.000040
|
||||
11985.535635 1876.338189 0.000222
|
||||
11623.893720 1629.772538 0.000197
|
||||
11040.319690 1435.989662 0.000156
|
||||
10406.562382 1249.283436 0.000112
|
||||
9479.717395 1116.983538 0.000048
|
||||
8475.742091 999.775354 -0.021837
|
||||
7471.207698 883.988876 -0.091810
|
||||
6462.769540 767.700977 -0.161760
|
||||
5458.235147 652.125451 -0.231672
|
||||
10658.420822 1308.556262 0.000019
|
||||
11973.604069 1746.007712 0.000110
|
||||
11973.604069 1746.007712 0.000110
|
||||
11623.893720 1629.772538 0.000086
|
||||
11040.319690 1435.989662 0.000045
|
||||
10406.562382 1249.283436 0.000001
|
||||
9479.717395 1116.983538 -0.063467
|
||||
8475.742091 999.775354 -0.132953
|
||||
7471.207698 883.988876 -0.202927
|
||||
6462.481788 767.807980 -0.272896
|
||||
11984.113511 1748.047892 -0.000201
|
||||
11987.418989 2046.236151 0.000000
|
||||
11987.418989 2046.236151 0.000000
|
||||
11984.113511 1748.047892 -0.000201
|
||||
11634.403161 1632.508345 -0.024509
|
||||
11040.697227 1435.311557 -0.065778
|
||||
10399.451279 1248.963735 -0.110354
|
||||
9479.717395 1116.983538 -0.174583
|
||||
8475.454340 999.671406 -0.244090
|
||||
7471.207698 883.988876 -0.314044
|
||||
|