Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Локализация точки / Локализация точки.doc
Скачиваний:
94
Добавлен:
01.05.2014
Размер:
16.82 Mб
Скачать
  1. Реализация алгоритмов

    1. Требования к реализации алгоритмов

Ниже описаны требования к разрабатываемой программе разработанные в ходе НИРС для выполнения курса лабораторных работ по дисциплине «Комбинаторные алгоритмы».

Входные/выходные данные:

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

Требования к входным данным:

  • Чтение и сохранение в файле;

  • Генерация по определенному набору параметров;

  • Анализ корректности;

  • Ввод и редактирование в интерактивном режиме.

Выходными данными являются: графическое представление исходных данных, структур данных, и проделанной обработки над ними, на любом шаге работы алгоритма.

Функционирование программы:

  • Возможность выполнения алгоритма в трех следующих режимах:

  1. Автоматическом (отображение конечного шага работы алгоритма, без визуализации промежуточных)

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

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

  • Наличие двух режимов функционирования программы:

  1. Ввод и редактирование исходных данных

  2. Выполнение алгоритма (включает в себя выполнение предобработки и непосредственно обработки запроса);

  • Визуализация исходных и выходных данных:

  • Вывод текстовой подсказки по выполнению основных действий программы;

Интерфейс

Интерфейс программы должен удовлетворять следующему списку требований:

  • MDI;

  • наличие меню;

  • наличие панели управления;

  • наличие строки состояния;

  • наличие “холста”; допускается использование разделителя;

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

В соответствии с этими требованиями была спроектирована и реализована обучающая программа (PointLocation), которая позволяет:

  1. Проводить сравнительное исследование вышеизложенных методов;

  2. Визуализировать работу алгоритмов.

    1. Сравнительное исследование методов локализации

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

  1. Выбор исследуемых алгоритмов;

  2. Определение параметров генерации (количество и размер ППЛГ, а также количество пробных точек);

  3. Генерация ППЛГ и пробных точек;

  4. Непосредственно фиксация затрат времени того или иного метода на предобработку и ответ на запрос;

  5. Представление результатов в виде графиков.

Теперь обсудим более подробно вопрос генерации ППЛГ. Задача состоит в получении ППЛГ общего вида с заданным числом вершин.

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

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

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

Попробуем несколько улучшить наш алгоритм, сократив число просматриваемых ребер при установлении пересечения. Для этого наложим на ребра следующее ограничение: любое ребро может пересекать не болееполос, где- это целое число, являющееся параметром алгоритма генерации. Под полосой будем понимать интервал ординат между двумя вершинами, внутри которого нет ни одной вершины ППЛГ(см. рис.3.1).

Рис.3.1. Ребра e1 иe2 пересекают две и одну полосу соответственно.

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

Рис.3.2. Зависимость времени генерации ППЛГ от количества вершин.

Рис.3.3. Пример сгенерированного ППЛГ (алгоритм с модификацией)

Рис.3.4. Пример выполненного машинного эксперимента с использованием программы PointLocation.

Соседние файлы в папке Локализация точки