Точность алгоритма. Докажите, что алгоритм Прима является точным
Характеристиками алгоритма являются его точность и временная (вычислительная) сложность и емкостная сложность. Эти характеристики используются не только для сравнительной оценки и выбора алгоритма из нескольких возможных, но и для выбора более эффективных преобразований модели исходного описания объекта в модель результата, а также разборе и возможном синтезе структур данных, позволяющих снизить вычислительную сложность алгоритма. Доказательство точности алгоритма либо оценка погрешности – фундаментальная и наиболее сложная проблема теории алгоритмов. Алгоритм называется точным, если на всех допустимых наборах входных данных задачи, он обеспечивает получение оптимального решения. Существует несколько подходов к доказательству и оценке точности: 1. Первый подход заключается в получении решения задачи для специально сконструированных наборов входных данных и сравнении результатов с полученными заранее точными решениями. Но правомерность такого заключения о точности алгоритма, как правило, экспериментально доказать это невозможно, а теоретическое доказательство – специальная и весьма сложная задача. 2. Второй подход ориентирован на установление факта, что не существует такого набора входных данных, для которого А(Di) opt. Хотя в принципе подходы логически равнозначны, но они различаются по методам и возможностям доказательства. Оба этих подхода неконструктивны, так как не ориентируют разработчика на разработку, а лишь на установление того факта, точный это алгоритм или приближенный. 3. С точки зрения теоретико-множественного преобразования входных данных решение задачи заключается в поэтапном преобразовании графа исходного описания объекта в его часть или в другой граф. Этот подход является наиболее перспективным. Таким образом, алгоритм решения задачи на графах выполняет конечную последовательность операций над ними, возможно полностью или частично повторяющихся. Следовательно, если можно доказать, что действия над графами на каждом шаге их преобразования являются «правильными», т.е. единственно возможными с точки зрения получения оптимального решения, независимо от набора входных данных, то будет доказано, что алгоритм – точный. Для того чтобы выбрать и осуществить правильное преобразование графов, обеспечивающее разработку точного алгоритма, необходимо знать возможные операции над графом и математические свойства графов объекта и результатов проектирования. Т.о. при разработке алгоритма надо не только выбрать метод, на котором он будет основан, но и глубоко изучить математические свойства графов и тщательно проанализировать операции и весь процесс преобразования. Рассмотрим изложенный подход на примере доказательства точности алгоритма Прима построения минимального остовного дерева (МОД). Как правило, моделью исходного описания объекта является неориентированный взвешенный полный граф. Содержательное описание алгоритма: 1. Выбираем ребро минимального веса. 2. Среди ребер, инцидентных вершинам построенного поддерева, ищется имеющее минимальный вес, причем это ребро не должно образовывать циклов. Этот шаг повторяется до тех пор, пока не будут соединены все вершины. Доказательство точности алгоритма Прима основано на использовании операций добавления и удаления рёбер и свойствах графа-результата – остовного дерева: 1. Дерево – это связный граф без циклов. 2. Добавление в некоторое остовное дерево нового ребра при количестве его ребер ≥ 2 приводит к возникновению ровно одного цикла.
|