Оптимізація функції двох змінних використовуючи метод градієнтного спуску на Delphi

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

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

Читати повністю

Мініиізація функції декількох змінних використовуючи метод градієнтного спуску

З курсу математики відомо, що напрямок найбільшого зростання будь-якої функції, в нашому випадку Метод градієнтного спуску характеризується її градієнтом:

Метод градієнтного спуску

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

Процес відшукання точки мінімуму функції Метод градієнтного спуску за методом градієнтного спуску полягає в наступному: на початку вибираємо деяку початкову точку Метод градієнтного спуску і обчислюємо в ній градієнт функції Метод градієнтного спуску. Далі, робимо крок у антиградієнтному напрямку Метод градієнтного спуску (де Метод градієнтного спуску). У результаті отримуємо нову точку Метод градієнтного спуску, значення функції в якій зазвичай менше  за значення функції в точці Метод градієнтного спуску. Якщо ця умова не виконується, тобто значення функції не змінилося або навіть зросла, то потрібно зменшити крок Метод градієнтного спуску (Метод градієнтного спуску), після чого, у новій точці обчислюємо градієнт і знову робимо крок у зворотному до нього напрямку Метод градієнтного спуску.

Читати повністю

Мінімізація функції двох змінних методом покоординатного спуску засобами Delphi

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

Метод покоординатного спуску на Delphi

Інтерфейс програми, яка знаходить мінімальне значення функції двох змінних використовуючи метод покоординатного спуску

Читати повністю

Оптимізація функції багатьох змінних методом покоординатного спуску

Нехай дано деяку функцію Метод покоординатного спуску для якої потрібно визначити мінімальне значення. Для цього, в якості початкового наближення, виберемо деяку точку Метод покоординатного спуску. Далі, підставимо в функцію Метод покоординатного спуску всі точки початкового наближення крім першої. Тоді отримаємо функцію однієї змінної Метод покоординатного спуску. Знайшовши для даної функції точку мінімуму, переходимо від точки Метод покоординатного спуску до точки Метод покоординатного спуску в якій функція Метод покоординатного спуску приймає мінімальне значення по координаті Метод покоординатного спуску. У цьому полягає перший крок процесу оптимізації, що складається в спуску по координаті Метод покоординатного спуску (для знаходження точки мінімуму функції однієї змінної можна використовувати наступні методи: методом дихотомії, методом Фібоначі, методом золотого перетину,...).

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

Читати повністю

Мінімізація функції однієї змінної методом дихотомії в середовищі Delphi(1)

В даній темі розглядається програмна реалізація алгоритму знаходження мінімального значення унімодальної функції на заданому інтервалі і з заданою точністю. В якості рівняння, на якому будемо перевіряти працездатність алгоритму виступає рівняння виду: Метод дихотомії на Delphi. Інтервал, на якому будемо шукати екстремум візьмемо Метод дихотомії на Delphi, і точність, якої необхідно досягнути буде Метод дихотомії на Delphi. Для реалізації поставленого завдання використовується алгоритм методу дихотомії.

Інтерфейс програми, яка реалізує метод дихотомії

Інтерфейс програми, яка реалізує метод дихотомії

Читати повністю

Мінімізація функції однієї змінної методом дихотомії

Нехай дано функцію Метод дихотомії, яка є унімодальною на проміжку metod_duhotomii2. На даному проміжку необхідно знайти точку мінімуму функції Метод дихотомії з заданою точністю Метод дихотомії. Для цього, використовуючи наступні формули, обчислюємо точки Метод дихотомії та Метод дихотомії:

Метод дихотомії

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

Графічне представлення методу дихотомії

Графічне представлення методу дихотомії

Читати повністю

Мінімізація функції однієї змінної методом Фібоначчі на Delphi(1)

Програма використовує алгоритм методу Фібоначчі, для того, щоб знайти мінімальне значення унімодальної функції Метод Фібоначі на Delphi (Метод Фібоначчі на Delphi), на інтервалі Метод Фібоначі на Delphi (Метод Фібоначчі на Delphi). Згідно з методом Фібоначчі, на першому кроці проводяться два обчислення значень Метод Фібоначі на Delphi в точках Метод Фібоначчі на Delphi та Метод Фібоначчі на Delphi, розташованих симетрично відносно середини відрізка Метод Фібоначі на Delphi. Далі, за результатами обчислень одна з частин відрізка Метод Фібоначчі на Delphi або metod_fibonachi_delphi-161відкидається. При цьому, одна з точок Метод Фібоначчі на Delphi або Метод Фібоначчі на Delphi отримана в результаті обчислень на попередньому кроці залишається всередині нового інтервалу невизначеності. Тому, на кожному наступному кроці, положення точки чергового обчислення, згідно алгоритму, вибирають симетрично відносно точки, яка залишилася. Таким чином, на першому кроці виконуємо обчислення значень функції Метод Фібоначі на Delphi в двох точках, а на кожному наступному кроці — лише в одній точці. Процес обчислень закінчується в тому випадку, коли довжина інтервалу невизначеності стане меншою деякого заданого числа Метод Фібоначчі на Delphi (Метод Фібоначчі на Delphi).

Інтерфейс програми, яка використовуючи метод фібоначі знаходить мінімум унімодальної функції

Інтерфейс програми, яка використовуючи метод Фібоначчі знаходить мінімум унімодальної функції

Читати повністю

« Попередня сторінкаНаступна сторінка »