Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Метод послідовних наближень




Розкладання завдання в послідовність різнорідних підзадач

Методи розробки алгоритмів

Цей метод називають іноді методом "розділяй і володарюй".

У цьому методі зазвичай виділяється відносно невелике число підзадач. Наприклад: завдання - виконати програму на ЕОМ; підзадачі - ввести початковий текст програми; транслювати програму в машинні команди; приєднати до машинного коду стандартні процедури з бібліотеки; завантажити програму в оперативну пам'ять; запустити про-цесс виконання; завершити процес виконання програми.

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

На алгоритмічній мові цей метод може бути виражений записом процедур, що послідовно викликаються.

 

Розкладання завдання в послідовність однорідних підзадач (ітерація)

Важливий окремий випадок попереднього методу, що придбаває, однак, нова якість за рахунок того, що завдання P зводиться до n екземплярів більш простого завдання R і до простого завдання Q, що об'єднує n рішень.

Дуже простий приклад: обчислення скалярного твору двох векторів A і B:

S:=0; {Завдання Q - підготовка місця для підсумовування.}

for i:= 1 to n do_

S:=S+A[i]*B[i]; {Завдання R - перемножування компонент і сумування.}

Цей алгоритм використовує розбиття початкових даних на частини - окремі компоненти векторів.

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

Зведення завдання до самої собі (рекурсія)

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

Спочатку яким-небудь чином вгадується значення x0, близьке до рішення. Завдання P знаходження рішення зводиться до багатократного рішення завдання R поліпшення рішення. Метод припускає, що якимсь чином може бути оцінена "якість" рішення (зазвичай - точність). Найчастіше абсолютна точність недосяжна, тому процес потенційно нескінченний, т. е. не виконується властивість скінченності алгоритму. Для того, щоб цього уникнути, дещо змінюють первинне формулювання завдання: вимагають відшукати не точне рішення Y, а будь-яке рішення, отли-чающееся від Y не більше ніж на деяку величину Δ - тобто наближене рішення. Характерний приклад - завдання відшукування кореня рівняння або завдання пошуку кореня p -ої міри з x.

Основною проблемою є побудова завдання R по початковій задачі P, доказ факту збіжності процесу до шуканого рішення і забезпечення досить високої швидкості збіжності.

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




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


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


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



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




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