Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 1.doc
Скачиваний:
6
Добавлен:
18.04.2019
Размер:
1.01 Mб
Скачать

1.9 Методы доказательства корректности алгоритмов.

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

II. Корректность теоретически обусловленных алгоритмов гарантируется формальным доказательством.

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

  1. Конструирование алгоритмов. Новый алгоритм получают комбинированием уже известных алгоритм как составных частей.

  2. Метод эквивалентных преобразований алгоритма. Два алгоритма считаются эквивалентными, если:

    • всякий вариант исходных данных, допустимый для одного алгоритма, также допустим и для другого;

    • применимость одного алгоритма к каким-либо исходным данным гарантирует, что и другой алгоритм тоже к ним применим;

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

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

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

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

  2. Применение формального метода к нематематической проблеме, существующей в какой-либо предметной области.

Запись проблемы на математическом языке позволяет:

  • определить, существует ли в математике готовый алгоритм решения задачи того же класса;

  • разработать теоретически обусловленный корректный алгоритм.

Комментарии:

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

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

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

  4. Корректность алгоритма, полученного в результате формализации проблемы, выясняется либо теми же способами, что и для эмпирических алгоритмов, либо:

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

    2. доказательством корректности алгоритма решения математической задачи.

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