Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ч 2 Полное построение алгоритма.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
104 Кб
Скачать
☆

Подготовка документации.

Самое главное - оформлять в том виде, в котором хотелось бы читать.

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

  2. Описать план алгоритма «сверху – вниз».

  3. Описать форматы данных и требования к вводу - выводу.

Примеры.

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

  1. Указать условия функционирования и ограничения. Указать также, в каких случаях программа работает, а в каких не работает или работает плохо.

  2. Привести доказательство правильности функционирования алгоритма.

  3. Приложить описание тестовых примеров и результаты тестирования.

  4. Описать порядок настройки программы на конкретные условия функционирования.

Ниже приводится описание алгоритма генератора перестановок.

Генератор перестановок. (Без доказательства)

  1. Располагаем исходную перестановку в порядке убывания. (n … 321)

  2. Находим наименьший индекс i, i{2..n},при котором ai-1>ai

  3. Находим наименьший индекс j, j{1,2,…i-1},при котором aj>ai

  4. Меняем местами aj и ai

  5. Вычислим k=[i-1/2]. Если к=0, то ничего не делаем. Если к0, то меняем местами компоненты в парах: (a1,ai-1), (a2,ai-2), … , (ak,ai-k).

  6. Выводим перестановку и если она больше чем 123 … n, то возвращаемся к шагу 2. (или завести счетчик перестановок, он должен быть равен n!)

Пример

1) 321 i=2, k=0

2) 231 i=3, k=1

132

3) 312 i=2, k=0

4) 132 i=3, k=1

123

5) 213 i=2, k=0

6) 123

Задание к практической работе:

  1. Решение задачи коммивояжера: Программирование исчерпывающего алгоритма для задачи коммивояжера. Указание:

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

  3. Докажите, что если матрица стоимостей в задаче коммивояжера с n городами симметрична, то число разных по стоимости путей (гамильтоновых циклов) равно (n-1)!/2