Заключение
This commit is contained in:
@@ -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*{Список литературы}
|
||||||
|
|||||||
Reference in New Issue
Block a user