Размещено на http://allbest.ru/
ФГБОУ ВПО МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ, СТАТИСТИКИ И ИНФОРМАТИКИ
Курсовой проект
«Комбинаторные алгоритмы. Поиск кратчайшего пути на графе.»
Дисциплина: «Структуры и алгоритмы компьютерной обработки данных »
Москва 2013
Содержание
Задача о ходе коня
Методы решения
Описание алгоритмов
Итеративная программа
Рекурсивная программа
Генерация перестановок из n элементов
Постановка задачи
Методы решения и описание алгоритмов
Построение эйлерова цикла на графе
Постановка задачи
Методы решения и описания алгоритма
Поиск кратчайшего пути на графе
Постановка задачи
Описание задачи
Программная реализация
Используемая литература
Приложение
Задача о ходе коня
Постановка задачи. Дана доска nxn. Конь, который ходит согласно шахматным правилам, помещается на поле с начальными координатами x0, y0. Нужно покрыть всю доску ходами коня, т.е. вычислить обход доски, если он существует, такой, что каждое поле посещается ровно один раз.
Методы решения
Метод Эйлера
Метод Эйлера состоит в том, что сначала конь двигается по произвольному маршруту, пока не исчерпает все возможные ходы. Затем оставшиеся не пройденными клетки добавляются в сделанный маршрут, после специальной перестановки его элементов.
Метод Вандермонда
Вандермонд попытался свести задачу к арифметической. Для этого он обозначал маршрут коня по доске в виде последовательности дробей x/y , где x и y — координаты поля на доске. Очевидно, что в последовательности дробей, соответствующей ходам коня, разность числителей двух соседних дробей может быть только 1 или 2, при том, что разность их знаменателей составляет соответственно 2 или 1. Кроме того, числитель и знаменатель не могут быть меньше 1 и больше 8.
Его метод нахождения подходящей последовательности аналогичен методу Эйлера, но позволяет находить маршруты коня только для досок чётной размерности.
Правило Варнсдорфа
Правило Варнсдорфа, являющееся разновидностью жадного алгоритма для отыскания маршрута коня, формулируется так: При обходе доски конь следует на то поле, с которого можно пойти на минимальное число ещё не пройденных полей. Если таких полей несколько, то можно пойти на любое из них. Долгое время считалось, что правило Варнсдорфа работает безукоризненно. Позднее с помощью компьютеров была установлена неточность во второй его части: если существует несколько подходящих полей, то не все они равноценны, и произвольный выбор поля может завести коня в тупик. На практике однако вероятность попадания в тупик невелика даже при вольном пользовании второй частью правила Варнсдорфа.
Со времен Эйлера известен так называемый "раздельный ход коня"; который заключается в нахождении пути по одной половине доски, его симметричном дублировании и соединении обеих путей вместе(рис.1) .
Многие решения опираются на создание симметричного маршрута, пример одного из них на рисунке 2.
Если говорить о графиках маршрутов коня, то здесь придумано множество необычных решений, изображающих различные предметы, буквы или знаки (известен даже график, посвященный Наполеону). Два достопримечательных примера такого рода приведены ниже. График одного маршрута (он является замкнутым) напоминает собой вазу, а график другого подобен цветку, части которого расположены в высшей степени симметрично( см. рис.3 и 4)
Do'stlaringiz bilan baham: |