برنامه ریزی مخروطی درجه دوم (Second-Order Cone Programming - SOCP)، در ریاضیات (Mathematics)
انواع روش های بهینه سازی (Optimization Methods) را در آموزش زیر شرح دادیم :
برنامه ریزی مخروطی درجه دوم (Second-Order Cone Programming - SOCP) :
📌 معرفی و فرم استاندارد
برنامه ریزی مخروطی درجه دوم (SOCP) یک کلاس مهم از مسائل بهینه سازی محدب است که در آن یک تابع هدف خطی تحت قیود مخروط درجه دوم بهینه می شود. شکل کلی SOCP به صورت زیر است [citation:1][citation:9]:
\[ \text{Minimize} \quad f^T x \] \[ \text{Subject to:} \quad \| A_i x + b_i \|_2 \leq c_i^T x + d_i, \quad i = 1, \ldots, m \] \[ \quad F x = g \]در اینجا
\[ x \in \mathbb{R}^n \]بردار متغیرهاست. قید
\[ \| A_i x + b_i \|_2 \leq c_i^T x + d_i \]به این معنی است که نقطه
\[ (A_i x + b_i, c_i^T x + d_i) \]درون مخروط درجه دوم (مخروط بستنی) قرار دارد [citation:9].
🍦 مخروط درجه دوم (Second-Order Cone)
مخروط درجه دوم که با نماد
\[ \mathbf{Q}^{n+1} \]نمایش داده می شود، مجموعه زیر است [citation:1][citation:9]:
\[ \mathbf{Q}^{n+1} = \{ (x, t) \in \mathbb{R}^{n+1} : \|x\|_2 \leq t \} \]در فضای سه بعدی، این مجموعه شبیه یک بستنی قیفی یا مخروط دوّار است [citation:1]. همچنین یک نوع دیگر به نام مخروط درجه دوم چرخیده (Rotated Quadratic Cone) وجود دارد [citation:9]:
\[ \mathbf{Q}_r^{n+2} = \{ (x, t_1, t_2) \in \mathbb{R}^{n+2} : \|x\|_2^2 \leq 2 t_1 t_2, \quad t_1 \geq 0, t_2 \geq 0 \} \]🔗 ارتباط با QP و QCQP
برنامه ریزی درجه دوم (QP) و برنامه ریزی با قیود درجه دوم (QCQP) هر دو حالت خاصی از SOCP هستند [citation:9]. به عنوان مثال، یک قید درجه دوم مانند
\[ \|F x\|_2^2 \leq t \]را می توان به صورت قید مخروطی
\[ (F x, t, 1/2) \in \mathbf{Q}_r \]نشان داد [citation:9]. به عبارت دیگر، SOCP از QCQP عمومی تر است و قدرت بیان بیشتری دارد.
💼 کاربردهای عملی
برنامه ریزی خطی آماری (Stochastic Linear Programming): مسائل برنامه ریزی خطی با داده های تصادفی اغلب به SOCP تبدیل می شوند [citation:1].
مسئله حداقل مربعات مقاوم (Robust Least Squares): زمانی که داده ها با عدم قطعیت همراه هستند [citation:1].
بهینه سازی پرتفوی: مدل سازی ریسک با واریانس و کوواریانس.
طراحی آنتن و مخابرات: بهینه سازی شکل پرتو (Beamforming).
کنترل بهینه: مسائل کنترل با قیود روی نرم حالت ها.
🧪 مثال: قید مربعی به صورت SOCP
فرض کنید قید زیر را داریم [citation:1]:
\[ x^T A^T A x + b^T x + c \leq 0 \]این قید را می توان به صورت SOCP زیر بازنویسی کرد:
\[ \left\| \begin{pmatrix} (1 + b^T x + c)/2 \\ A x \end{pmatrix} \right\|_2 \leq (1 - b^T x - c)/2 \]🛠️ نرم افزارهای حل SOCP
حل کننده های تجاری و متن باز متعددی برای SOCP وجود دارند، از جمله [citation:1][citation:4][citation:6]:
MOSEK، Gurobi، CPLEX (تجاری)
SeDuMi، SDPT3 (متلب)
CVXOPT (پایتون)
توابع SOCP در نرم افزارهایی مانند DolphinDB و R (پکیج parma) [citation:4][citation:6]