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

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

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

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

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

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

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

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

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

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