UkrReferat.com
найбільша колекція україномовних рефератів

Всього в базі: 75838
останнє поновлення: 2016-12-03
за 7 днів додано 10

Реферати на українській
Реферати на російській
Українські підручники

$ Робота на замовлення
Реклама на сайті
Зворотній зв'язок

 

ПОШУК:   

реферати, курсові, дипломні:

Українські рефератиРусские рефератыКниги
НазваМетод розгалужень і меж. Евристичні алгоритми. Застосування принципу оптимальності (реферат)
Авторdimich
РозділІнформатика, компютерні науки
ФорматWord Doc
Тип документуРеферат
Продивилось2560
Скачало403
Опис
ЗАКАЧКА
Замовити оригінальну роботу

Реферат на тему:

 

Метод розгалужень і меж. Евристичні алгоритми. Застосування принципу

оптимальності

 

1. Метод розгалужень і меж

 

Обхід усіх вузлів дерева пошуку варіантів може виявитися надто довгим.

Наприклад, якщо в дереві всі вузли є допустимими, кожний проміжний вузол

має m синів, а глибина дерева n, то всього в дереві 1+m+m2+ …

+mn=(mn+1-1)/(m-1) вузлів. Уже за m=10 та n=10 це більш, ніж 1010. Якщо

припустити, що комп'ютер здатний обробити 105 вузлів за секунду, то

обхід такого дерева триватиме 105 секунд, або приблизно добу.

 

Існує багато практичних задач, де вимагається відшукати чи побудувати не

всі можливі варіанти, а лише один із них, найкращий у деякому розумінні,

визначеному в задачі. Отже, тут з'являється таке поняття, як цінність

варіантів. Загальним принципом розв'язання таких задач є скорочення

обходу дерева варіантів. У ньому відкидаються деякі гілки, про які можна

стверджувати, що вони не містять варіантів більш цінних, ніж уже

знайдені. Розглянемо приклад.

 

Задача про три процесори. Нехай є три процесори, здатні виконувати

завдання з однаковою швидкістю. Є набір завдань, про кожне з яких

відомий час його виконання. Порядок виконання завдань неважливий. Якщо

процесор почав виконувати завдання, то виконує його до кінця протягом

зазначеного часу. Переключення процесора на виконання нового завдання

відбувається миттєво. Треба так розподілити завдання між процесорами,

шоб момент закінчення останнього завдання був мінімальним. Назвемо цю

величину вартістю розподілу. Отже, займемося обчисленням мінімальної

вартості серед можливих розподілів. Сам розподіл, що забезпечує таку

вартість, для початку нас не цікавитиме.

 

Приклад. Нехай є 6 завдань, час виконання яких відповідно 7, 8, 9, 10,

11, 12. Якщо в зазначеному порядку розподілити перші три завдання між

процесорами, а потім давати їх у тому ж порядку процесорам, що

звільняються, то перший процесор закінчить роботу в момент 7+10=17,

другий – у момент 8+11=19, а третій – 9+12=21. Маємо вартість 21. Проте

їх можна розподілити інакше – 7+12, 8+11, 9+10, одержавши вартість 19.?

 

Перше, що ми зробимо в розв'язанні задачі – упорядкуємо завдання за

незростанням часу їх виконання. Отже, нехай P1, … , Pn – завдання, часи

виконання T1, … , Tn яких задовольняють нерівності T1 ? … ? Tn. Розподіл

можна подати послідовністю пар вигляду (i; k), де i – номер завдання, k

– номер процесора, на якому воно виконується. Наприклад, за часів 12,

11, 10, 9, 8, 7 найкращий розподіл подається як

 

<(1; 1), (2; 2), (3; 3), (4; 3), (5; 2), (6; 1)>.

 

Подібно до розміщень ферзів, можна говорити про повний розподіл –

довжини n, та неповний – меншої довжини. Так само утворимо дерево пошуку

розподілів. Його коренем є порожній розподіл, синами кореня – три

розподіли <(1; 1)>, <(1; 2)>, <(1; 3)> тощо, тобто синами кожного

розподілу вигляду

 

v=<(1; k1), … , (i; ki)>

 

за i

 

v1=<(1; k1), … , (i; ki), (i+1; 1)>,

 

v2=<(1; k1), … , (i; ki), (i+1; 2)>,

 

v3=<(1; k1), … , (i; ki), (i+1; 3)>.

 

Повні розподіли є листками вигляду <(1; k1), … , (n; kn)>.

-----> Page:

0 [1] [2] [3] [4] [5] [6]

ЗАМОВИТИ ОРИГІНАЛЬНУ РОБОТУ