Двумерная диффузия

Автор: Пользователь скрыл имя, 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

Работа содержит 1 файл

Двумерная диффузия.docx

— 227.66 Кб (Скачать)

Министерство образование  и науки Российской Федерации

Государственное Образовательное  Учреждение Высшего Профессионального  Образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И  РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра компьютерных систем в управлении и проектировании (КСУП)

 

 

 

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

на курсовую работу по дисциплине

«Интеллектуальные Подсистемы САПР»

Тема: «Двумерная диффузия»

 

                                                       

 

 

Выполнил:

Студент гр.588 –2

______

 

Проверил:                                                                                Доцент каф. КСУП                                                                                          _________

 

 

 

 

 

 

 

 

 

Томск – 2012 
РЕФЕРАТ

Пояснительная записка: 15 страниц,  7 рисунков, 1 Таблица, 4 источника.

Ключевые слова: двумерный  клеточный автомат, клеточный автомат на разбиение, диффузия.

Целью данной курсовой работы является создание двумерного клеточного автомата, моделирующего процесс  диффузии.

Результатами работы являются программа, представляющая собой exe файл. В программе должны быть реализованы графический интерфейс, возможности управления процессом.

Программа написана в среде  разработки Microsoft Visual Studio 2010, пояснительная записка выполнена в текстовом редакторе Microsoft Office Word 2010.

 

Министерство образования  и науки Российской Федерации

Государственное Образовательное  Учреждение Высшего Профессионального  Образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И  РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра компьютерных систем в управлении и проектировании (КСУП)

 

 

Утверждаю

Зав. кафедрой КСУП

_________ Ю.А.

«____»____________2012

 

ЗАДАНИЕ

на курсовую работу по дисциплине «Интеллектуальные Подсистемы САПР»

Студенту гр.

Тема: Двумерная диффузия. 

  1. Исходные данные к работе:

Смоделировать процесс отображающий работу простой двумерной диффузии.

  1. Срок сдачи студентом работы: 01.12.2012г.
  2. Требования к программе:

Функциональные  требования:

  • возможность задания количества шагов диффузии;
  • управление воспроизведением процесса диффузии (запуск, остановка);
  • возможность задания вероятности проникновения среды;

Требования к реализации: 

  • приложение реализовать на языке C#.
  •  
  1. Содержание пояснительной записки.
  • титульный лист;
  • реферат;
  • задание на проектирование;
  • содержание;
  • введение;
  • постановка задачи;
  • основная часть;
  • тестирование программы;
  • заключение;
  • список литературы;
  1. Дата выдачи задания: 27.09.2012г.

 

Руководитель:

доцент каф. КСУП

_____________________

Задание принял к исполнению:.___________________

 

Содержание

Введение 6

1. Постановка и анализ задачи 7

1.1. Постановка задачи 7

1.2. Анализ задачи 7

2. Процесс проектирования 8

2.1. Диаграмма вариантов использования 8

2.2. Диаграмма деятельности 9

3. Описание реализации 10

4. Тестирование программы 11

Заключение 14

Список литературы 15

 

Введение

Клеточный автомат – дискретная динамическая система, представляющая собой совокупность одинаковых клеток, одинаково соединенных между  собой. Пространство, время и состояние  этой системы дискретны. Все клетки образуют так называемую решетку  клеточного автомата. Эти решетки  могут быть разных типов и отличаться как по размерности, так и по форме  клеток. Каждая точка в регулярной пространственной решетке, называемая клеткой, может иметь какое-нибудь состояние (выбранное из конечного  множества). Это конечный автомат, состояние  которого определяется состояниями  соседних клеток и, возможно, ее собственным. В клеточных автоматах, как в моделях вычислений, не рассматриваются входные и выходные воздействия. При аппаратной реализации клеточные автоматы обычно называют однородными структурами. В общем случае клеточные автоматы обладают следующими свойствами:

  • изменения значений всех клеток происходят одновременно после вычисления нового состояния каждой клетки решетки;
  • решетка однородна – невозможно различить какие-либо две области решетки по ландшафту;
  • взаимодействия локальны. Лишь клетки окрестности (как правило, соседние) способны повлиять на данную клетку.

Множество состояний клетки конечно. Клеточные автоматы ввел в конце сороковых годов Джон фон Нейман. Следуя идее Станислава Улама, для того чтобы обеспечить более реалистические модели поведения сложных, пространственно протяженных систем в клеточном автомате и объекты, которые могут быть интерпретированы как пассивные данные, и объекты, которые могут быть интерпретированы как вычислительные устройства, собираются из одного типа структурных элементов и подчиняются одним и тем же «мелкозернистым» законам. Вычисление и конструирование являются просто двумя возможными типами активности.

 

  1. Постановка и анализ задачи
    1. Постановка задачи

В соответствии с техническим  заданием требуется реализовать  программу, имитирующую процесс  диффузии.

Задачей курсовой работы является:

- создание пользовательского  интерфейса;

- создание механизма,  имитирующего процесс диффузии.

    1. Анализ задачи

Для решения задачи диффузии нужно использовать клеточный автомат  на разбиение. Для этого решетку  клеток разобьем на множество блоков. Для каждого из блоков будем задавать правило, рассматривающее и обновляющее  содержимое всего блока. Именно блока, а не отдельной клетки, как в  конечном клеточном автомате. Одно и то же правило применяются ко всем блокам. Также отметим, что нет  обмена информации между двумя соседними  блоками, и блоки не перекрываются. Разбиение меняют на каждом шаге, чтобы  было некоторое перекрытие блоков, используемых на соседних шагах. Если бы мы использовали одно и то же разбиение  на каждом шаге, то клеточный автомат оказался бы разбит на совокупность независимых подсистем. Таким образом, можно сказать, что клеточный автомат на разбиение является частным случаем обычного клеточного автомата, при подходящем выборе большого числа состояний и соседей.

В нашей задаче клетка бывает двух видов:

    • Клетка белого цвета;
    • Клетка черного цвета.

Для нашей задачи, мы будем  использовать простейшую схему разбиения  Марголуса. Для этого:

  1. разбиваем решетку на блоки размером 2*2;
  2. шаги, в которых блоки соответствуют четной решетке, чередуются с шагами, использующими нечетную решетку.

При разбиении, если на решетке  попадается клетка черного цвета  диффундирующего вещества, то на одном  шаге она должна обменяться местами  с какой-то белой клеткой. Смену  положения клетки будем производить  поворотом по часовой и против часовой стрелки, но решение о том, как мы будем поворачивать блок будет определяться случайно.

 

  1. Процесс проектирования

Процесс проектирования может  быть представлен в виде:

    • диаграммы вариантов использования (UML Use Case);
    • диаграммы деятельности (Activity Diagram).
    1. Диаграмма вариантов использования

Диаграммы вариантов использования  описывают взаимоотношения и  зависимости между группами вариантов  использования и действующих  лиц, участвующими в процессе (рисунок 2.1).

Рисунок 2.1 – UML диаграмма вариантов использования.

 

    1. Диаграмма деятельности

Диаграмма деятельности, Activity diagram — диаграмма, на которой показано разложение некоторой деятельности на её составные части. На рисунке 2.2 представлена диаграмма деятельности для разрабатываемой программы.

Рисунок 2.2 – UML диаграмма деятельности.

 

  1. Описание реализации

В данном курсовом проекте  программа реализована в одном  классе, потому что в основном использовались встроенные функции для работы с  рисованием на форме. Поэтому в описание реализации входит описание методов  класса «diffusion».

Таблица 3.1 – Описание методов  класса «diffusion».

Методы класса diffusion

Описание методов

diffusion()

Конструктор без параметров. Создает экземпляр данного класса, с параметрами, заданными по умолчанию.

Init()

Метод, производящий инициализацию  поля, заполняющий поле частицами.

_Update()

Метод, рисующий поле, его  графическую часть. Белую область. Область диффузии и др. А также  метод служит для обновления или  перерисовки поля после перемещения  частиц.

DiffStep()

Метод, рассчитывающий шаги диффузии. Метод проходит по всему  полю, просчитывает возможные варианты ходов и случайным образом  выбирает текущий ход, который тут  же выполняется и перерисовывается наш рисунок с помощью метода _Update().

StartButton_Click()

Метод обработчик событий  нажатой клавиши «Начать». Метод  запускает инициализацию поля, получает и проверяет все необходимые  данные для диффузии, а также запускает  таймер. Т.е. в целом метод запускает  всю работу программы моделирования  процесса диффузии.

Stop_Click()

Метод обработчик событий  нажатой клавиши «Стоп». Метод  останавливает моделирование процесса диффузии.

DPercent_Leave()

Метод проверяет корректность введенного значения вероятности проникновения.

Steps_Leave()

Метод проверяет корректность введенного значения количество шагов  диффузии.

Time_Tick()

Метод производит проверку количества шагов и останавливает  таймер по достижению нужного количества. Также метод вызывает описанный  выше метод DiffStep().


 

 

  1. Тестирование программы

Тестирование проводилось  на ЭВМ с процессором 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.

Также при тестировании графического интерфейса было выявлено, что

  1. При вероятности диффузии в 100% и на шаге примерно 15000 темные частицы начинают концентрироваться больше в верхней части экрана, что продемонстрированно на рис. 4.5.
  2. При вероятности проникновения среды равной нулю диффузии не происходит.

Рисунок 4.5 – Пример диффузии со 100% вероятностью на шаге в 15000. 
Заключение

В результате курсовой работы реализовано приложение, моделирующее процесс двумерной диффузии.

Тестирование приложения показало, что все функции программы выполняются корректно.

В результате разработки данного  курсового проекта были закреплены теоретические и практические знания, использования двумерных клеточных автоматов.

Дальнейшее развитие данной программы может состоять в:

  • усовершенствовании пользовательского интерфейса;
  • использовании направленных на графику технологий, таких как OpenGL и DirectX;
  • усовершенствовании алгоритма расчета хода клеток.

 

Список  литературы

  1. В. М. Зюзьков «Синергетика для программистов». Томск, ТУСУР, 2003г.
  2. Тоффоли Т. Марголус Н. «Машины клеточных автоматов» − М:Мир, 1991. − 280с.
  3. Г. Буч, Д. Рамбо «Язык UML Руководство пользователя» Москва, 2004г.
  4. Михаил Фленов «Библия С#», 2-е издание переработанное и дополненное, СПб: БХВ-Петербург, 2011г.

Информация о работе Двумерная диффузия