Практическая работа №5 «Построение графов алгоритмов, определение сложности алгоритмов» — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Практическая работа №5 «Построение графов алгоритмов, определение сложности алгоритмов»

2017-11-16 656
Практическая работа №5 «Построение графов алгоритмов, определение сложности алгоритмов» 0.00 из 5.00 0 оценок
Заказать работу

Цель: Формирование умений и навыков по представлению алгоритмов в виде управляющего графа.

 

Задачи:

5. научиться строить управляющие графы

6. научиться определять сложность алгоритма по управляющему графу.

 

Оснащение урока:

· Техническое: ПК, сканер, принтер, интерактивная доска

· Методическое: инструкционная карта, задание для самостоятельного выполнения

· Программное: Windows XP, Microsoft Office 2007.

Теоретические сведения: С целью анализа алгоритм (программу) удобно представлять управляющим графом (родственное понятие - схема алгоритма).

Рисунок 8 – граф

 

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

Для определения максимальной и минимальной сложность необходимо вычислить вес каждой ветви как сумму весов всех входящих в нее вершин и найти максимальное и минимальное значения по всем ветвям соответственно.

Для определения средней сложности необходимо оценить частоты выбора ветвей.

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

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

Если в программе имеются вложенные ветвления, то можно предложить метод оценки, основанный на оценке частоты, с которой встречаются определенные комбинации входных данных. Рассмотрим его.

 

Ход работы

1. В рабочей тетрадке запишите тему, цель и задачи работы.

2. Приступите к выполнению упражнений.

3. Выполните задание в соответствии с вариантом.

4. Ответьте на контрольные вопросы.

5. Оформите отчет основные определения, рассуждения по решению задач, ответ; вывод по работе

6. Сделайте вывод по работе.

 

Упражнение1 – Управляющий граф содержит 10 вершин с весом {3, 5, 1,4, 3, 4, 6, 8, 5, 3}. Вершина 3 (вес равен 1) соответствует вычислению условия в операторе if; вершины 4, 5, 6 входят в часть then, вершины 7, 8 входят в часть else (рис. 9)

4 3 4 Then 3 5 1   Else 5 3 6 8
 
 
 
 
 
 
 
 
 
 
 

 


Рисунок 9 – Управляющий граф к упражнению 1

 

Решение: имеется две ветви с весом 3+5+1+4+3+4+5+3 = 28 и 3+5+1+6+8+5+3 = 31; сложность равна 31.

Упражнение 2 – Тот же граф, что и в примере 1, но вершина 8 соответствует вызову процедуры, имеющей сложность 2V + 1.

В этом случае функция сложности равна max (28, 2V+24) = 24+max(4, 2V) = 24 + 2 max (2, V).

Для среднего случая, кроме веса ветвей, нужно оценить еще и частоты ветвей. Под частотой ветви понимается отношение числа выполнений программы, при которых исполнялись операторы, принадлежащие данной ветви, к общему числу выполнений программы. Тогда сложность программы будет вычисляться как сумма произведений весов ветвей на их частоты. Если все комбинации исходных данных программы равновероятны, то частоты ветвей можно оценить следующим образом.

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

 

Упражнение 3 - Процедура содержит цикл

for i:= 1 to x do

<тело цикла>,

где x - входная переменная, x [1, 100].

 

Решение: Тело цикла выполняется x раз, худший случай реализуется при x =100.

Если предположить равновероятность различных значений x, то среднее количество выполнений тела цикла равно (1/100)(1+2+3+...+100) = 50,5.

 

Упражнение 4 - Процедура содержит вложенные циклы:

for i:= 1 to x do

for j:= i to x do

<тело цикла>;

входная переменная xÎ[1, 5].

 

Решение: Тело цикла выполняется x + (x-1)+(х-2)+...+ 1 = x (х+1)/2 раз.

Верхняя граница сложности = max = (x (х+1)/2) = 13.

Среднее значение сложности подсчитать несколько труднее.

Снова положим, что все 5 возможных значений x равновероятны.

Тогда среднее значение сложности равно:

 

Задания для самостоятельного выполнения

Построить управляющий граф и определить сложность алгоритма.

1. Управляющий граф содержит 9 вершин с весом {4, 3, 6, 8, 2, 2, 1, 5, 6}.

Вершина 2 (вес равен 3) соответствует вычислению условия в операторе if; вершины 3, 4, 5 входят в часть then, вершина 6 входят в часть else.

Вершина 8 (вес равен 5) соответствует вычислению условия в операторе if; вершины 9 входят в часть then.

2. Тот же граф, что и в задании 1, но вершина 5 соответствует вызову процедуры, имеющей сложность 3V, а вершина 8 имеет сложность 2V-1.

3. Процедура содержит цикл

for i:= 1 to x do a:= a*(a+1);

 

 

Контрольные вопросы

1. Что называется сложность графа?

2. Что называется управляющим графом?

3. Какие управляющие графы вы знаете?



Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.