Лабораторная работа: Оцінка трудомісткості алгоритму

Лабораторная работа: Оцінка трудомісткості алгоритму




⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Міністерство освіти і науки, молоді та спорту України
Тернопільський національний технічний університет ім. І.Пулюя
Кафедра комп’ютерних систем та мереж
на тему Оцінка трудомісткості алгоритму
Частина 1
.
Засвоєння засобів аналізу трудомісткості обчислювальних алгоритмів

Задача, що підлягає вирішенню на ПК, може бути охарактеризована кількістю даних, складністю алгоритму та його трудомісткістю. Під трудомісткістю алгоритму розуміється кількість обчислювальної роботи,необхідної для його реалізації. Трудомісткість характеризує витрати часу для реалізації алгоритму на деякій сукупності технічних засобів. Звичайно, трудомісткість оцінюється кількістю процесорних операцій та операцій введення-виведення. В загальному випадку, трудомісткість алгоритму є випадковою величиною, що залежить від вхідних даних. Тому, трудомісткість алгоритму може бути визначена тільки наближено, в термінах теорії ймовірностей: математичним сподіванням, дисперсією і т. д.
Трудомісткість алгоритму в першому наближенні може бути охарактеризована набором параметрів:
ϴ - середня кількість процесорних операцій, необхідних для однієї реалізації алгоритму;
N 1
,N 2
,…N H
– середня кількість запитів до файлів за один прогін програми;
L 1
,L 2
,…L H
- середня кількість інформації, що передається за одне звернення до файлів F 1
,F 2
,…F H
.
При необхідності набір параметрів, що характеризують трудомісткістю алгоритму може бути доповнений. Вхідна інформація для розрахунку трудомісткості алгоритму може бути одержана з блок-схеми алгоритму.
Для розрахунку трудомісткості алгоритму необхідно знати ймовірності переходів з логічних вершин при одиничному значенні логічної умови. Якщо відповідну ймовірність визначити через p, тоді ймовірність виходу з логічної вершини при нульовому логічному значенні умови, що перевіряється буде дорівнювати l-p . Для подальших розрахунків схему алгоритму раціонально зображати в вигляді графа алгоритму. Для цього пропонується перенумерувати всі оператори схеми алгоритму. У логічних операторів замість логічних умов «1» і «0» будемо записувати відповідну даному виходу ймовірність. Ймовірність виходу з операторної вершини дорівнює 1. Граф алгоритму можна істотно спростити, якщо трудомісткість виконання логічних вершин незначна в порівнянні з трудомісткістю виконання операторних вершин. Тоді стани, що відповідають логічними вершинами, можна злити з станами, що випереджають відповідні операторні вершини.
1. Побудова блок-схеми за логічною схемою алгоритмів.
Поч. X 1
↑ 1
А В X 2
↑ 2
С X 3
↑ 3
Е X 4
↑ 4
К М Кін.
Блок-схема даного алгоритму зображена на рис.1.
2. Побудова графа даного алгоритму з отриманої вище блок-схеми, що показано на рис.2.
3. Мінімізація графа даного алгоритму, що показано на рис. 3.
4. Подання графа у вигляді стохастичної матриці зображено в таблиці1.
5. Розв`язання системи алгебраїчних рівнянь, рішення яких дає середнє число запитів до операторів, що показано в таблиці 2.
6. Знаходження середньої кількості процесорних операцій за допомогою програмиMicrosoftExcelпоказана на рис.4.
7. Знаходження кількості звернень до файлів та довжин за допомогою програми MicrosoftExcelзображено на рис.5.
Операційна система Linuxмає багато вбудованих компіляторів, практично під кожну мову програмування високого рівня. Два найбільш поширені компілятори – це gccта g++ для мов програмування С та С++ відповідно. В даній лабораторній роботі я використовував компілятор g++, з допомогою якого скомпілював програму, що обчислює числа Фібоначчі. Ця програма складається з двох файлів lab.cpp та fib.h. Перший містить головну функцію програми і слугує для вводу виводу чисел. Другий проводить математичні операції з числами. Результат виконання програми об’єднується і записується в один об’єктний файл lab1. Щоб зібрати всі файли в один, потрібно використати ключ –о, наприклад: g++ lab.cppfib.h –olab1. Виконуємо отриманий файл за допомогою команди ./lab1 .
Нижче наведено лістинг програми та скріншот, який показує результат виконання.
cout<<"Enter the fibonacci number:"; cin>>n;
cout<<"The "<Лабораторная работа: Оцінка трудомісткості алгоритму
Реферат: Transcendentalism Essay Research Paper Transcendentalism was an
Государственное Устройство Реферат
Комплекс Упражнений Для Мышц Брюшного Пресса Реферат
Реферат: Международный Дом Молитвы
Контрольная Работа На Тему Безопасность Информационных Систем
Требования Вак Рб К Оформлению Диссертации
Реферат по теме Великая Отечественная война. Сморгонский район
Тема Реферата Сестринский Уход
Реферат: Історія виникнення Інтернет
Практическая Работа Учет
Познание И Жизнь Неотделимы Эссе
Курсовая Гастрономический Тур
Курсовая работа по теме Проект холодного цеха ресторана японской кухни суши-бара на 120 мест в Москве
Бизнес Реферат
Реферат: Философия
Курсовая работа по теме Цена преступности и вопросы ее определения
Подготовка К Сдаче Норм Гто Реферат
Мен Және Менің Мамандығым Эссе
Реферат Комплекс Маркетинга И Его Элементы
Реферат: Страхование 17
Курсовая работа: Pidgin English как диалект современного английского языка
Контрольная работа: Побудова організаційної документації проекту підприємства ТОВ "Майстер Трейд" - Організація виробництва нових побутових лічильників газу на базі смарт-пластикових карток попередньої оплати
Дипломная работа: Использование метода проектов в процессе ознакомления детей 7 лет с немецкой культурой

Report Page