Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗКурчанов.docx
Скачиваний:
8
Добавлен:
30.03.2015
Размер:
1.13 Mб
Скачать
  1. Описание алгоритмов

    1. Общие положения

Задается число N – это количество гексагональных фигур по горизонтальной оси X (количество столбцов) и количество гексагональных фигур по вертикальной оси Y (количество рядов).

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

Задается число агентов M, причем число агентов M не может быть больше числа ячеек равного N2.

Агенты M по определенному закону расставляются в ячейках сетки.

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

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

Перемещение агентов продолжается до тех пор, пока пользователь не даст команду остановить моделирование.

    1. Диаграмма классов

Диаграмма классов[1] созданного приложения приведена на рисунке 5.

Описание используемых классов:

  1. MainFrame– класс основного окна программы.

  2. Lattice2DProjection– класс для моделирования на плоскости.

  3. Grid2DPanel– класс, определяющий какая решетка выбрана и вызывающий соответственную панель (SquarePanelилиHexaPanel).

  4. SquarePanel– класс, используемый для моделирования на квадратной решетке.

  5. HexaPanel– класс, используемый для моделирования на гексагональной решетке.

  6. Eater– класс "поедателя сахара". Содержит все свойства и методы, характерные для него.

  7. Sugar– класс "сахар". Содержит все свойства и методы, характерные для него.

  8. AbstractGrid– основной класс грида. Содержит все основные методы для работы с решеткой.

  9. DefaultGrid– класс, с экземпляром которого ведется работа.

  10. GridDimentions– класс, в котором содержатся методы для определения размеров грида.

  11. Simulation– класс, содержащий классы агентов и определяющий в каком порядке рисуются элементы (травы, агенты и т.д).

Рисунок 5 – Диаграмма классов

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

Диаграмма последовательности действий изображена на рисунке 6.

Рисунок 6 – Диаграмма последовательности действий

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

  1. Сообщение классу Lattice2DProjection, что пользователь выбрал моделирование на плоскости.

  2. Создание экземпляра класса Grid2DPanel.

  3. Создание грида заданного размера.

  4. Создание экземпляра класса Simulation.

  5. Создание и добавление экземпляров классов EaterиSugarв грид. Моделирование перемещения.

  6. Отрисовка моделирования на панели HexaPanel.

  1. Описание разработанной системы

    1. Описание программы

Графический интерфейс системы имитационного моделирования SimBiGraphпредставлено на рисунке 7.

Рисунок 7 – Скриншот графического интерфейса СИМ SimBiGraph

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

По нажатии пользователем на кнопку "NewProject" агенты начинают случайное блуждание. Моделирование останавливается по нажатии на кнопку "Stop", возобновляется по нажатию на кнопку "Resume", также можно провести моделирование пошагово, при помощи кнопки "Step".