Моделі і методи прийняття рішень

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

»адність алгоритму час вирішення проблеми у залежності від розмірності задачі.

Асимптотична часова складність поведінка часової складності при збільшенні розмірності задачі.

Задачі з великої часової складністю неможливі для реальних компютерів (млрд.років).

При аналізі алгоритмів використовують такі позначення.

Запис f(n)=O(g(n)) означає: функція має порядок g(n) тоді, існують дві додатні константи с i n0, що f(n)n0.

Звичайно f(n)=O(g(n)) визначає час обчислень;

 

.

 

Теорема. Якщо

 

A(n)=amnm + … a1n + a0

 

є поліномом ступеня m, тоді

 

A(n)=O(nm).

 

Нехай є два алгоритми з часовою оцінкою обчислень O(n) і O(n2). Час виконання першого алгоритму - c1n, а другого - c2n2 (с - константи). Тоді при nc1/c2 другий.

При великих n значення констант несуттєві.

Найбільш типові часові оцінки алгоритмів: O(1) - константна, O(logn) - логарифмічна, O(n) - лінійна, O(nm) - поліноміальна, O(2n) - експоненційна. Для досить великих n:

 

O(1) < O(log n) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n)

 

?(g(n)) - мінінімальна часова оцінка.

Задачі класу P I NP

Якщо розмірність задачі n, то P задача може бути розвязана за поліноміальний час O(nm).

Задача NP може бути вирішена за поліноміальний час для недетермінованої машини Тьюринга (така машина породжує на кожному кроці певну кількість нових машин).

Більшість дискретних і комбінаторних задач можна вирішити шляхом перебору. Проте перебірні методи мають експоненційну складність.

Проблема: знайти метод вирішення експоненційних задач за поліноміальний час.

 

3.1 Планування в просторі станів. Основні поняття теорії графів

 

Граф сукупність вершин і дуг. Для компютерного опису графу використовуються: матриця інцидентності, матриця суміжності та списки суміжності.

Поширена структура даних в програмуванні лінійні списки.

Лінійний список скінченна послідовність однотипних елементів (певної довжини). Списки бувають однозвязні (лінійні), двозвязні (циклічні) і т.п. Лінійний список L, що складається з l1, l2,.. ln елементів , записується у вигляді L=

 

 

 

Рис..1. Графічне зображення списку

Існує два основних методи задання списків: послідовний (масиви) і звязний (динамічні змінні).

Стек список, в якому занесення і видалення елементів можна проводити тільки через один початковий елемент (вершину стеку). Стек працює за принципом: останній зайшов перший вийшов (Last In First Out - LIFO)

Чергою називають список, в якому всі вставки здійснюються в кінець списку (змінна rear), а всі видалення відбуваються з голови (початку) списку (змінна front).

Черга працює за принципом : перший зайшов перший вийшов (First In First Out - FIFO).

Поняття граф ввів у 1736 році Ейлер. Граф G містить дві множини G=(V,E), де V - множина вершин (вузлів 1...n), E - множина ребер. Коли пари вершин впорядковані - то граф орієнтований, інакше - неорієнтований. Впорядкована пара позначається , невпорядкована (i,j). У зважених графах кожне ребро має вагу.

Ступенем вершини називається число суміжних вершин. В орієнтованому графі виділяють півстепінь входу (число вхідних ребер) та півстепінь виходу (число вихідних ребер).

Шляхом називається послідовність вершин між двома вершинами p і q.

Циклом називається шлях, у якого початкова і кінцева вершини збігаються. Граф називається звязним, якщо для довільної пари вершин існує між ними шлях.

 

 

 

 

а) б)

Рис.2. Зображення орієнтованого (а) і неорієнтованого (б) графів.

3.2 Способи задання графів

 

Існує послідовний і звязний спосіб задання графів.

Послідовна форма використовує квадратну таблицю (Graf(n,n), n - вершин), яку називають матрицею суміжності. Якщо є звязок між вершинами, то Graf(I,j)=1, інакше Graf(I,j)=0.

 

а) б)

Рис.3. Матриці суміжності графів з рис.2.: а неорієнтованого, б орієнтованого

 

Матриця інцидентності відображає звязок n вершин за допомогою m дуг, розмір матриці інцидентності (n*m), але вона менш зручна, ніж матриця суміжності.

Інша форма задання графу список звязності. Граф з n вершинами буде задаватися списками по одному для кожної вершини. Список для вершини і містить вершини, суміжні з і.

 

3.3 Дерева

 

Дерево це орієнтований ациклічний граф, для якого виконуються такі умови:

1) існує одна вершина, в яка не входить жодне ребро (корінь);

2) у будь-яку вершину, крім кореня, входить лише одне ребро;

3) з кореня можна знайти унікальний шлях до кожної вершини дерева.

Орієнтований граф з кількох вершин ліс. Бінарне дерево кожна вершина має два нащадки. При пошуку певного вузла у дереві використовують пряме і зворотне проходження вузлів.

Способи зберігання дерев

Послідовне зберігання ділиться на рівневі і діжкове.

Рівневе: для кожного рівня дерева послідовно вказаються його вузли.

Дужкове: дужками вказуються нащадки даного вузла.

Звязне зберігання списки, кожен список містить вказівними на нащадків.

Пошук у глибину і ширину

Пошук в глибину послідовно відвідуються всі нові вершини нащадки (якщо вершина була відвідана, то вона перестає бути новою).

Пошук у ширину перевіряються суміжні вершини одного рівня, потім перехід на нижчий рівень.

Остові дерева

Довільне дерево називається остовим.

Ейлерові шляхи

Для вирішення багатьох прикладних проблем вик?/p>