فهرست مطالب
این آموزش نحوه افزودن و مکان یافتن Solver را در نسخه های مختلف اکسل، از سال 2016 تا 2003، توضیح می دهد. مثال های گام به گام نحوه استفاده از Excel Solver برای یافتن راه حل های بهینه برای برنامه نویسی خطی و انواع دیگر را نشان می دهد. مشکلات.
همه میدانند که مایکروسافت اکسل شامل بسیاری از توابع مفید و ابزارهای قدرتمند است که میتواند ساعتها در محاسبات شما صرفهجویی کند. اما آیا میدانستید که ابزاری نیز دارد که میتواند به شما در یافتن راهحلهای بهینه برای مشکلات تصمیمگیری کمک کند؟
در این آموزش، ما قصد داریم تمام جنبههای ضروری افزونه Excel Solver را پوشش دهیم و یک مرحله را ارائه کنیم. راهنمای گام به گام نحوه استفاده موثرتر از آن.
Excel Solver چیست؟
Excel Solver متعلق به مجموعه خاصی از دستوراتی که اغلب به عنوان ابزارهای تجزیه و تحلیل What-if شناخته می شوند. هدف اصلی آن شبیهسازی و بهینهسازی مدلهای مختلف تجاری و مهندسی است.
افزونه Excel Solver مخصوصاً برای حل مسائل برنامهنویسی خطی مفید است و به همین دلیل گاهی اوقات نامیده میشود. حل برنامه نویسی خطی . جدای از آن، می تواند مشکلات غیرخطی و غیر هموار را حل کند. لطفاً برای جزئیات بیشتر به الگوریتمهای حلکننده اکسل مراجعه کنید.
در حالی که Solver نمیتواند همه مشکلات احتمالی را حل کند، در هنگام برخورد با انواع مشکلات بهینهسازی که باید بهترین تصمیم را بگیرید، واقعاً مفید است. مثلاً می تواندمقدار سفارش شده توسط هر مشتری (B10:E10) باید تحویل داده شود. اینها سلولهای محدود هستند.
کار بعدی که باید انجام دهید محاسبه کل مقدار ارسال شده از هر انبار (G7:G8) و مقدار کل کالاهای دریافت شده توسط هر مشتری (B9:E9). شما می توانید این کار را با فرمول های Sum ساده نشان داده شده در تصویر زیر انجام دهید. همچنین، برای محاسبه هزینه کل حمل و نقل، فرمول SUMPRODUCT را در C12 وارد کنید:
برای درک آسانتر مدل بهینه سازی حمل و نقل، محدوده های نامگذاری شده زیر را ایجاد کنید:
نام محدوده | سلول ها | پارامتر حل کننده |
محصولات_ارسال شده | B7: E8 | سلولهای متغیر |
موجود | I7:I8 | محدودیت |
Total_shipped | G7:G8 | Constraint |
Serdered | B10:E10 | Constraint |
کل_دریافتی | B9:E9 | محدودیت | C12 | Objective |
آخرین کاری که باید انجام دهید این است که پارامترهای Excel Solver را پیکربندی کنید:
- هدف: Shipping_cost روی Min تنظیم شده است.
- سلولهای متغیر: Products_shipped
- محدودیتها: Total_received = Ordered and Total_shipped <= Available
لطفا پرداخت کنید توجهی که ما انتخاب کرده ایمروش حل Simplex LP در این مثال زیرا ما با مسئله برنامه ریزی خطی سر و کار داریم. اگر مطمئن نیستید که نوع مشکل شما چیست، می توانید روش حل پیش فرض GRG Nonlinear را ترک کنید. برای اطلاعات بیشتر، لطفاً الگوریتم های حل کننده اکسل را ببینید.
راه حل
دکمه حل را در پایین پنجره Solver Parameters کلیک کنید و شما پاسخ شما را خواهد گرفت در این مثال، افزونه Excel Solver مقدار بهینه کالا را برای تحویل به هر مشتری از هر انبار با حداقل هزینه کل حمل و نقل محاسبه کرد:
چگونه صرفه جویی کنیم و سناریوهای حل کننده اکسل را بارگیری کنید
هنگام حل یک مدل خاص، ممکن است بخواهید مقادیر سلول متغیر خود را به عنوان سناریو ذخیره کنید که بتوانید بعداً آن را مشاهده یا مجدداً استفاده کنید.
برای مثال، هنگام محاسبه حداقل هزینه خدمات در اولین مثال مورد بحث در این آموزش، ممکن است بخواهید تعداد متفاوتی از مشتریان پیش بینی شده در ماه را امتحان کنید و ببینید که چگونه بر هزینه خدمات تأثیر می گذارد. در ضمن، ممکن است بخواهید محتملترین سناریویی را که قبلاً محاسبه کردهاید ذخیره کنید و هر لحظه آن را بازیابی کنید.
ذخیره یک سناریوی Excel Solver به انتخاب محدودهای از سلولها خلاصه میشود. دادهها را ذخیره کنید. بارگیری یک مدل Solver فقط به ارائه محدوده سلولهایی که مدل شما در آن ذخیره میشود در اکسل میپردازد. مراحل دقیق در زیر آمده است.
ذخیرهmodel
برای ذخیره سناریوی Excel Solver، مراحل زیر را انجام دهید:
- کاربرگ را با مدل محاسبه شده باز کنید و Excel Solver را اجرا کنید.
- در <پنجره 1>Solver Parameters ، روی دکمه Load/Save کلیک کنید.
همزمان، پنجره Solver Parameters نشان داده می شود که در آن می توانید محدودیت های خود را تغییر دهید و گزینه های مختلف "What if" را امتحان کنید.
Loading مدل ذخیره شده
هنگامی که تصمیم به بازیابی سناریوی ذخیره شده دارید، موارد زیر را انجام دهید:
- در پنجره Solver Parameters ، روی Load/ کلیک کنید. دکمه Save .
- در کاربرگ، محدوده سلول های نگهدارنده مدل ذخیره شده را انتخاب کنید و روی Load کلیک کنید:
الگوریتم های حل اکسل
هنگام تعریف مشکل برای حل کننده اکسل، می توانید انتخاب کنید یکی از روش های زیر در کادر کشویی روش حل انتخاب کنید:
- GRG Nonlinear.الگوریتم Generalized Reduced Gradient Nonlinear برای مسائلی استفاده می شود که غیرخطی صاف هستند، یعنی حداقل یکی از قیودها تابع غیرخطی هموار متغیرهای تصمیم است. جزئیات بیشتر را می توانید در اینجا بیابید.
- LP Simplex . روش حل Simplex LP مبتنی بر الگوریتم Simplex است که توسط دانشمند ریاضی آمریکایی جورج دانتسیگ ایجاد شده است. برای حل مسائل به اصطلاح برنامهنویسی خطی استفاده میشود - مدلهای ریاضی که الزامات آنها با روابط خطی مشخص میشود، یعنی شامل یک هدف واحد است که توسط یک معادله خطی نشان داده میشود که باید حداکثر یا حداقل شود. برای اطلاعات بیشتر، لطفاً این صفحه را بررسی کنید.
- Evolutionary . این برای مسائل غیر هموار استفاده می شود، که سخت ترین نوع مسائل بهینه سازی برای حل هستند زیرا برخی از توابع غیر هموار یا حتی ناپیوسته هستند و بنابراین تعیین جهت افزایش یا کاهش یک تابع دشوار است. برای اطلاعات بیشتر، لطفاً به این صفحه مراجعه کنید.
برای تغییر نحوه یافتن راه حل، روی دکمه گزینه ها در کادر محاوره ای Solver Parameters کلیک کنید، و یک یا همه گزینه ها را در تب های GRG Nonlinear ، All Methods و Evolutionary پیکربندی کنید.
به این صورت می توانید از Solver در Excel استفاده کنید. تا بهترین راه حل ها را برای مشکلات تصمیم گیری خود بیابید. و اکنون، ممکن است بخواهیدمثالهای حلکننده اکسل که در این آموزش مورد بحث قرار گرفتهاند را دانلود کنید و برای درک بهتر آنها را مهندسی معکوس کنید. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینم.
به شما کمک می کند بازگشت سرمایه را به حداکثر برسانید، بودجه بهینه را برای کمپین تبلیغاتی خود انتخاب کنید، بهترین برنامه کاری را برای کارمندان خود بسازید، هزینه های تحویل را به حداقل برسانید، و غیره.نحوه افزودن Solver به Excel
افزونه Solver با تمام نسخههای Microsoft Excel که از سال 2003 شروع میشود، گنجانده شده است، اما به طور پیشفرض فعال نیست.
برای افزودن Solver به اکسل، مراحل زیر را انجام دهید:
- در Excel 2010 - Excel 365، روی File > Options کلیک کنید.
در Excel 2007، روی دکمه Microsoft Office کلیک کنید و سپس روی گزینه های اکسل کلیک کنید.
- در گفتگوی گزینه های اکسل ، روی افزونه ها در نوار کناری سمت چپ کلیک کنید، مطمئن شوید افزونه های اکسل در کادر مدیریت در پایین پنجره انتخاب شده و روی برو کلیک کنید.
- در <کادر گفتگوی 1>افزونهها ، کادر Solver Add-in را علامت بزنید و روی OK کلیک کنید:
برای دریافت Solver در Excel 2003 ، به منوی Tools بروید و روی Add-Ins کلیک کنید. در فهرست افزونهها در دسترس ، کادر Solver Add-in را علامت بزنید و روی OK کلیک کنید.
توجه داشته باشید. اگر اکسل پیامی مبنی بر عدم نصب افزونه حل کننده در رایانه شما نشان می دهد، برای نصب آن روی بله کلیک کنید.
Solver در اکسل کجاست؟
در نسخه های مدرن اکسل، دکمه Solver در برگه Data ، در Analysis<ظاهر می شود. 2> گروه:
کجاستحل کننده در اکسل 2003؟
پس از بارگیری افزونه حل کننده در اکسل 2003، دستور آن به منوی ابزارها اضافه می شود:
اکنون که می دانید حل کننده را در اکسل کجا پیدا کنید، یک کاربرگ جدید باز کنید و بیایید شروع کنیم!
توجه داشته باشید. مثالهای مورد بحث در این آموزش از Solver در اکسل 2013 استفاده میکنند. اگر نسخه اکسل دیگری دارید، ممکن است اسکرینشاتها دقیقاً با نسخه شما مطابقت نداشته باشند، اگرچه عملکرد Solver اساساً یکسان است.
نحوه استفاده از Solver در Excel
قبل از اجرای افزونه Excel Solver، مدلی را که می خواهید حل کنید در یک کاربرگ فرموله کنید. در این مثال، اجازه دهید راه حلی برای مسئله بهینه سازی ساده زیر پیدا کنیم.
مشکل . فرض کنید شما صاحب یک سالن زیبایی هستید و در حال برنامه ریزی برای ارائه خدمات جدیدی به مشتریان خود هستید. برای این کار، باید یک تجهیزات جدید با قیمت 40000 دلار خریداری کنید، که باید طی 12 ماه به صورت اقساط پرداخت شود. تجهیزات جدید در بازه زمانی مشخص شده.
برای این کار، مدل زیر را ایجاد کرده ام:
و اکنون، بیایید ببینیم چگونه Excel Solver می تواند راه حلی برای این مشکل پیدا کنید.
1. Excel Solver
در تب Data ، در گروه Analysis ، روی دکمه Solver کلیک کنید.
2. مشکل را تعریف کنید
پنجره Solver Parameters در جایی که دارید باز می شودبرای تنظیم 3 جزء اصلی:
- سلول هدف
- سلول های متغیر
- محدودیت ها
دقیقا Excel Solver با چه کاری انجام می دهد پارامترهای بالا مقدار بهینه (حداکثر، حداقل یا مشخص شده) را برای فرمول در سلول هدف با تغییر مقادیر در سلول های متغیر ، و مشروط به محدودیت در محدودیت ها پیدا می کند. سلول های .
هدف
سلول هدف (سلول هدف در نسخه های قبلی اکسل) سلول حاوی فرمول است. که نشان دهنده هدف یا هدف مشکل است. هدف می تواند به حداکثر رساندن، به حداقل رساندن یا دستیابی به مقداری هدف باشد.
در این مثال، سلول هدف B7 است که مدت پرداخت را با استفاده از فرمول =B3/(B4*B5)
محاسبه می کند و نتیجه فرمول باید برابر باشد با 12:
سلول های متغیر
متغیر سلول ( تغییر سلول یا قابل تنظیم سلولها در نسخههای قبلی) سلولهایی هستند که حاوی دادههای متغیری هستند که میتوان آنها را برای دستیابی به هدف تغییر داد. Excel Solver اجازه می دهد تا حداکثر 200 سلول متغیر را تعیین کنید.
در این مثال، ما چند سلول داریم که مقادیر آنها قابل تغییر است:
- کلاینت های پیش بینی شده در هر ماه (B4) که باید کمتر یا مساوی 50 باشد. و
- هزینه هر سرویس (B5) که می خواهیم Excel Solver محاسبه کند.
نکته. اگر سلول ها یا محدوده های متغیر در مدل شما غیر مجاور هستند،اولین سلول یا محدوده را انتخاب کنید و سپس کلید Ctrl را در حین انتخاب سلول ها و/یا محدوده های دیگر فشار داده و نگه دارید. یا محدوده ها را به صورت دستی و با کاما از هم جدا کنید.
محدودیت ها
حل کننده اکسل محدودیت ها محدودیت ها یا محدودیت های راه حل های ممکن برای مشکل هستند. به بیان دیگر، محدودیت ها شرایطی هستند که باید رعایت شوند.
برای افزودن یک محدودیت(ها)، موارد زیر را انجام دهید:
- روی Add کلیک کنید. دکمه سمت راست به کادر " موضوع محدودیت ها ".
- در پنجره محدودیت ، یک محدودیت وارد کنید.
- دکمه افزودن را کلیک کنید تا محدودیت را به لیست اضافه کنید.
- ادامه محدودیت های دیگر را وارد کنید.
- بعد از اینکه محدودیت نهایی را وارد کردید، روی OK کلیک کنید تا به پنجره اصلی Solver Parameters برگردید.
حل کننده اکسل اجازه می دهد تا روابط زیر را بین سلول ارجاع شده و محدودیت مشخص کنید.
- کمتر یا مساوی ، برابر و بزرگتر یا مساوی . شما این روابط را با انتخاب یک سلول در کادر Cell Reference ، انتخاب یکی از نشانه های زیر تنظیم می کنید: <= ، =، یا > ;= ، و سپس یک عدد، مرجع سلول / نام سلول، یا فرمول را در کادر Constraint تایپ کنید (لطفاً تصویر صفحه بالا را ببینید).
- Integer اگر سلول ارجاع شده باید یک عدد صحیح باشد، int را انتخاب کنید،و کلمه integer در کادر Constraint ظاهر می شود.
- مقادیر مختلف . اگر هر سلول در محدوده ارجاع شده باید دارای مقدار متفاوتی باشد، dif را انتخاب کنید و کلمه AllDifferent در کادر Constraint ظاهر می شود.
- دودویی . اگر می خواهید یک سلول ارجاع شده را به 0 یا 1 محدود کنید، bin را انتخاب کنید و کلمه binary در کادر Constraint ظاهر می شود.
توجه روابط int ، bin و dif فقط برای محدودیتهای سلولهای متغیر قابل استفاده هستند.
برای ویرایش یا حذف یک محدودیت موجود موارد زیر را انجام دهید:
- در کادر گفتگوی Solver Parameters ، روی محدودیت.
- برای اصلاح محدودیت انتخاب شده، روی Change کلیک کنید و تغییرات مورد نظر خود را ایجاد کنید.
- برای حذف محدودیت، روی دکمه Delete کلیک کنید. .
در این مثال، محدودیت ها عبارتند از:
- B3=40000 - هزینه تجهیزات جدید 40000 دلار است.
- B4<=50 - تعداد بیماران پیش بینی شده در ماه در زیر 50 نفر.
3. حل مشکل
بعد از اینکه تمام پارامترها را پیکربندی کردید، روی دکمه حل در پایین پنجره Solver Parameters کلیک کنید (تصویر بالا را ببینید) و اجازه دهید افزونه Excel Solver راه حل بهینه را برای مشکل شما پیدا می کند.
بسته به پیچیدگی مدل، حافظه کامپیوتر و سرعت پردازنده، ممکن است چند مورد طول بکشد.ثانیه، چند دقیقه یا حتی چند ساعت.
هنگامی که Solver پردازش را تمام کرد، پنجره گفتگوی Solver Results را نمایش می دهد، جایی که Keep the Solver Solution<را انتخاب می کنید. 9> و روی OK کلیک کنید:
پنجره Solver Result بسته می شود و راه حل ظاهر می شود فوراً در برگه.
در این مثال، 66.67 دلار در سلول B5 ظاهر می شود، که حداقل هزینه برای هر سرویس است که به شما امکان می دهد هزینه تجهیزات جدید را در 12 ماه بپردازید، به شرطی که حداقل 50 مشتری در هر وجود داشته باشد. ماه:
نکات:
- اگر حل کننده اکسل مشکل خاصی را برای مدت طولانی پردازش می کند، می توانید با فشار دادن دکمه، فرآیند را قطع کنید. کلید Esc اکسل کاربرگ را با آخرین مقادیر یافت شده برای سلول های متغیر دوباره محاسبه می کند.
- برای دریافت جزئیات بیشتر در مورد مشکل حل شده، روی یک نوع گزارش در کادر گزارش ها کلیک کنید. و سپس OK را کلیک کنید. این گزارش در یک کاربرگ جدید ایجاد میشود:
اکنون که ایده اصلی نحوه استفاده از Solver در اکسل را دارید، اجازه دهید نگاهی دقیقتر به یک زوج داشته باشیم. مثال های بیشتری که ممکن است به شما کمک کند درک بیشتری کسب کنید.
نمونه های Excel Solver
در زیر دو نمونه دیگر از استفاده از افزونه Excel Solver را خواهید دید. ابتدا، ما یک راه حل برای یک پازل شناخته شده پیدا می کنیم، و سپس یک مسئله برنامه ریزی خطی واقعی را حل می کنیم.
Excel Solver مثال 1 (مربع جادویی)
Iباور کنید که همه با پازل های "مربع جادویی" آشنا هستند که در آنها باید مجموعه ای از اعداد را در یک مربع قرار دهید تا همه سطرها، ستون ها و مورب ها به یک عدد خاص جمع شوند.
به عنوان مثال، آیا می دانید راه حلی برای مربع 3x3 حاوی اعداد از 1 تا 9 که در آن هر سطر، ستون و مورب به 15 می رسد؟
حل کردن این معما با آزمون و خطا احتمالاً مشکلی نیست، اما شرط می بندم که حل کننده آن را پیدا خواهد کرد. راه حل سریعتر بخشی از کار ما این است که مشکل را به درستی تعریف کنیم.
برای شروع، اعداد 1 تا 9 را در جدولی متشکل از 3 سطر و 3 ستون وارد کنید. Excel Solver در واقع به آن اعداد نیاز ندارد، اما آنها به ما کمک می کنند تا مشکل را تجسم کنیم. آنچه افزونه Excel Solver واقعاً به آن نیاز دارد فرمول های SUM است که مجموعاً هر سطر، ستون و 2 قطر دارد:
با همه فرمول ها، Solver را اجرا و راه اندازی کنید. پارامترهای زیر:
- Set Objective . در این مثال، ما نیازی به تعیین هدف نداریم، بنابراین این کادر را خالی بگذارید.
- Variable Cells . ما می خواهیم اعداد را در سلول های B2 تا D4 پر کنیم، بنابراین محدوده B2:D4 را انتخاب کنید.
- Constraints . شرایط زیر باید رعایت شود:
- $B$2:$D$4 = AllDifferent - همه سلولهای متغیر باید دارای مقادیر متفاوتی باشند.
- $B$2:$D$4 = عدد صحیح - همه از سلول های متغیر باید اعداد صحیح باشد.
- $B$5:$D$5 = 15 - مجموع مقادیر در هرستون باید برابر با 15 باشد.
- $E$2:$E$4 = 15 - مجموع مقادیر در هر ردیف باید برابر با 15 باشد.
- $B$7:$B$8 = 15 - مجموع هر دو قطر باید برابر با 15 باشد.
در نهایت، روی دکمه حل کلیک کنید، و راه حل وجود دارد!
Excel Solver مثال 2 (مسئله برنامه نویسی خطی)
این نمونه ای از یک مسئله ساده بهینه سازی حمل و نقل با هدف خطی است. مدلهای بهینهسازی پیچیدهتر از این نوع توسط بسیاری از شرکتها برای صرفهجویی در هزاران دلار در سال استفاده میشود.
مشکل : شما میخواهید هزینه حمل و نقل کالا را از 2 انبار مختلف به 4 انبار مختلف به حداقل برسانید. مشتریان هر انبار عرضه محدودی دارد و هر مشتری تقاضای معینی دارد.
هدف : به حداقل رساندن کل هزینه حمل و نقل، از مقدار موجود در هر انبار تجاوز نکنید و تقاضای هر مشتری را برآورده کنید. .
داده های منبع
مشکل بهینه سازی حمل و نقل ما چگونه به نظر می رسد:
فرمول بندی مدل
به مشکل برنامه نویسی خطی خود را برای حل کننده اکسل تعریف کنید، اجازه دهید به 3 سوال اصلی پاسخ دهیم:
- چه تصمیماتی باید گرفته شود؟ ما می خواهیم مقدار بهینه کالا را برای تحویل به هر مشتری از هر انبار محاسبه کنیم. اینها سلولهای متغیر هستند (B7:E8).
- محدودیتها چیست؟ از منابع موجود در هر انبار (I7:I8) نمی توان تجاوز کرد، و