برنامه‌ریزی هندسی

برنامه‌ریزی هندسی در سال ۱۹۶۷ توسط دافین، پترسون و زنر معرفی گردید. برنامه‌ریزی هندسی روشی کارآمد برای برخی از مسائل برنامه‌ریزی غیرخطی بوده و زیر مجموعه‌ای از مسائل سیگنومیال است. به کمک برنامه‌ریزی هندسی می‌توان مسائل کاربردی و در مقیاس بزرگ را به مدل بهینه‌سازی ریاضی تبدیل کرده و حل نمود. از کاربردهای GP می‌توان به طراحی مدارهای الکتریکی، مسائل مالی و آماری اشاره نمود.

## نحوهٔ فرمول‌بندی
### فرم استاندار
مسائل برنامه‌ریزی هندسی متشکل از تابع هدف پوزینومیال، قیود نامساوی پوزینومیال و قیود تساوی مونومیال هستند.

مونومیال به شکل زیر تعریف می‌شود:
 
f(x) \,\!
= C x_1^{a_1}x_2^{a_2}...x_n^{a_n} \qquad C>0 \qquad  a_i\in\mathbb{R}

پوزینومیال مجموع K جملهٔ مونومیال است:

شکل استاندارد یک مسأله‌ی برنامه‌ریزی هندسی به صورت زیر است:

minimize \qquad f_0(x) \,\!

subject \quad to  \qquad f_i(x) \,\!
\le1 ,\qquad i=1,2,...,m 

 \qquad \qquad \quad \qquad h_i(x) \,\!
=1 ,\qquad i=1,2,...,p 

x_i پارامتر بهینه‌سازی است. در بسیاری از موارد، برنامه‌ریزی هندسی می‌بایست به فرم استاندارد تبدیل شود. در صورتی که مسأله یک مسأله‌ی بیشینه‌سازی باشد می‌توان با معکوس کردن آن، مسأله را به یک مسأله‌ی کمینه‌سازی تبدیل نمود.

## راهکارهای حل
برای حل یک مسأله‌ی برنامه‌ریزی هندسی باید عوامل مختلفی را در نظر گرفت. مسائل برنامه‌ریزی هندسی برای حل می‌بایست به شکل استاندارد باشد و همچنین شدنی بودن آن بررسی شود.

### شدنی بودن
برای حل یک مسأله‌ی برنامه‌ریزی هندسی، مسأله می‌بایست شدنی باشد. در صورتی که مسأله شدنی نباشد، برای آن پاسخ بهینه وجود ندارد. در این موارد می‌توان حداقل یکی از قیود را ریلکس نمود. به منظور ریلکس سازی می‌توان یک متغیر اسکالر جدید s به منظور یافتن یک مقدار \hat x که نزدیک به شدنی است، اضافه نمود. برنامه‌ریزی هندسی به صورت زیر خواهد بود:

minimize \qquad s \,\!

subject \quad to  \qquad f_i(x) \,\!
\le s ,\qquad i=1,2,...,m 

 \qquad \qquad \quad \qquad h_i(x) \,\!
=s ,\qquad i=1,2,...,p 
\qquad \qquad \qquad \quad s\ge1

با حل مسأله‌ی بالا مقادیر بهینهٔ \bar x و \bar s بدست می‌آید. \bar s بیانگر این است که مسأله‌ی اصلی برنامه‌ریزی هندسی چگونه شدنی است. به طور مثال در صورتی که \bar s=1  باشد، \bar x برای مسأله اصلی برنامه‌ریزی هندسی شدنی است. در صورتی که s>1 باشد، \bar x=\hat x قرار داده می‌شود.
روشی دیگر برای بررسی مسائل برنامه‌ریزی هندسی می‌توان با تغییر قیود، تأثیر آن‌ها را بر روی پاسخ بهینه بررسی نمود. این روش به شکل زیر مدل سازی می‌شود:

minimize \qquad f_0(x) \,\!

subject \quad to  \qquad f_i(x) \,\!
\le u_i ,\qquad i=1,2,...,m 

 \qquad \qquad \quad \qquad h_i(x) \,\!
=v_i ,\qquad i=1,2,...,p 

در مدل بالا به جای قیود نامساوی و مساوی با یک، پارامترهای u و v قرار داده شده است. در صورتی که u بزرگ‌تر از یک باشد، قید نامساوی آزادتر، و در صورتی که کوچکتر از یک باشد، قید نامساوی محکم تر است. با قرار دادن مقادیر مختلف u و v می‌توان تأثیر این مقادیر را بر پاسخ بهینه بررسی کرد.

### شکل محدب
مسائل برنامه‌ریزی هندسی به طور کلی جزو مسائل بهینه‌سازی محدب نیستند، اما می‌توان این مسائل را با تغییر متغیر x_i=log(y_i) و b=log(C) به مسائل بهینه‌سازی محدب تبدیل نمود. در این صورت قیود مونومیال به شکل زیر خواهند بود:

\begin{align} h_i(x) & = C x_1^{a_1}x_2^{a_2}...x_n^{a_n}\\ & = C e^{ a_1y_1} e^{a_2 y_2}....e^{a_n y_n}\\ & = e^{a^{T}y+b}\\ \end{align}

به طور مشابه قیود پوزینومیال نیز به شکل زیر خواهند بود:

f_i(x)\,\!= \sum_{k=1}^K \ e^{a_k^{T}y+b_k} 

با جایگذاری عبارات بدست آمده در مسأله‌ی برنامه‌ریزی هندسی، شکل مسأله به صورت زیر خواهد شد:

minimize \qquad \sum_{k=1}^K \ e^{a_0k^{T}y+b_0k} \,\!

subject \quad to  \qquad \sum_{k=1}^K \ e^{a_ik^{T}y+b_ik} \,\!
\le1 ,\qquad i=1,2,...,m 

 \qquad \qquad \quad \qquad e^{g_i^{T}y+b_i} \,\!
=1 ,\qquad i=1,2,...,p 

با توجه به این که لگاریتم یک تابع صعودی است، لگاریتم گرفتن از توابع هدف و قیود سبب تغییر نقطه‌ی بهینه مسأله نخواهد نشد؛ بنابراین با لگاریتم گرفتن از توابع هدف و قیود مسأله‌ی معادل زیر بدست خواهد آمد:

minimize \qquad log(\sum_{k=1}^K \ e^{a_0k^{T}y+b_0k}) \,\!

subject \quad to  \qquad log(\sum_{k=1}^K \ e^{a_ik^{T}y+b_ik}) \,\!
\le0 ,\qquad i=1,2,...,m 

 \qquad \qquad \quad \qquad log(e^{g_i^{T}y+b_i}) \,\!
=0 ,\qquad i=1,2,...,p 

مسأله‌ی بدست آمده یک مسأله‌ی محدب است.

## کاربردها
# مهندسی
#* طراحی فرایند جداسازی پوسته
#* مسائل موازنه‌ی شیمی
#* بیشینه‌سازی آنتروپی
#* بهینه‌سازی سیستم‌های اتمی
# سایر حوزه‌ها
#* مدل فهرست اموال در علم مدیریت
#* طراحی حمل و نقل
#* بیشینه‌سازی قابلیت اطمینان

## پیوند به بیرون
https://optimization.mccormick.northwestern.edu/index.php/Geometric_programming

## منابع

----

رده:بهینه‌سازی ریاضی
رده:بهینه‌سازی محدب
رده:روش‌های بهینه‌سازی
رده:ویکی‌سازی رباتیک