Проект модели "охота волка на зайца"

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

Рубрика Программирование, компьютеры и кибернетика
Вид краткое изложение
Язык русский
Дата добавления 02.06.2014
Размер файла 61,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

Введение

Часто возникает задача преследования хищником жертвы. Погоня полицейских за нарушителем, охота волка на зайца, уничтожение воздушных целей наземным оборудованием. У каждого из участников этого процесса свои цели и возникает вопрос об их методе достижения цели: как вести себя жертве, как действовать хищнику.

Данная модель была спроектирована на компьютере.

Название модели: охота волка на зайца.

Цель зайца: убежать от волка.

Средство достижения цели:

Первая тактика - один раз выбирает направление движения и придерживается его.

Вторая тактика - каждые n-шагов меняет направление движения (маневрирует).

Цель волка: догнать (поймать) зайца.

Средство достижения цели:

Первая тактика - погоня в след зайцу (маневрирует заяц, волк вслед повторяет маневры).

Вторая тактика - упреждение.

Предметная модель

Опишем здесь основные особенности поведения участников погони, взяв за основу пару «волк - заяц».

• Заяц - жертва. Цель: прожить как можно дольше.

• Волк - хищник. Цель: догнать зайца.

Упущения в спроектированной нами модели:

• Заяц - не устает, не нуждается в еде, воде и отдыхе.

• Препятствий на пути зайца нет.

• Заяц бежит до тех пор, пока не спасется, или не будет пойман.

• Волк - не устает, не нуждается в еде, воде и отдыхе.

• Препятствий на пути волка нет.

• Волк охотится до тех пор, пока не поймает зайца, или упустит его.

Математическая модель

Реализовано векторное движение участников погони.

Рассмотрим самый простой сценарий:

Тактика зайца - выбор одного направления движения. Тактика волка - погоня след. модель математический программирование тактика

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

Стартовые координаты зайца известны x=100, y=100.

Происходит расчет псевдослучайного направления (fi) и вычисляются конечные координаты нахождения зайца.

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

• Вычисляем косинус псевдослучайного направления (fi), умножаем на скорость движения зайца (единица) и суммируем с текущей координатой зайца (x).

• Вычисляем синус псевдослучайного направления (fi), умножаем на скорость движения зайца (единица) и суммируем с текущей координатой зайца (y).

Затем вычисляем единичный вектор:

• Находим длины векторов. Из координат конца, вычитаем координаты начала. (Конечные и текущие координаты зайца). Справка: (под длинами векторов имеется ввиду вектор по x и вектор по y - мы получаем два единичных вектора в итоге).

• Находим длину отрезка по формуле Пифагора. (Конечные и текущие координаты зайца).

• Делим соответствующие длины векторов на длину отрезка.

В движении волка различие только в вычислении единичного вектора.

• Длина единичного отрезка зайца умножается на коэффициент скорости волка.

• Вычисление длин векторов движения волка (конечные координаты есть текущие координаты зайца, а началом тут будут текущие координаты волка). Справка: (под длинами векторов имеется ввиду вектор по x и вектор по y - мы получаем два единичных вектора в итоге).

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

• Перемножаем результаты 1 и 2 пунктов и делим на результат 3 пункта.

Практическая часть

Язык программирования, на котором построена модель: PascalABC (бесплатная среда программирования).

Описание некоторых подпрограмм:

1. Подпрограмма выбора псевдослучайного направления:

Используется формула перевода из градусов в радианы (Pi*(135-random(180))/180). Получаем из этой формулы направление из левого верхнего угла, в правый нижний угол.

Затем к текущим координатам прибавляем косинус (радианы) к x, синус (радианы) к y. Получаем координаты следующей точки. Затем высчитываем единичный вектор, после чего получаем псевдослучайное направление.

Наглядное описание двух разных тактик движения зайца:

Красная линия движения зайца, его направление меняется каждые 20 шагов (допустимо и другое кол-ва шагов изменения направления).

Наглядно показан один выбор направления данного курса. (Красная линия).

2. Другая подпрограмма отвечает за движение волка:

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

Формула определения одной из координат волка: единичные вектор зайца умножается на коэффициент скорости волка, затем умножаем на длину вектора расстояния (разность координат зайца и волка), деленное на длину отрезка.

В упреждение вместо текущих координат зайца, подставляется просчитанная спустя время координата точки.

Движение волка на упреждение можно видеть на прошлых иллюстрациях (синяя линия). В обоих случаях тактика упреждения.

Условие выхода из программы: если расстояние между зайцем и волком меньше единичного отрезка волка, то происходит выход из программы.

Все остальное в программе занимает интерфейс, а также стартовые данные.

Еще несколько изменяемых величин: стартовое расстояние между волком и зайцем (стоит 100 условных единиц по умолчанию), а также коэффициент скорости волка (по умолчанию 1.2).

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

1. Подпрограмма, отвечающая за обрисовку треугольника. Иллюстрация:

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

2. Подпрограмма, отвечающая за выбор трех случайных стартовых точки волка (из них выбирается одна).

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

3. Подпрограмма вычисления длин перпендикуляров (нужно для выбора короткого пути спасения зайца). Это формула Пифагора.

4. Подпрограмма определения вхождения точки в область треугольника.

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

Все остальное интерфейс.

Заключение

В результате проведенных экспериментов удалось установить, что тактика жертвы, основанная на беспорядочном метании (это часто можно наблюдать в живой природе) не оправдана. В этом случае хищник догоняет жертву быстрее примерно на 20%-30% по сравнению с простым прямолинейным убеганием.

В дальнейшем предполагается изучить особенность погони на местности с препятствиями и укрытиями для жертвы. Можно предположить, что в этом случае тактика, основанная на беспорядочном метании жертвы, принесет больше пользы последней. Также предполагается провести исследование различных тактик в поведении хищника, например вариант с погоней, основанной на упреждении.

Размещено на Allbest.ru

...

Подобные документы

  • Структура математической модели линейной задачи, алгоритм симплекс-метода. Разработка программы: выбор языка программирования, входные и выходные данные, пользовательский интерфейс. Описание программы по листингу, тестирование, инструкция по применению.

    курсовая работа [1,2 M], добавлен 31.05.2013

  • Специфика работы терапевтического отделения. Разработка имитационной модели в среде AnyLogic. Выбор средств моделирования. Описание схемы моделирующего алгоритма. Организация вычислительного эксперимента над математической моделью, анализ его результатов.

    курсовая работа [1,2 M], добавлен 10.06.2015

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

    курсовая работа [100,0 K], добавлен 31.10.2014

  • Понятие математической модели, свойства и классификация. Характеристика элементов системы Mathcad. Алгоритмический анализ задачи: описание математической модели, графическая схема алгоритма. Реализация базовой модели и описание исследований MathCAD.

    реферат [1,0 M], добавлен 20.03.2014

  • Метод решения математической модели на примере решения задач аналитической геометрии. Описание согласно заданному варианту методов решения задачи. Разработка математической модели на основе описанных методов. Параметры окружности минимального радиуса.

    лабораторная работа [310,6 K], добавлен 13.02.2009

  • Разработка математической модели системы. Моделирование работы конвейера сборочного цеха в течении 8 часов. Определение вероятности пропуска секции. Расчет количества скомплектованных изделий за 8 часов. Исследование системы на имитационной модели.

    контрольная работа [98,3 K], добавлен 24.09.2014

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

    курсовая работа [79,2 K], добавлен 25.06.2011

  • Описание языков программирования высокого уровня. Стандартные структуры данных, обзор принципов структурного программирования. Построение математической модели и выбор структуры данных для решения задачи. Тестирование и отладка программного кода.

    курсовая работа [1,3 M], добавлен 05.12.2020

  • Разработка концептуальной (инфологической) модели, выбор языка и среды программирования. Разработка блок-схемы алгоритмов для отдельных подпрограмм. Пользовательский интерфейс автоматизированной системы. Требования к клиентскому программному обеспечению.

    дипломная работа [2,4 M], добавлен 10.07.2017

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

    курсовая работа [564,9 K], добавлен 26.09.2014

  • Создание математической модели системы массового обслуживания на примере банка. Разработка имитационной модели на языке программирования С++. Блок-схема программы, перевод модели на язык программирования. Верификация и валидация имитационной модели.

    курсовая работа [630,5 K], добавлен 01.06.2015

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

    курсовая работа [1,4 M], добавлен 25.02.2015

  • Сложность построения модели "черный ящик" структуры OSI, описание входов и выходов. Графическое изображение модели структуры системы "OSI", уровни средств взаимодействия: физический, канальный, транспортный и сетевой, представительный и прикладной.

    курсовая работа [1,0 M], добавлен 11.01.2016

  • Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.

    курсовая работа [19,5 K], добавлен 19.05.2011

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

    дипломная работа [4,8 M], добавлен 29.06.2012

  • Описание сервиса электронного кафе и определение основных требований к системе. Модели вариантов использования, состояний, последовательности, классов, компонентов и развертывания. Описание алгоритмов, реализующих бизнес-логику серверной части.

    курсовая работа [3,3 M], добавлен 23.12.2014

  • Понятие материального и идеального моделирования. Разработка модели экономического предприятия компьютерного клуба "GaMeR" для подсчета рентабельности. Выбор языка программирования Delphi, его преимущества и особенности. Описание листинга программы.

    курсовая работа [166,7 K], добавлен 11.03.2014

  • Обоснование и выбор методологии проектирования, структурной схемы системы и разработки модели системы. Разработка сетевого плана выполнения работ, расчет технических характеристик. Описание выбора языка программирования, web–сервера и базы данных MySQL.

    дипломная работа [719,0 K], добавлен 20.09.2013

  • Инфологическая и даталогическая модели данных. Описание пользовательской части и используемых sql-запросов. Физическая и логическая модель web-приложения. Описание используемых программных средств, языка программирования и информационных технологий.

    курсовая работа [1,3 M], добавлен 29.04.2015

  • Анализ современного состояния общей проблемы синтеза моделей многофакторного оценивания и подходов к ее решению. Разработка математической модели метода компараторной идентификации модели многофакторного оценивания. Описание генетического алгоритма.

    дипломная работа [851,7 K], добавлен 11.09.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.