Заключение

This commit is contained in:
2024-12-06 18:04:05 +03:00
parent bfe369191d
commit ebf72d6e7f

View File

@@ -701,8 +701,15 @@ int main()
\addcontentsline{toc}{section}{Заключение} \addcontentsline{toc}{section}{Заключение}
В результате выполнения лабораторной работы было разработано консольное приложение, ... В ходе выполнения лабораторной работы был реализован двумерный клеточный автомат в консоли с окрестностью фон Неймана в соответствии с заданным номером 109063350. Двоичное представление этого числа, дополненное ведущими нулями, соответствует вектору значений функции переходов рассматриваемого клеточного автомата. Анализ паттернов был проведён для трёх вариантов граничных условий: единичные, нулевые и тороидальные. Было обнаружено как минимум 6 различных циклических паттернов для поля размером 5 на 5. Для поля размером 20 на 20 и нулевых начальных условий был также проведён анализ сходимости и построены графики количества <<живых>> клеток для различных начальных конфигураций. Также по результатам анализа, было определено, что рассматриваемый автомат относится к третьему классу по классификации Стивена Вольфрама.
Из достоинств выполнения лабораторной работы можно выделить структурирование кода за счёт использования ООП. Вся логика работы клеточного автомата вынесена в отдельный класс \texttt{CellularAutomaton}, который может быть переиспользован в других программах. Также достоинством является то, что приложение позволяет пользователю выбирать граничные условия.
Во время разработки упор был сделан на упрощении и понятности кода, поэтому в качестве недостатка можно отметить не самую лучшую его эффективность, в особенности в использовании памяти. Поскольку каждая клетка может быть в одном из двух состояний можно было бы использовать битовые структуры для хранения поля, однако в работе для этих целей используются векторы целых чисел. Таким образом для хранения состояния каждой отдельной клетки выделяется по 32 бита, вместо одного необходимого.
Функционал программы достаточно несложно масштабировать. Например, сейчас функция переходов жёстко задаётся в классе \texttt{CellularAutomaton}, с помощью незначительных изменений кода можно было бы предоставить пользователю возможность задавать функцию перехода, посредством ввода вектора значений функции или натурального числа, двоичное представление которого соответствовало бы вектору значений функции переходов.
Работа выполнена в среде разработки Visual Studio 2022, стандарт ISO C++ 14, компилятор Microsoft (R) C/C++ версии 19.33.31629.
\newpage \newpage
\section*{Список литературы} \section*{Список литературы}