Автор: Пользователь скрыл имя, 24 Ноября 2012 в 20:21, курсовая работа
Клеточный автомат – дискретная динамическая система, представляющая собой совокупность одинаковых клеток, одинаково соединенных между собой. Пространство, время и состояние этой системы дискретны. Все клетки образуют так называемую решетку клеточного автомата. Эти решетки могут быть разных типов и отличаться как по размерности, так и по форме клеток.
Введение 6
1. Постановка и анализ задачи 7
1.1. Постановка задачи 7
1.2. Анализ задачи 7
2. Процесс проектирования 8
2.1. Диаграмма вариантов использования 8
2.2. Диаграмма деятельности 9
3. Описание реализации 10
4. Тестирование программы 11
Заключение 14
Список литературы 15
Министерство образование и науки Российской Федерации
Государственное Образовательное Учреждение Высшего Профессионального Образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра компьютерных систем в управлении и проектировании (КСУП)
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
на курсовую работу по дисциплине
«Интеллектуальные Подсистемы САПР»
Тема: «Двумерная диффузия»
Выполнил:
Студент гр.588 –2
______
Проверил:
Томск – 2012
РЕФЕРАТ
Пояснительная записка: 15 страниц, 7 рисунков, 1 Таблица, 4 источника.
Ключевые слова: двумерный клеточный автомат, клеточный автомат на разбиение, диффузия.
Целью данной курсовой работы является создание двумерного клеточного автомата, моделирующего процесс диффузии.
Результатами работы являются программа, представляющая собой exe файл. В программе должны быть реализованы графический интерфейс, возможности управления процессом.
Программа написана в среде разработки Microsoft Visual Studio 2010, пояснительная записка выполнена в текстовом редакторе Microsoft Office Word 2010.
Министерство образования и науки Российской Федерации
Государственное Образовательное Учреждение Высшего Профессионального Образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра компьютерных систем в управлении и проектировании (КСУП)
Утверждаю
Зав. кафедрой КСУП
_________ Ю.А.
«____»____________2012
ЗАДАНИЕ
на курсовую работу по дисциплине «Интеллектуальные Подсистемы САПР»
Студенту гр.
Тема: Двумерная диффузия.
Смоделировать процесс отображающий работу простой двумерной диффузии.
Функциональные требования:
Требования к реализации:
Руководитель:
доцент каф. КСУП
_____________________
Задание принял к исполнению:.________________
Введение 6
1. Постановка и анализ задачи 7
1.1. Постановка задачи 7
1.2. Анализ задачи 7
2. Процесс проектирования 8
2.1. Диаграмма вариантов использования 8
2.2. Диаграмма деятельности 9
3. Описание реализации 10
4. Тестирование программы 11
Заключение 14
Список литературы 15
Введение
Клеточный автомат – дискретная динамическая система, представляющая собой совокупность одинаковых клеток, одинаково соединенных между собой. Пространство, время и состояние этой системы дискретны. Все клетки образуют так называемую решетку клеточного автомата. Эти решетки могут быть разных типов и отличаться как по размерности, так и по форме клеток. Каждая точка в регулярной пространственной решетке, называемая клеткой, может иметь какое-нибудь состояние (выбранное из конечного множества). Это конечный автомат, состояние которого определяется состояниями соседних клеток и, возможно, ее собственным. В клеточных автоматах, как в моделях вычислений, не рассматриваются входные и выходные воздействия. При аппаратной реализации клеточные автоматы обычно называют однородными структурами. В общем случае клеточные автоматы обладают следующими свойствами:
Множество состояний клетки конечно. Клеточные автоматы ввел в конце сороковых годов Джон фон Нейман. Следуя идее Станислава Улама, для того чтобы обеспечить более реалистические модели поведения сложных, пространственно протяженных систем в клеточном автомате и объекты, которые могут быть интерпретированы как пассивные данные, и объекты, которые могут быть интерпретированы как вычислительные устройства, собираются из одного типа структурных элементов и подчиняются одним и тем же «мелкозернистым» законам. Вычисление и конструирование являются просто двумя возможными типами активности.
В соответствии с техническим заданием требуется реализовать программу, имитирующую процесс диффузии.
Задачей курсовой работы является:
- создание пользовательского интерфейса;
- создание механизма, имитирующего процесс диффузии.
Для решения задачи диффузии нужно использовать клеточный автомат на разбиение. Для этого решетку клеток разобьем на множество блоков. Для каждого из блоков будем задавать правило, рассматривающее и обновляющее содержимое всего блока. Именно блока, а не отдельной клетки, как в конечном клеточном автомате. Одно и то же правило применяются ко всем блокам. Также отметим, что нет обмена информации между двумя соседними блоками, и блоки не перекрываются. Разбиение меняют на каждом шаге, чтобы было некоторое перекрытие блоков, используемых на соседних шагах. Если бы мы использовали одно и то же разбиение на каждом шаге, то клеточный автомат оказался бы разбит на совокупность независимых подсистем. Таким образом, можно сказать, что клеточный автомат на разбиение является частным случаем обычного клеточного автомата, при подходящем выборе большого числа состояний и соседей.
В нашей задаче клетка бывает двух видов:
Для нашей задачи, мы будем использовать простейшую схему разбиения Марголуса. Для этого:
При разбиении, если на решетке попадается клетка черного цвета диффундирующего вещества, то на одном шаге она должна обменяться местами с какой-то белой клеткой. Смену положения клетки будем производить поворотом по часовой и против часовой стрелки, но решение о том, как мы будем поворачивать блок будет определяться случайно.
Процесс проектирования может быть представлен в виде:
Диаграммы вариантов использования описывают взаимоотношения и зависимости между группами вариантов использования и действующих лиц, участвующими в процессе (рисунок 2.1).
Рисунок 2.1 – UML диаграмма вариантов использования.
Диаграмма деятельности, Activity diagram — диаграмма, на которой показано разложение некоторой деятельности на её составные части. На рисунке 2.2 представлена диаграмма деятельности для разрабатываемой программы.
Рисунок 2.2 – UML диаграмма деятельности.
В данном курсовом проекте программа реализована в одном классе, потому что в основном использовались встроенные функции для работы с рисованием на форме. Поэтому в описание реализации входит описание методов класса «diffusion».
Таблица 3.1 – Описание методов класса «diffusion».
Методы класса diffusion |
Описание методов |
diffusion() |
Конструктор без параметров.
Создает экземпляр данного |
Init() |
Метод, производящий инициализацию поля, заполняющий поле частицами. |
_Update() |
Метод, рисующий поле, его графическую часть. Белую область. Область диффузии и др. А также метод служит для обновления или перерисовки поля после перемещения частиц. |
DiffStep() |
Метод, рассчитывающий шаги диффузии. Метод проходит по всему полю, просчитывает возможные варианты ходов и случайным образом выбирает текущий ход, который тут же выполняется и перерисовывается наш рисунок с помощью метода _Update(). |
StartButton_Click() |
Метод обработчик событий нажатой клавиши «Начать». Метод запускает инициализацию поля, получает и проверяет все необходимые данные для диффузии, а также запускает таймер. Т.е. в целом метод запускает всю работу программы моделирования процесса диффузии. |
Stop_Click() |
Метод обработчик событий
нажатой клавиши «Стоп». Метод
останавливает моделирование |
DPercent_Leave() |
Метод проверяет корректность введенного значения вероятности проникновения. |
Steps_Leave() |
Метод проверяет корректность введенного значения количество шагов диффузии. |
Time_Tick() |
Метод производит проверку количества шагов и останавливает таймер по достижению нужного количества. Также метод вызывает описанный выше метод DiffStep(). |
Тестирование проводилось на ЭВМ с процессором Intel® Pentium Dual с частотой работы 2,00 ГГц и оперативной памятью 2 Гб.
Отображение объектов происходит корректно. Все элементы управления работают, так как и было запланировано. На рисунке 4.1 показан пользовательский интерфейс программы.
Рисунок 4.1 – Пользовательский интерфейс
Рисунки 4.2-4.6 показывают как работает программа, при различных заданных значениях вероятности проникновения в среду.
Рисунок 4.2 – Пример диффузии при вероятности проникновения 1% и количестве шагов 777.
Рисунок 4.3 – Пример диффузии при вероятности проникновения 0 и количестве шагов 50.
Рисунок 4.4 – Пример диффузии при вероятности проникновения 100 и количестве шагов 1000.
Также при тестировании графического интерфейса было выявлено, что
Рисунок 4.5 – Пример диффузии
со 100% вероятностью на шаге в 15000.
Заключение
В результате курсовой работы реализовано приложение, моделирующее процесс двумерной диффузии.
Тестирование приложения показало, что все функции программы выполняются корректно.
В результате разработки данного курсового проекта были закреплены теоретические и практические знания, использования двумерных клеточных автоматов.
Дальнейшее развитие данной программы может состоять в: