مسئله بهینهسازی: چگونه مقدار یک کمیت را با رعایت شرایط، بیشینه یا کمینه کنیم؟
۱. تعریف بهینهسازی و اجزای اصلی آن
در زندگی روزمره و علوم مختلف، اغلب به دنبال بهترین جواب ممکن هستیم: کمترین هزینه، بیشترین سود، کوتاهترین مسیر یا حداکثر مساحت. به این فرآیند، بهینهسازی1 میگوییم. یک مسئله بهینهسازی از سه جزء اصلی تشکیل شده است:
- تابع هدف2: عبارتی ریاضی که کمیتی را که میخواهیم بیشینه یا کمینه کنیم، نشان میدهد. معمولاً با $f(x)$ یا $P(x,y)$ نمایش میدهیم.
- متغیرهای تصمیم3: مقادیری که میتوانیم آنها را تغییر دهیم (مانند $x$ و $y$).
- قیدها4: محدودیتهایی که متغیرها باید رعایت کنند. این قیدها معمولاً به صورت معادله یا نامعادله نوشته میشوند.
مثال علمی ساده: فرض کنید میخواهید با $20$ متر سیم حصار، بیشترین مساحت ممکن را برای یک زمین مستطیلی محصور کنید. در اینجا تابع هدف، مساحت $A = \text{طول} \times \text{عرض}$ است و قید، محیط برابر با $20$ متر است.
۲. دستهبندی مسائل بهینهسازی بر اساس قیدها و خطی بودن
مسائل بهینهسازی را میتوان از چند دیدگاه طبقهبندی کرد. آشنایی با این دستهبندی به انتخاب روش حل مناسب کمک میکند.
| معیار دستهبندی | نوع مسئله | توضیح و مثال |
|---|---|---|
| وجود قید | قیـددار5 | متغیرها محدودیت دارند. مثال: تولید حداکثر $100$ واحد محصول. |
| وجود قید | بیقید6 | بدون محدودیت روی متغیرها. مثال: کمینه کردن $f(x)=x^2+3x+2$ در کل اعداد حقیقی. |
| شکل توابع | خطی7 | همه توابع (هدف و قیدها) خطی هستند. مثال: بیشینه کردن $2x+3y$ با قید $x+y\le 5$. |
| شکل توابع | غیرخطی8 | حداقل یکی از توابع توان $2$ یا بالاتر دارد. مثال: بیشینه کردن $x^2 + y^2$. |
در سطح دبیرستان، بیشتر با مسائل بهینهسازی خطی (برنامهریزی خطی9) و همچنین مسائل غیرخطی ساده (مانند بیشینه مساحت و کمینه فاصله) سروکار داریم.
۳. گامهای حل یک مسئله بهینهسازی (با مثال عملی)
برای حل یک مسئله بهینهسازی، میتوان از چهار گام زیر پیروی کرد:
- شناسایی متغیرها و تابع هدف: کمیتی که باید بیشینه/کمینه شود را مشخص کرده و آن را بر حسب متغیرها بنویسید.
- نوشتن قیدها: تمام محدودیتهای مسئله را به صورت معادله یا نامعادله بیان کنید.
- کاهش تعداد متغیرها با استفاده از قیدها: اگر قید به صورت معادله است، یک متغیر را بر حسب دیگری بنویسید و در تابع هدف جایگزین کنید.
- یافتن نقاط بحرانی: مشتق تابع هدف (پس از کاهش) را صفر قرار داده و نقاط را بیابید. سپس با کمک مشتق دوم یا آزمون مرزها، نوع بیشینه یا کمینه بودن را تعیین کنید.
مثال علمی گامبهگام: یک تولیدکننده جعبه میخواهد از یک ورق مقوایی به ابعاد $40$ سانتیمتر در $40$ سانتیمتر، با بریدن چهار مربع مساوی از گوشهها و تا کردن لبهها، یک جعبه بدون درب بسازد. میخواهیم بیشترین حجم جعبه را پیدا کنیم.
- گام $1$: فرض کنیم طول ضلع مربع بریده شده، $x$ سانتیمتر باشد. ارتفاع جعبه برابر $x$، طول و عرض جعبه برابر $40 - 2x$ خواهد بود. تابع هدف: حجم $V(x) = x(40-2x)^2$.
- گام $2$: قید مسئله از واقعیت فیزیکی میآید: $x \ge 0$ و $40 - 2x \ge 0 \Rightarrow x \le 20$. بنابراین $0 \le x \le 20$.
- گام $3$: نیازی به کاهش نیست، تنها یک متغیر $x$ داریم.
- گام $4$:$V'(x) = (40-2x)^2 + x \cdot 2(40-2x)(-2) = (40-2x)[(40-2x) - 4x] = (40-2x)(40-6x)$. صفر کردن مشتق: $40-2x=0 \Rightarrow x=20$ (حجم صفر میدهد)، $40-6x=0 \Rightarrow x=\frac{40}{6} \approx 6.67$. با مشتق دوم یا آزمون مقدار در مرزها، این نقطه حداکثر حجم را میدهد. بیشترین حجم: $V(6.67) \approx 6.67 \times (40-13.33)^2 \approx 6.67 \times (26.67)^2 \approx 4741$ سانتیمتر مکعب.
۴. کاربرد عملی: بهینهسازی سود یک کارگاه کوچک
فرض کنید یک کارگاه تولیدی دو نوع محصول A و B میسازد. سود هر واحد محصول A، $5$ هزار تومان و سود هر واحد محصول B، $4$ هزار تومان است. ساخت هر واحد A به $2$ ساعت کار و $1$ واحد مواد اولیه نیاز دارد. ساخت هر واحد B به $1$ ساعت کار و $3$ واحد مواد اولیه نیاز دارد. روزانه حداکثر $100$ ساعت کار و $120$ واحد مواد اولیه موجود است. میخواهیم سود روزانه را بیشینه کنیم.
- متغیرها:$x$ = تعداد محصول A، $y$ = تعداد محصول B.
- تابع هدف:$P(x,y) = 5x + 4y$ (هزار تومان).
- قیدها: $2x + y \le 100$ (محدودیت ساعت کار)، $x + 3y \le 120$ (محدودیت مواد اولیه)، $x \ge 0$، $y \ge 0$.
این یک مسئله برنامهریزی خطی است. برای حل، فضای شدنی (ناحیهای که همه قیدها را برآورده میکند) رسم کرده و سپس یکی از روشهای زیر را به کار میبریم:
- روش رأسها: در بهینهسازی خطی، جواب بهینه همواره در یکی از رأسهای ناحیه شدنی رخ میدهد.
- رأسها: $(0,0)$، $(50,0)$، $(0,40)$ و محل تقاطع دو خط: حل دستگاه $2x+y=100$ و $x+3y=120$ که $x=36$ و $y=28$ میدهد.
- مقدار سود در هر رأس: $P=0$، $P=5\times50=250$، $P=4\times40=160$، $P=5\times36 + 4\times28 = 180 + 112 = 292$.
- بیشترین سود، $292$ هزار تومان، با تولید $36$ واحد A و $28$ واحد B حاصل میشود.
۵. چالشهای مفهومی
پاسخ: از آزمون مشتق دوم استفاده میکنیم. اگر مشتق دوم در آن نقطه مثبت باشد، نقطه کمینه محلی (local minimum) و اگر منفی باشد، بیشینه محلی (local maximum) است. اگر مشتق دوم صفر شود، آزمون بینتیجه است و باید از روشهای دیگر مانند بررسی علامت مشتق اول در دو طرف نقطه استفاده کنیم.
پاسخ: این موضوع به شکل تابع هدف و نوع قیدها بستگی دارد. اگر تابع هدف صعودی یا نزولی یکنواخت باشد، مقدار بیشینه یا کمینه روی مرزها رخ میدهد. اما اگر تابع هدف دارای یک قله یا دره درونی باشد (مانند توابع درجه دوم با ضریب منفی یا مثبت)، نقطه بحرانی درون بازه، جواب بهینه خواهد بود. همیشه باید مقادیر تابع را در نقاط بحرانی و در مرزهای بازه (در صورت وجود قید) مقایسه کرد.
پاسخ: از روش جایگزینی استفاده میکنیم. یک متغیر را از قید بر حسب متغیر دیگر به دست میآوریم و در تابع هدف قرار میدهیم. سپس مسئله به یک متغیر تبدیل میشود. برای مثال، اگر قید $x + y = 10$ و تابع هدف $f = x^2 + y^2$ باشد، با جایگذاری $y = 10 - x$ خواهیم داشت $f(x) = x^2 + (10-x)^2$ که یک تابع درجه دوم بر حسب $x$ است و به راحتی بیشینه/کمینه میشود.
۶. جمعبندی
پاورقی
2 تابع هدف (Objective Function): تابعی ریاضی که مقدار آن را میخواهیم بیشینه یا کمینه کنیم.
3 متغیرهای تصمیم (Decision Variables): متغیرهایی که مقادیر آنها را میتوان برای بهینه کردن تابع هدف تغییر داد.
4 قید (Constraint): شرط یا محدودیتی که متغیرهای تصمیم باید آن را برآورده سازند (معادله یا نامعادله).
5 قیددار (Constrained): مسئله بهینهسازی همراه با یک یا چند قید.
6 بیقید (Unconstrained): مسئله بهینهسازی بدون هیچ قیدی روی متغیرها.
7 خطی (Linear): تابعی که در آن همه متغیرها توان $1$ دارند و جملهای مانند ضرب متغیرها وجود ندارد.
8 غیرخطی (Nonlinear): تابعی که حداقل یک جمله با توان غیر از $1$ یا حاصلضرب دو متغیر داشته باشد.
9 برنامهریزی خطی (Linear Programming): شاخهای از بهینهسازی که در آن تابع هدف و همه قیدها خطی هستند.