Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Евристичні методи розробки алгоритмів




Метод повного перебору

Рішення зворотної задачі

Іноді зворотне завдання, т. е. завдання, що відповідає функції f, - 1(Y)=X, вирішується значно простіше, ніж початкове завдання. Тоді наявний алгоритм рішення зворотної задачі R іноді можна використовувати для побудови алгоритму рішення прямої задачі Р._

Коли говорили про рішення задачі обчислення f(X) шляхом декомпозиції функції f або розбиття початкових даних X на частини, то малося на увазі, що існують математичні результати або інші підстави для таких перетворень. Інакше кажучи, завдання аддитивне - її рішення може бути отримане об'єднанням рішень приватних завдань.

У ряді випадків це не так. Розглянемо, наприклад, завдання про рюкзак.

Дані ціле ненегативне число N і k чисел {n1, n2, n3,..., nk}; знайти підмножину в {n1, n2, n3,..., nk}, сума чисел якого рівна N, якщо така підмножина існує.

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

Вихід виявляється одночасно і простим і складним. Можна узяти деяку підмножину і безпосередньою перевіркою (сумуванням чисел з цієї підмножини і порівнянням суми з N) дізнатися, чи задовольняє цю підмножину поставленій умові. Оскільки різних підмножин є кінцева кількість 2k, то потенційно можна перебрати усі підмножини і знайти рішення.

Складність полягає в тому, що зі збільшенням кількості вихідних даних (переході від k до k+1) швидко збільшується необхідне число перевірок. При k = 10 їх буде 1024, а при k = 40 вже більше 1012.

Метод повного перебору застосовний в тих випадках, коли шукане рішення Y =f(Х) належить деякій кінцевій області і може бути знайдена проста функція quality(Y) для перевірки правильності (чи якості) вибраного рішення. Тоді завдання P обчислення функції f замінюється на багатократне рішення задачі R обчислення функції quality (стільки разів, скільки елементів є в області рішень). Причому, в загальному випадку, проглянути треба усю область і порядок, в якому проглядаються елементи, не важливий.

Під евристичними розуміються методи, правильність яких не доведена. Вони виглядають правдоподібними, здається, що у більшості випадків вони повинні давати вірне рішення. Іноді не вдається побудувати контрприклад, що демонструє помилковість або неуніверсальність метода. Але не вдається довести математичними засобами і правильність методу. Проте, практика використання евристичних методів дає позитивні результати.

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

В якості прикладу можна привести завдання розфарбовування вершин графа: розфарбувати вершини графа так, щоб суміжні вершини були розфарбовані в різні кольори, а кількість використаних в графі фарб була мінімальною.

Точне рішення задачі можливе методом повного перебору, але воно виходитиме за занадто великий час для графів, декількох десятків вершин, що містять. Проте можна помітити, що у формулюванні завдання містяться дві умови - перше - обов'язкове і друге (мінімальності), яке частенько можна ослабити. Наприклад, якщо мінімальне число фарб рівне десяти, а алгоритм швидко знайде розфарбовування, що використовує одинадцять фарб, то часто таке рішення можна розглядати як прийнятне.




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


Дата добавления: 2014-11-08; Просмотров: 1017; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.