
بهینهسازی محدب (Convex Optimization): راهنمای جامع و کاربردی 📊
بهینهسازی محدب شاخهای از ریاضیات کاربردی است که به یافتن کمینه/بیشینه توابع محدب در مجموعههای محدب میپردازد. این روش به دلیل کارایی بالا و تضمین همگرایی به جواب بهینه جهانی، یکی از پرکاربردترین ابزارها در علوم داده، یادگیری ماشین و مهندسی است.
📌 ویژگیهای کلیدی بهینهسازی محدب
✅ جواب بهینه جهانی (برخلاف بهینهسازی غیرمحدب)
✅ الگوریتمهای کارآمد با همگرایی تضمینشده
✅ کاربرد گسترده در مسائل واقعی
📚 مبانی ریاضی
1. تعریف مجموعه محدب
مجموعه C محدب است اگر برای هر x₁, x₂ ∈ C و θ ∈ [0,1]:
θx₁ + (1-θ)x₂ ∈ C
2. تابع محدب
تابع f: ℝⁿ → ℝ محدب است اگر:
f(θx + (1-θ)y) ≤ θf(x) + (1-θ)f(y) ∀x,y ∈ dom(f), θ ∈ [0,1]
3. فرم استاندارد مسأله بهینهسازی محدب
minimize f₀(x) subject to fᵢ(x) ≤ 0, i=1,...,m Ax = b
که در آن f₀, f₁,..., fₘ توابع محدب هستند.
🧮 انواع مسائل بهینهسازی محدب
نوع مسأله | فرمولبندی | کاربرد |
---|---|---|
برنامهریزی خطی (LP) | minimize cᵀx s.t. Ax ≤ b | تحقیق در عملیات |
برنامهریزی درجه دوم (QP) | minimize (1/2)xᵀPx + qᵀx s.t. Gx ≤ h | فیلتر کالمن |
برنامهریزی نیمه-معین (SDP) | minimize tr(CX) s.t. tr(AᵢX) = bᵢ, X ⪰ 0 | نظریه کنترل |
برنامهریزی مخروطی | minimize cᵀx s.t. Ax = b, x ∈ K | مهندسی مالی |
💻 پیادهسازی با Python
import cvxpy as cp
import numpy as np
# تعریف متغیر بهینهسازی
x = cp.Variable(2)
# تعریف تابع هدف و محدودیتها
objective = cp.Minimize(x[0] + np.exp(x[1]))
constraints = [x[0]**2 + x[1] <= 1, x[0] >= 0]
# حل مسأله
problem = cp.Problem(objective, constraints)
problem.solve()
print("جواب بهینه:", x.value)
print("مقدار تابع هدف:", objective.value)
🎯 کاربردهای عملی
1. یادگیری ماشین
-
رگرسیون لاسو (Lasso)
-
ماشین بردار پشتیبان (SVM)
2. پردازش سیگنال
-
فیلتر طراحی بهینه
-
فشردهسازی سیگنال
3. مهندسی مالی
-
بهینهسازی سبد سهام
-
مدیریت ریسک
📈 مزایا نسبت به روشهای دیگر
ملاک | بهینهسازی محدب | بهینهسازی غیرمحدب |
---|---|---|
جواب | بهینه جهانی | بهینه محلی |
همگرایی | تضمینشده | غیرقطعی |
سرعت | سریع | ممکن است کند باشد |
پیادهسازی | آسان | پیچیده |
📚 منابع پیشنهادی
-
کتاب "Convex Optimization" توسط Boyd و Vandenberghe
-
دوره آموزشی "Convex Optimization" دانشگاه استنفورد
-
مستندات کتابخانه CVXPY
سوال: آیا تاکنون از بهینهسازی محدب در پروژههای خود استفاده کردهاید؟ تجربیات خود را به اشتراک بگذارید! ✍️

نویسنده
سیدهادی موسوی
Tags: #علمی