Відмінності між версіями «Метод узагальнених стохастичних градієнтів для розв’язання двохетапної задачі СП. Загальний алгоритм.»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
(не показані 10 проміжних версій 3 учасників)
Рядок 1: Рядок 1:
Метод узагальнених стохастичних градієнтів не припускає диференціювання цільової функції задачі і не вимагає завдання статистичних характеристик випадкових параметрів умов задачі. Метод стохастичних градієнтів є загальним методом стохастичної апроксимації.  
+
<p align=justify > Метод узагальнених стохастичних градієнтів не припускає диференціювання цільової функції задачі і не вимагає завдання статистичних характеристик випадкових параметрів умов задачі. Метод стохастичних градієнтів є загальним методом стохастичної апроксимації. </p>
 
Для ітеративного розв’язання задачі використовується послідовність реалізації матриці <math>\ A(\omega) </math> і векторів  <math>\ b(\omega) </math> та <math>\ c(\omega) </math>.
 
Для ітеративного розв’язання задачі використовується послідовність реалізації матриці <math>\ A(\omega) </math> і векторів  <math>\ b(\omega) </math> та <math>\ c(\omega) </math>.
  
Метод стохастичних градієнтів може бути використаний також для розв’язання нелінійної двохетапної стохастичної задачі.
+
<p align=justify >Метод стохастичних градієнтів може бути використаний також для розв’язання нелінійної двохетапної стохастичної задачі.
 
Застосування методу узагальнених стохастичних градієнтів базується на наступних міркуваннях.  
 
Застосування методу узагальнених стохастичних градієнтів базується на наступних міркуваннях.  
 
Нехай потрібно мінімізувати опуклу вниз функцію <math>\ \varphi(\omega) </math>  на опуклій множині <math>\ K </math>.
 
Нехай потрібно мінімізувати опуклу вниз функцію <math>\ \varphi(\omega) </math>  на опуклій множині <math>\ K </math>.
Розглянемо наступний ітеративний процес випадкового пошуку розв’язання задачі  
+
Розглянемо наступний ітеративний процес випадкового пошуку розв’язання задачі </p>
  
 
<math>\ x^{s+1}=\pi_K \left ( x^{(s)}-\rho_s \gamma_s \xi^{(s)} \right ) </math>.
 
<math>\ x^{s+1}=\pi_K \left ( x^{(s)}-\rho_s \gamma_s \xi^{(s)} \right ) </math>.
Рядок 37: Рядок 37:
 
<math> \left | a_s \left ( x^{(0)}, x^{(1)},..., x^{(s)}  \right ) \right | \le l_s </math>;  <math> \left \| m^{(s)} \left ( x^{(0)}, x^{(1)},..., x^{(s)}  \right ) \right \| \le  r^{(s)}</math>
 
<math> \left | a_s \left ( x^{(0)}, x^{(1)},..., x^{(s)}  \right ) \right | \le l_s </math>;  <math> \left \| m^{(s)} \left ( x^{(0)}, x^{(1)},..., x^{(s)}  \right ) \right \| \le  r^{(s)}</math>
  
Нехай <math> min \varphi(x)= \varphi(x^{*})>-\mathcal {1} </math>
+
Нехай <math> \min \varphi(x)= \varphi(x^{*})>-\mathcal {1} </math>
  
 
'''Теорема.''' Нехай
 
'''Теорема.''' Нехай
Рядок 60: Рядок 60:
  
  
Тоді майже для кожного <math> \omega</math>  послідовність <math> x^{(s)}(\omega) </math> збігається до розв’язку задачі <math>  \min \varphi (x)</math>.
+
Тоді майже для кожного <math> \omega </math>  послідовність <math> x^{(s)}(\omega) </math> збігається до розв’язку задачі <math>  \min \varphi (x)</math>.
 +
Зауважимо, що
 +
<math> ~M \left ( \left \| \xi^{(s)} \right \|^2 \mid x^{(0)}, x^{(1)},..., x^{(s)}  \right )=  \sum^{n}_{i=1} {D \left (\xi_i^{(s)}\mid x^{(0)}, x^{(1)},..., x^{(s)}  \right )} + a^2_s \left \| \varphi_x(x^{(s)}) \right \| ^2  +2a_s \left ( \varphi_x(x^{(s)}){,}m^{(s)} \right ) + \left \| m^{(s)} \right \| ^2 </math>
  
<math> ~M \left ( \left \| \xi^{(s)} \right \|^2 \mid x^{(0)}, x^{(1)},..., x^{(s)}  \right )=  \sum^{n}_{i=1} {D \left (\xi_i^{(s)}\mid x^{(0)}, x^{(1)},..., x^{(s)}  \right )} + a^2_s \left \| \varphi_x(x^{(s)} \right \| ^2  +2a_s \left ( \varphi_x(x^{(s)},m^{(s)} \right ) + \left \| m^{(s)} \right \| ^2 </math>
 
 
Звідси випливає, що якщо сума дисперсій компонент вектора  
 
Звідси випливає, що якщо сума дисперсій компонент вектора  
<math> \xi_i^{(s)}</math> і  
+
<math> \xi^{(s)}= \left \{\xi_i^{(s)}\right \}</math> і  
 
<math> \left \| \varphi_x(x^{(s)}\right \|</math> обмежені на
 
<math> \left \| \varphi_x(x^{(s)}\right \|</math> обмежені на
 
<math> K</math>, то  
 
<math> K</math>, то  
 
<math> h_s=const</math> і умова (29.4) виконується.
 
<math> h_s=const</math> і умова (29.4) виконується.
 +
 +
 
При явно заданій множині <math> K</math>  процес (29.1) може бути використаний для розв’язку двохетапної задачі стохастичного програмування.
 
При явно заданій множині <math> K</math>  процес (29.1) може бути використаний для розв’язку двохетапної задачі стохастичного програмування.
 +
 +
 
Згідно теореми субградієнт в точці  <math> x_0</math> цільового функціоналу детермінованої задачі, еквівалентній двохетапної задачі стохастичного програмування, дорівнює  
 
Згідно теореми субградієнт в точці  <math> x_0</math> цільового функціоналу детермінованої задачі, еквівалентній двохетапної задачі стохастичного програмування, дорівнює  
<math> \varphi_x (x_0)=M \left { \ c-z^{*} \left ( A,b,x_0 \right ) \right \A}. </math> Тому для обчислення попереднього плану  <math> x^{*} </math>
+
<math> \varphi_x (x_0) = M \left \{ c- z^{*} \left ( A, b, x_0 \right ) A \right \} </math>
 +
 
 +
Тому для обчислення попереднього плану  <math> x^{*} </math>
 
двохетапної задачі, або, те ж саме що і для розв’язку еквівалентної детермінованої задачі  
 
двохетапної задачі, або, те ж саме що і для розв’язку еквівалентної детермінованої задачі  
 +
<math> \min Q(x) = \min M \left \{ cx +  z^{*} \left ( A, b, x \right ) \left ( b-Ax \right ) \right \} </math>
 +
може бути використаний наступний алгоритм. Виберемо послідовність
 +
<math> \rho _s</math> і
 +
<math> \gamma _s</math>, які задовольняють умовам теореми (в нашому випадку  <math> a_s=1, m^{(s)}=0 </math> і отже
 +
<math> l^{(s)}=1, r^{(s)}=0 )</math>
 +
 +
Нехай на s-му кроці обчислений вектор
 +
<math>x^{(s)} </math> - чергове наближення попереднього плану двохетапної задачі. Для отримання
 +
<math> s+1 </math> -го
 +
наближення треба:
 +
 +
а) обрати відповідно з заданою ймовірнісною мірою випадкову реалізацію параметрів умов задачі <font  size=3>
 +
<math>  A^{(s)}= A(\omega^{(s)})</math>,
 +
<math> b^{(s)}=b(\omega^{(s)})</math>,    <math> c^{(s)}=c(\omega ^{(s)})</math>;</font>
 +
 +
б) обчислити розв’язок  <math> z^{*} \left ( A^{(s)}, b^{(s)}, x^{(s)} \right ) </math> задачі  двоїстої до задачі другого етапу при <font  size=3>  <math> x=x^{(s)}, A=A^{(s)}, b=b^{(s)} </math>;</font>
 +
 +
в) визначити <font  size=3>  <math>x^{(s+1)} </math> </font>за формулою (29.1). При цьому <font  size=3>
 +
<math> \xi^{(s)}= c^{(s)}- z^{*} \left ( A^{(s)}, b^{(s)}, x^{(s)} \right ) A^{(s)} </math>.</font>
 +
 +
В відповідності з теоремою вказаний процес призводить з ймовірністю 1 до розв’язку двохетапної задачі.
 +
==Список використаних джерел==
 +
1. Юдин Д. Б. Математические методы управления в условиях неполной информации. / Юдин Д. Б. М: «Сов. радио», 1974. – 400 с.
  
<math>\min Q(x)=\minM \left \{  cx+z^{*}  \left ( A,b,x \right )  \right  \left ( b-Ax \right )\} </math>
+
<br> Редагувала: [[Користувач:Неділько Аліна|Неділько Аліна ]]

Поточна версія на 09:00, 21 травня 2019

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

Для ітеративного розв’язання задачі використовується послідовність реалізації матриці Неможливо розібрати вираз (невідома помилка): \ A(\omega)

і векторів  Неможливо розібрати вираз (невідома помилка): \ b(\omega) 
та Неможливо розібрати вираз (невідома помилка): \ c(\omega) 

.

Метод стохастичних градієнтів може бути використаний також для розв’язання нелінійної двохетапної стохастичної задачі. Застосування методу узагальнених стохастичних градієнтів базується на наступних міркуваннях. Нехай потрібно мінімізувати опуклу вниз функцію Неможливо розібрати вираз (невідома помилка): \ \varphi(\omega) на опуклій множині Неможливо розібрати вираз (невідома помилка): \ K . Розглянемо наступний ітеративний процес випадкового пошуку розв’язання задачі

Неможливо розібрати вираз (невідома помилка): \ x^{s+1}=\pi_K \left ( x^{(s)}-\rho_s \gamma_s \xi^{(s)} \right ) . (29.1)


Тут Неможливо розібрати вираз (невідома помилка): \ x^{(0)}

- довільний n-вимірний вектор, який належить множені Неможливо розібрати вираз (невідома помилка): \ K 
- початкова точка процесу;

Неможливо розібрати вираз (невідома помилка): \rho_s

- величина кроку на s-й ітерації;

Неможливо розібрати вираз (невідома помилка): \gamma_s

- нормований множник;

Неможливо розібрати вираз (невідома помилка): \xi^{(s)}

- випадковий вектор, умовне математичне сподівання яке відносно Неможливо розібрати вираз (невідома помилка):  x^{(0)}, x^{(1)},..., x^{(s)}
залежить лінійно від узагальненого градієнта Неможливо розібрати вираз (невідома помилка): \ \varphi_x 
(субградієнта або опорного функціоналу) функції Неможливо розібрати вираз (невідома помилка): \ \varphi(x) 
в точці Неможливо розібрати вираз (невідома помилка): \ x^{(s)} 

Неможливо розібрати вираз (невідома помилка): ~M \left (\xi^{(s)}\mid x^{(0)}, x^{(1)},..., x^{(s)} \right ) = a_s \varphi_x(x^{(s)}) +m^{(s)}

(29.2)

В формулі (29.2) Неможливо розібрати вираз (невідома помилка): a_s

- деяке число, Неможливо розібрати вираз (невідома помилка):  m^{(s)}
- n-вимірний вектор.

Неможливо розібрати вираз (невідома помилка): \pi_{K}(x)

- оператор проектування на множині Неможливо розібрати вираз (невідома помилка):  K 

, тобто такої, що

Неможливо розібрати вираз (невідома помилка): \pi_{K}(x) \in K

і Неможливо розібрати вираз (невідома помилка):  \left \| x- \pi_{K}(x) \right \|^2 \le \left \| y-x \right \|^2 
для будь-якого Неможливо розібрати вираз (невідома помилка):  y \in K 

.

Іншими словами, оператор проектування Неможливо розібрати вираз (невідома помилка): y=\pi_K(x)

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

Неможливо розібрати вираз (невідома помилка): inf \left \| x-y \right \|^2, y\in K

(29.3)

Значення Неможливо розібрати вираз (невідома помилка): a_s

і Неможливо розібрати вираз (невідома помилка):  m^{(s)} 
в (29.2) можуть залежати від Неможливо розібрати вираз (невідома помилка):  x^{(0)}, x^{(1)},..., x^{(s)} 

. Проте пропонується, що існують постійні Неможливо розібрати вираз (невідома помилка): l_s

і Неможливо розібрати вираз (невідома помилка):  r^{(s)}= \left \{r_j^{(s)} \right  \}

, такі, що

Неможливо розібрати вираз (невідома помилка): \left | a_s \left ( x^{(0)}, x^{(1)},..., x^{(s)} \right ) \right | \le l_s

Неможливо розібрати вираз (невідома помилка): \left \| m^{(s)} \left ( x^{(0)}, x^{(1)},..., x^{(s)} \right ) \right \| \le r^{(s)}


Нехай Неможливо розібрати вираз (невідома помилка): \min \varphi(x)= \varphi(x^{*})>-\mathcal {1}


Теорема. Нехай

а) відома величина Неможливо розібрати вираз (невідома помилка): h_s\left ( x^{(0)}, x^{(1)},..., x^{(s)} \right ) , така що Неможливо розібрати вираз (невідома помилка): ~M \left ( \left \| \xi^{(s)} \right \|^2 \mid x^{(0)}, x^{(1)},..., x^{(s)} \right ) \le h^2_s \le \sigma^2_ \beta < \mathcal {1}

(29.4)


При Неможливо розібрати вираз (невідома помилка): \left \| x^{k} \right \| \le \beta < \mathcal {1} , k=0,1,...,s , де Неможливо розібрати вираз (невідома помилка): \sigma_{\beta}

- деякі константи;

б) нормуючий множник Неможливо розібрати вираз (невідома помилка): \gamma_s

задовольняє умову 

Неможливо розібрати вираз (невідома помилка): 0< \underline{\gamma_s} \le \gamma_s \left ( \tau_s \left \| x^{(s)} \right \| + h_s \right ) \le \overline{\gamma} < \mathcal {1} , де

Неможливо розібрати вираз (невідома помилка): \tau_s = \begin{cases}1, \left \| m^{(s)} \right \|>0 ,\\ 0, \left \| m^{(s)} \right \|=0 \end{cases}


в) величини Неможливо розібрати вираз (невідома помилка): \rho_s, a_s, l_s, r^{(s)}

такі, що 

Неможливо розібрати вираз (невідома помилка): \rho_s \ge 0, a_s \ge 0,

Неможливо розібрати вираз (невідома помилка): \sum^{\mathcal {1}}_{s=0} {\rho_s r^{(s)}}< \mathcal {1}; \sum^{\mathcal {1}}_{s=0} {\rho^2_s }< \mathcal {1} ; \sum^{\mathcal {1}}_{s=0} {\rho_s l_s } =\mathcal {1}


Тоді майже для кожного Неможливо розібрати вираз (невідома помилка): \omega

 послідовність Неможливо розібрати вираз (невідома помилка):  x^{(s)}(\omega) 
збігається до розв’язку задачі Неможливо розібрати вираз (невідома помилка):   \min \varphi (x)

. Зауважимо, що Неможливо розібрати вираз (невідома помилка): ~M \left ( \left \| \xi^{(s)} \right \|^2 \mid x^{(0)}, x^{(1)},..., x^{(s)} \right )= \sum^{n}_{i=1} {D \left (\xi_i^{(s)}\mid x^{(0)}, x^{(1)},..., x^{(s)} \right )} + a^2_s \left \| \varphi_x(x^{(s)}) \right \| ^2 +2a_s \left ( \varphi_x(x^{(s)}){,}m^{(s)} \right ) + \left \| m^{(s)} \right \| ^2


Звідси випливає, що якщо сума дисперсій компонент вектора Неможливо розібрати вираз (невідома помилка): \xi^{(s)}= \left \{\xi_i^{(s)}\right \}

і 

Неможливо розібрати вираз (невідома помилка): \left \| \varphi_x(x^{(s)}\right \|

обмежені на

Неможливо розібрати вираз (невідома помилка): K , то Неможливо розібрати вираз (невідома помилка): h_s=const

і умова (29.4) виконується.


При явно заданій множині Неможливо розібрати вираз (невідома помилка): K

 процес (29.1) може бути використаний для розв’язку двохетапної задачі стохастичного програмування.


Згідно теореми субградієнт в точці Неможливо розібрати вираз (невідома помилка): x_0

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

Неможливо розібрати вираз (невідома помилка): \varphi_x (x_0) = M \left \{ c- z^{*} \left ( A, b, x_0 \right ) A \right \}


Тому для обчислення попереднього плану Неможливо розібрати вираз (невідома помилка): x^{*}

двохетапної задачі, або, те ж саме що і для розв’язку еквівалентної детермінованої задачі Неможливо розібрати вираз (невідома помилка): \min Q(x) = \min M \left \{ cx + z^{*} \left ( A, b, x \right ) \left ( b-Ax \right ) \right \}

може бути використаний наступний алгоритм. Виберемо послідовність Неможливо розібрати вираз (невідома помилка): \rho _s

і 

Неможливо розібрати вираз (невідома помилка): \gamma _s , які задовольняють умовам теореми (в нашому випадку Неможливо розібрати вираз (невідома помилка): a_s=1, m^{(s)}=0

і отже

Неможливо розібрати вираз (невідома помилка): l^{(s)}=1, r^{(s)}=0 )


Нехай на s-му кроці обчислений вектор Неможливо розібрати вираз (невідома помилка): x^{(s)}

- чергове наближення попереднього плану двохетапної задачі. Для отримання 

Неможливо розібрати вираз (невідома помилка): s+1

-го

наближення треба:

а) обрати відповідно з заданою ймовірнісною мірою випадкову реалізацію параметрів умов задачі Неможливо розібрати вираз (невідома помилка): A^{(s)}= A(\omega^{(s)}) , Неможливо розібрати вираз (невідома помилка): b^{(s)}=b(\omega^{(s)}) , Неможливо розібрати вираз (невідома помилка): c^{(s)}=c(\omega ^{(s)})

б) обчислити розв’язок Неможливо розібрати вираз (невідома помилка): z^{*} \left ( A^{(s)}, b^{(s)}, x^{(s)} \right )

задачі  двоїстої до задачі другого етапу при    Неможливо розібрати вираз (невідома помилка):  x=x^{(s)}, A=A^{(s)}, b=b^{(s)} 

в) визначити Неможливо розібрати вираз (невідома помилка): x^{(s+1)}

за формулою (29.1). При цьому 

Неможливо розібрати вираз (невідома помилка): \xi^{(s)}= c^{(s)}- z^{*} \left ( A^{(s)}, b^{(s)}, x^{(s)} \right ) A^{(s)} .

В відповідності з теоремою вказаний процес призводить з ймовірністю 1 до розв’язку двохетапної задачі.

Список використаних джерел

1. Юдин Д. Б. Математические методы управления в условиях неполной информации. / Юдин Д. Б. М: «Сов. радио», 1974. – 400 с.


Редагувала: Неділько Аліна