Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АКП_ответы.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.41 Mб
Скачать

22. Основные этапы построения алгоритма. Сущность алгоритма решения задачи на графах.

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

Основные этапы разработки алгоритма

  1. Определение операций выполнения преобразований исходного графа в граф результата.

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

  1. Выбор способа представления графа и его представления в памяти ЭВМ, т.е. структур данных.

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

  1. Конструирование или выбор решающих правил, обеспечивающих удовлетворение оценочной функции.

Осуществляется исходя из критериев оценки оптимальности решения.

  1. Анализ возможных способов решения задачи и выбор или модификация приемлемого.

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

  1. Разработка алгоритмической модели процесса решения задачи.

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

  1. Доказательство точности алгоритма оценка погрешности разработанного алгоритма.

  2. Оценка вычислительной и емкостной сложности.

  3. Детальная проработка алгоритма.

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

- использование рекуррентных процедур для определения состава таких множеств некоторых объектов, состав которых в результате преобразований меняется частично

- применение рекуррентных формул или процедур для определения новых критериев и оценочных функций

- исключение повторного расчета значений критериев / оценочных функций для тех подмножеств, для которых они не меняются

- заблаговременное исключение вариантов решений, не отвечающих ограничениям задачи

Сущность алгоритма решения задачи на графах

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

Т.к. теория графов оперирует с множествами (следует из определения графа: «Графом называется объект, состоящий из двух множеств, между элементами которых задан набор отношений»), то при формализации используются основные операции теории множеств, такие как:

  • операции отношения (принадлежность, равенство, объединение …),

  • двуместные отношения множеств (бинарное отношение, однозначное отображение, многозначное отображение, взаимнооднозначное соответствие, отношение эквивалентности, образ многозначного отображения элемента, упорядочивание множеств),

  • основные операции математической логики,

  • элементарные операции над графами:

- удаление вершины

- удаление ребра

- добавление вершины и инцендентного ему ребра

- добавление вершины в гиперграф

- добавление ребра

- свертка вершин

- свертка ребра инцендентного вершинам

- подразбиение ребра инцендентного вершинам