312 lines
17 KiB
TeX
312 lines
17 KiB
TeX
\documentclass[a4paper, final]{article}
|
||
%\usepackage{literat} % Нормальные шрифты
|
||
\usepackage[14pt]{extsizes} % для того чтобы задать нестандартный 14-ый размер шрифта
|
||
\usepackage{tabularx}
|
||
\usepackage[T2A]{fontenc}
|
||
\usepackage[utf8]{inputenc}
|
||
\usepackage[russian]{babel}
|
||
\usepackage{amsmath}
|
||
\usepackage[left=25mm, top=20mm, right=20mm, bottom=20mm, footskip=10mm]{geometry}
|
||
\usepackage{ragged2e} %для растягивания по ширине
|
||
\usepackage{setspace} %для межстрочного интервала
|
||
\usepackage{moreverb} %для работы с листингами
|
||
\usepackage{indentfirst} % для абзацного отступа
|
||
\usepackage{moreverb} %для печати в листинге исходного кода программ
|
||
\usepackage{pdfpages} %для вставки других pdf файлов
|
||
\usepackage{tikz}
|
||
\usepackage{graphicx}
|
||
\usepackage{afterpage}
|
||
\usepackage{longtable}
|
||
\usepackage{float}
|
||
|
||
|
||
|
||
% \usepackage[paper=A4,DIV=12]{typearea}
|
||
\usepackage{pdflscape}
|
||
% \usepackage{lscape}
|
||
|
||
\usepackage{array}
|
||
\usepackage{multirow}
|
||
|
||
\renewcommand\verbatimtabsize{4\relax}
|
||
\renewcommand\listingoffset{0.2em} %отступ от номеров строк в листинге
|
||
\renewcommand{\arraystretch}{1.4} % изменяю высоту строки в таблице
|
||
\usepackage[font=small, singlelinecheck=false, justification=centering, format=plain, labelsep=period]{caption} %для настройки заголовка таблицы
|
||
\usepackage{listings} %листинги
|
||
\usepackage{xcolor} % цвета
|
||
\usepackage{hyperref}% для гиперссылок
|
||
\usepackage{enumitem} %для перечислений
|
||
|
||
% Настраиваем листинги, чтобы они использовали счётчик figure
|
||
\AtBeginDocument{
|
||
\renewcommand{\thelstlisting}{\thefigure} % Листинги используют тот же счетчик, что и рисунки
|
||
\renewcommand{\lstlistingname}{Рис.} % Меняем подпись на "Рисунок"
|
||
}
|
||
|
||
% Автоматически увеличиваем счетчик figure перед каждым листингом
|
||
\let\oldlstlisting\lstlisting
|
||
\renewcommand{\lstlisting}[1][]{%
|
||
\refstepcounter{figure}% Увеличиваем счетчик figure
|
||
\oldlstlisting[#1]% Вызываем оригинальную команду lstlisting
|
||
}
|
||
|
||
\newcommand{\specialcell}[2][l]{\begin{tabular}[#1]{@{}l@{}}#2\end{tabular}}
|
||
|
||
|
||
\setlist[enumerate,itemize]{leftmargin=1.2cm} %отступ в перечислениях
|
||
|
||
\hypersetup{colorlinks,
|
||
allcolors=[RGB]{010 090 200}} %красивые гиперссылки (не красные)
|
||
|
||
% подгружаемые языки — подробнее в документации listings (это всё для листингов)
|
||
\lstloadlanguages{ SQL}
|
||
% включаем кириллицу и добавляем кое−какие опции
|
||
\lstset{tabsize=2,
|
||
breaklines,
|
||
basicstyle=\footnotesize,
|
||
columns=fullflexible,
|
||
flexiblecolumns,
|
||
numbers=left,
|
||
numberstyle={\footnotesize},
|
||
keywordstyle=\color{blue},
|
||
inputencoding=cp1251,
|
||
extendedchars=true
|
||
}
|
||
\lstdefinelanguage{MyC}{
|
||
language=SQL,
|
||
% ndkeywordstyle=\color{darkgray}\bfseries,
|
||
% identifierstyle=\color{black},
|
||
% morecomment=[n]{/**}{*/},
|
||
% commentstyle=\color{blue}\ttfamily,
|
||
% stringstyle=\color{red}\ttfamily,
|
||
% morestring=[b]",
|
||
% showstringspaces=false,
|
||
% morecomment=[l][\color{gray}]{//},
|
||
keepspaces=true,
|
||
escapechar=\%,
|
||
texcl=true
|
||
}
|
||
|
||
\textheight=24cm % высота текста
|
||
\textwidth=16cm % ширина текста
|
||
\oddsidemargin=0pt % отступ от левого края
|
||
\topmargin=-1.5cm % отступ от верхнего края
|
||
\parindent=24pt % абзацный отступ
|
||
\parskip=5pt % интервал между абзацами
|
||
\tolerance=2000 % терпимость к "жидким" строкам
|
||
\flushbottom % выравнивание высоты страниц
|
||
|
||
|
||
% Настройка листингов
|
||
\lstset{
|
||
language=SQL,
|
||
extendedchars=\true,
|
||
inputencoding=utf8,
|
||
keepspaces=true,
|
||
captionpos=b,
|
||
}
|
||
|
||
\begin{document} % начало документа
|
||
|
||
|
||
|
||
% НАЧАЛО ТИТУЛЬНОГО ЛИСТА
|
||
\begin{center}
|
||
\hfill \break
|
||
\hfill \break
|
||
\normalsize{МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ\\
|
||
федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский политехнический университет Петра Великого»\\[10pt]}
|
||
\normalsize{Институт компьютерных наук и кибербезопасности}\\[10pt]
|
||
\normalsize{Высшая школа технологий искусственного интеллекта}\\[10pt]
|
||
\normalsize{Направление: 02.03.01 <<Математика и компьютерные науки>>}\\
|
||
|
||
\hfill \break
|
||
\hfill \break
|
||
\hfill \break
|
||
\hfill \break
|
||
\large{Отчет по лабораторной работе №2}\\
|
||
\large{по дисциплине}\\
|
||
\large{<<Функциональное программирование>>}\\
|
||
\large{Вариант 3}\\
|
||
\hfill \break
|
||
|
||
% \hfill \break
|
||
% \hfill \break
|
||
\end{center}
|
||
|
||
\small{
|
||
\begin{tabular}{lrrl}
|
||
\!\!\!Студент, & \hspace{2cm} & & \\
|
||
\!\!\!группы 5130201/20102 & \hspace{2cm} & \underline{\hspace{3cm}} &Тищенко А. А. \\\\
|
||
\!\!\!Преподаватель,\\ \hspace{-5pt}к. т. н., доц. & \hspace{2cm} & \underline{\hspace{3cm}} & Моторин Д. Е. \\\\
|
||
&&\hspace{4cm}
|
||
\end{tabular}
|
||
\begin{flushright}
|
||
<<\underline{\hspace{1cm}}>>\underline{\hspace{2.5cm}} 2024г.
|
||
\end{flushright}
|
||
}
|
||
|
||
\hfill \break
|
||
% \hfill \break
|
||
\begin{center} \small{Санкт-Петербург, 2024} \end{center}
|
||
\thispagestyle{empty} % выключаем отображение номера для этой страницы
|
||
|
||
% КОНЕЦ ТИТУЛЬНОГО ЛИСТА
|
||
\newpage
|
||
|
||
\tableofcontents
|
||
|
||
|
||
% \newpage
|
||
|
||
% \section*{Введение}
|
||
|
||
% \addcontentsline{toc}{section}{Введение}
|
||
|
||
|
||
\newpage
|
||
\section {Математическое описание}
|
||
\subsection{Фракталы}
|
||
Фрактал — множество, обладающее свойством самоподобия (объект, в точности или приближённо совпадающий с частью себя самого, то есть целое имеет ту же форму, что и одна или более частей). В математике под фракталами понимают множества точек в евклидовом пространстве, имеющие дробную метрическую размерность, либо метрическую размерность, отличную от топологической, поэтому их следует отличать от прочих геометрических фигур, ограниченных конечным числом звеньев. Самоподобные фигуры, повторяющиеся конечное число раз, называются предфракталами.
|
||
|
||
|
||
\subsection{Папоротник Барнсли}
|
||
Папоротник Барнсли — фрактал, названый в честь британского математика Майкла Барнсли, впервые описан в его книге <<Fractals Everywhere>>~\cite{barnsley}. Для его построения используется четыре простых трансформации, которые применяются случайным образом с определёнными вероятностями. Каждое преобразование масштабирует, поворачивает и смещает точки, начиная с одного начального положения. На каждом шаге, в зависимости от случайно выбранной трансформации, новая точка генерируется на основе предыдущей, и этот процесс повторяется многократно. Результатом становится изображение, напоминающее настоящие папоротники.
|
||
|
||
\[
|
||
\begin{aligned}
|
||
T_1(x, y) &= \left( 0, 0.16y \right), \\
|
||
T_2(x, y) &= \left( 0.85x + 0.04y, -0.04x + 0.85y + 1.6 \right), \\
|
||
T_3(x, y) &= \left( 0.2x - 0.26y, 0.23x + 0.22y + 1.6 \right), \\
|
||
T_4(x, y) &= \left( -0.15x + 0.28y, 0.26x + 0.24y + 0.44 \right).
|
||
\end{aligned}
|
||
\]
|
||
|
||
Каждое из этих преобразований применяется с вероятностью:
|
||
\[
|
||
P(T_1) = 0.01, \quad P(T_2) = 0.85, \quad P(T_3) = 0.07, \quad P(T_4) = 0.07.
|
||
\]
|
||
|
||
На рисунках 1-3 приведены примеры папоротника Барнсли для разного количества точек (n). Во всех примерах в качестве начальной была выбрана точка с координатами (0, 0).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/fern500.png}
|
||
\caption{Папоротник Барнсли для n = 500.}
|
||
\label{fig:fern500}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/fern5000.png}
|
||
\caption{Папоротник Барнсли для n = 5000.}
|
||
\label{fig:fern5000}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/fern50000.png}
|
||
\caption{Папоротник Барнсли для n = 50000.}
|
||
\label{fig:fern50000}
|
||
\end{figure}
|
||
|
||
|
||
\subsection{Дилемма заключённого}
|
||
Дилемма заключённого — фундаментальная проблема в теории игр, согласно которой рациональные игроки не всегда будут сотрудничать друг с другом, даже если это в их интересах. Предполагается, что игрок (<<заключённый>>) максимизирует свой собственный выигрыш, не заботясь о выгоде других. В классическом варианте дилеммы заключённого два игрока могут выбрать одно из двух действий:
|
||
|
||
\begin{itemize}
|
||
\item \textbf{Сотрудничество}: Игрок решает сотрудничать с другим игроком, не сдавая его властям.
|
||
\item \textbf{Предательство}: Игрок решает предать другого, сдавая его властям, с целью получения личной выгоды.
|
||
\end{itemize}
|
||
|
||
В зависимости от действий обоих игроков возможны следующие исходы:
|
||
\begin{itemize}
|
||
\item Если оба игрока сотрудничают, они оба получают умеренное наказание.
|
||
\item Если один игрок сотрудничает, а другой предаёт, то предатель получает свободу, а сотрудничающий — максимальное наказание.
|
||
\item Если оба игрока предают друг друга, оба получают умеренные наказания, однако хуже, чем при сотрудничестве.
|
||
\end{itemize}
|
||
|
||
В таблице \ref{tbl:exodus} представлены варианты исходов дилеммы заключённого, которые рассматривались в этом варианте лабораторной работы.
|
||
|
||
\begin{table}[h!]
|
||
\centering
|
||
\caption{Исходы дилеммы заключённого}
|
||
\label{tbl:exodus}
|
||
\footnotesize
|
||
\begin{tabularx}{\textwidth}{|p{3.5cm}|p{3.5cm}|X|}
|
||
\hline
|
||
\textbf{Действие игрока 1} & \textbf{Действие игрока 2} & \textbf{Наказание игрока 1 / Наказание игрока 2} \\
|
||
\hline
|
||
Сотрудничество & Сотрудничество & 1 год / 1 год \\
|
||
\hline
|
||
Сотрудничество & Предательство & 10 лет / 0 лет \\
|
||
\hline
|
||
Предательство & Сотрудничество & 0 лет / 10 лет \\
|
||
\hline
|
||
Предательство & Предательство & 5 лет / 5 лет \\
|
||
\hline
|
||
\end{tabularx}
|
||
\end{table}
|
||
|
||
В повторяющейся дилемме заключённого игра происходит периодически, и каждый игрок может «наказать» другого за несотрудничество ранее.
|
||
|
||
\subsection{Равновесие Нэша}
|
||
Равновесие Нэша — одно из ключевых понятий теории игр. Так называется набор стратегий в игре для двух и более игроков, в котором ни один участник не может увеличить выигрыш, изменив свою стратегию, если другие участники своих стратегий не меняют.
|
||
|
||
Определить стратегию, при которой наступает равновесие можно с помощью формулы:
|
||
|
||
\[
|
||
u_i(s_i^*, s_{-i}) \geq u_i(s_i, s_{-i}) \quad \text{для всех} \ s_i,
|
||
\]
|
||
|
||
где:
|
||
\begin{itemize}
|
||
\item $u_i(s_i^*, s_{-i})$ — выигрыш игрока $i$, если он выбирает стратегию $s_i^*$, а остальные игроки выбирают стратегии $s_{-i}$;
|
||
\item $s_{-i}$ — набор стратегий всех игроков, кроме игрока $i$;
|
||
\item $s_i$ — стратегия игрока $i$.
|
||
\end{itemize}
|
||
|
||
В случае с дилеммой заключённого равновесие Нэша достигается, когда оба игрока выбирают стратегию предательства (П). Если игрок 1 выбирает сотрудничество (С), то игрок 2, выбирая предательство (П), получает 0 лет (лучший результат для него), а игрок 1 — 10 лет. Если игрок 1 выбирает предательство (П), то игрок 2, также выбирая предательство (П), получает 5 лет, а игрок 1 — 5 лет.
|
||
|
||
\subsection{Прощающая стратегия}
|
||
Прощающая стратегия заключается в том, что игрок не предает, пока это не сделает оппонент, далее мстит один ход и снова возвращается к сотрудничеству, если оппонент не продолжает предавать.
|
||
|
||
\[
|
||
s_i(t) =
|
||
\begin{cases}
|
||
\text{С}, & \text{если } s_j(t-1) = \text{С}, \\
|
||
\text{П}, & \text{если } s_j(t-1) = \text{П}.
|
||
\end{cases}
|
||
\]
|
||
где:
|
||
\vspace{-10pt}
|
||
\begin{itemize}
|
||
\item \( s_i(t) \) — стратегия игрока \( i \) на шаге \( t \),
|
||
\item \( s_j(t-1) \) — стратегия оппонента на шаге \( t-1 \).
|
||
\end{itemize}
|
||
|
||
\newpage
|
||
\section {Особенности реализации}
|
||
|
||
|
||
\newpage
|
||
\section {Результаты работы программы}
|
||
|
||
|
||
|
||
\section*{Заключение}
|
||
\addcontentsline{toc}{section}{Заключение}
|
||
|
||
|
||
\newpage
|
||
\section*{Список литературы}
|
||
\addcontentsline{toc}{section}{Список литературы}
|
||
|
||
\vspace{-1.5cm}
|
||
\begin{thebibliography}{0}
|
||
\bibitem{barnsley}
|
||
Michael F. Barnsley, Hawley Rising. Fractals Everywhere. — Morgan Kaufmann, 1993-01-01. — 568 с.
|
||
\end{thebibliography}
|
||
|
||
|
||
\end{document} |