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

8

Министерство образования и науки Украины

Севастопольский национальный технический университет

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к выполнению лабораторной работы

«Сравнительный анализ эффективности

нерекурсивных алгоритмов»

по дисциплине «Алгоритмизация и формальные преобразования»

для студентов направления подготовки

«Компьютерная инженерия»

дневной формы обучения

Севастополь

2014

УДК 004.421

Методические указания «Сравнительный анализ эффективности нерекурсивных алгоритмов» составлены для студентов дневной формы обучения специальности 7.091501  «Компьютерные системы и сети», изучающих дисциплину «Алгоритмизация и формальные преобразования».

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

Методические указания утверждены на заседании кафедры кибернетики и вычислительной техники, протокол № от . 2013 г.

Рецензент: д.т.н., проф. кафедры кибернетики и вычислительной техники Апраксин Ю.К.

Содержание

Введение

3

1

Некоторые теоретические сведения

3

2

Задание № 1. Разработка программы оценивания средней трудоемкости произвольного алгоритма методом марковских цепей

6

3

Задание № 2. Исследование эффективности равносильных алгоритмов

6

4

Примеры решения типовых задач

7

5

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

8

Библиографический список

8

Введение

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

Номер варианта индивидуального задания для выполнения лабораторной работы соответствует номеру фамилии студента в списке учебной группы. Отчёт о выполнении работы должен быть выполнен аккуратно, желательно в виде компьютерного набора. Однако не запрещается выполнять рисунки и схемы вручную, но обязательно с использованием линейки. Работы, выполненные небрежно или не для своего варианта задания будут возвращены без проверки!!!

Для выполнения исследований допускается использование любых средств автоматизации вычислений (могут быть использованы любые пакеты прикладных программ, например, MATLAB). Соответствующие листинги должны быть внедрены в текст отчёта как «объект» с дополнительными пояснениями. На титульном листе обязательно должен присутствовать номер выполняемого варианта.

Отчёт о выполнении работы должен включать следующие разделы:

  1. Содержание.

  2. Задание №1. Программа оценки средней трудоёмкости произвольного алгоритма методом марковских цепей.

    1. Постановка задачи.

    2. Структура входных данных.

2.3. Результаты экспериментальной оценка средней трудоёмкости алгоритма в зависимости от размера экземпляра задачи.

  1. Задание №2. Исследование эффективности равносильных алгоритмов.

    1. Постановка задачи.

3.2. Структуры входных данных для исследуемых равносильных алгоритмов.

    1. Результаты экспериментальной оценка средних трудоёмкостей равносильных алгоритмов в зависимости от размера экземпляра задачи.

    2. Асимптотические оценки эффективности исследуемых алгоритмов.

  1. Анализ полученных результатов.

  2. Приложение.

  1. Некоторые теоретические сведения. Асимптотические обозначения и основные классы эффективности алгоритмов

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

Для того чтобы можно было сравнивать между собой эти порядки роста и классифицировать их, вводятся три условных обозначения: О (прописная «О»),  (прописная греческая «тета») и  (прописная греческая «омега»). В дальнейшем количество базовых операций будем обозначать как t(n). Некоторую простую функцию, с которой будет производиться сравнение количества операций, будем обозначать g(n).

О-обозначение

Определение 1.

Говорят, что функция t(n) принадлежит множеству О(g(n)), что записывается как t(n) О(g(n)), если для всех больших значений n функция t(n) ограничена сверху некоторой константой, умноженной на значение функции g(n), то есть существует положительная константа С и неотрицательное число n0 такое, что t(n) Сg(n) для всех n n0.

Это определение проиллюстрировано на рисунке 1.

-обозначение

Определение 2.

Говорят, что функция t(n) принадлежит множеству (g(n)), что записывается как t(n)(g(n)), если для всех больших значений n функция t(n) ограничена снизу некоторой константой, умноженной на значение функции g(n), то есть существует положительная константа С и неотрицательное число n0 такое, что t(n)Сg(n) для всех n n0.

Это определение проиллюстрировано на рисунке 2.

-обозначение

Определение 3.

Говорят, что функция t(n) принадлежит множеству (g(n)), что записывается как t(n)(g(n)), если для всех больших значений n функция t(n) ограничена снизу и сверху некоторыми константами, умноженными на значение функции g(n), то есть существуют положительные константы С1 и С2, а также неотрицательное число n0 такое, что С2g(n) t(n) С1g(n) для всех n n0.

Это определение проиллюстрировано на рисунке 1.3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]