نوشته های دکتر خودم

اینجا من یعنی خودم در مورد خودم و خود خودم می نویسم

نوشته های دکتر خودم

اینجا من یعنی خودم در مورد خودم و خود خودم می نویسم

جدول سیمپلکس به زبان خودمانی :دی

 * بهانه این پست رو بهزاد بهم داد، ازش تشکر میکنم ؛)

 * گیریم مساله برنامه‌ریزی خطی ما این باشه:

سعی می‌کنیم که به روش سیمپلکس، این برنامه‌ریزی خطی رو حل کنیم. برای دوستانی که با برنامه‌ریزی خطی آشنا نیستن بگم که این دستگاه بالا میتونه نشون از برنامه‌ریزی ِ پدر ِ خانواده باشه برای رفتن به مسافرت. پدر میخواد خانواده‌ش، بیشترین لذت ممکن رو از بودن در دو شهر x و y داشته باشن، فقط مشکل اینجاست که اگه خیلی بخوان خوش باشن پول‌شون تموم میشه ؛) خب پدر برنامه‌ریزی میکنه تا در هر شهر چقدر بمونه و بیشترین مقدار خوش‌گذشتن بهشون هم چند دکتر -که دکتر واحد خوش‌گذرونیه- میتونه باشه :)

 * بعد از استاندارد کردن مساله، ما اینطور چیزی داریم:

* برای مساله بالا اگه جدول سیمپلکس رو تشکیل بدیم، اینطور چیزی خواهیم داشت:

 * در جدول بالا، ما کدوم متغیر رو برای ورود به پایه انتخاب کنیم؟ اونی که کوچکترین ضریب ِ منفی رو در سطر ِ تابع هدف داشته باشه، یعنی در اینجا y، چون ضریبش منفی هفت ِ و کوچکترین، چرا این کار رو انجام میدیم؟ در جدول بالا، اگه معادله تابع هدف رو بر اساس سطر اول بنویسم، خواهیم داشت: z = 2x + 7y؛ در این معادله، اگر به مقدار y یک واحد اضافه کنید، مقدار تابع هدف -یعنی z- هفت واحد -یعنی ضریب y- افزایش پیدا میکنه، در حالیکه اگه به مقدار x یک واحد اضافه کنیم، مقدار تابع هدف ۲ واحد افزایش پیدا میکنه، چون متغیرهای s و h -متغیرهای کمکی- در تابع هدف ضریبشون صفر ِ، پس افزایش اونا تاثیری در مقدار تابع هدف نمیذاره. بنابراین متغیر y برای ورود به پایه انتخاب میشه.

 * خب حالا کی باید خارج بشه؟ جواب این سوال رابطه‌ی مستقیم داره با مقدار افزایش متغیر ورودی. یعنی ما در نمودار بالا، متغیر y رو تا جایی میتونیم افزایش بدیم که از اون ناحیه سبز رنگ که همون محدوده‌ی شدنی -Feasible area- هست خارج نشیم. این یعنی در صورت افزایش متغیر y هیچکدوم از محدودیت‌ها نباید از شرایط ارضاشده بیان بیرون و مقدار هیچکدوم از متغیرها هم نباید منفی بشه. خب برای فهمیدن اینکه ما چقدر میتونیم متغیر y رو افزایش بدیم، فرض می‌کنیم که همه‌ی متغیرهای غیرپایه‌ای موجود -در اینجا یعنی x- مقدار صفر رو داشته باشند -یعنی فرض می‌کنیم مقدار افزایش‌شون در این مرحله از جدول صفر واحد باشه- بنابراین در شکل استاندارد برنامه‌ریزی خطی که در بالا اومد، محدودیت‌ها اینطور چیزی میشن:

از این معادله، مقادیر معادل متغیر‌های پایه‌ای رو بدست میاریم:

خب گفتیم که هیچکدوم از متغیرها نباید منفی باشند، پس باید داشته باشیم: و ، از این دوتا و معادلات بالا نتیجه میشه که و . این یعنی اگر مقدار y از ۲.۸۵ (که همون هست) بیشتر بشه، h منفی میشه و اگر از ۴ بیشتر بشه s. ما برای اینکه هر دوتا متغیر نامنفی باقی بمونن، مقدار کمتر یعنی ۲.۸۵ رو انتخاب می‌کنیم. این یعنی اگر مقدار y به اندازه ۲.۸۵ افزایش پیدا کنه، مقدار تابع هدف بهتر میشه و همه شرایط هم ارضاشده باقی میمونن و همچنین اگه توجه کنی مقدار h هم در کنار این افزایش صفر میشه. این یعنی h دیگه تاثیری در بهینگی مقدار تابع هدف نداره و از پایه میاد بیرون.

 * خب همه‌ی این کارهایی رو که در بالا گفتیم، در جدول سیمپلکس اینطور انجام میدیم: ستون متغیر ورودی رو انتخاب می‌کنیم، همه‌ی مقادیر نامنفی سمت راست رو، بر مقادیر نامنفی این ستون تقسیم می‌کنیم، هر کدوم کوچکتر شد، میشه متغیر خروجی، یعنی اینطور چیزی:

 * خب الان در جدول ما، در این مرحله و پس از ورود و خروج متغیرها، متغیرهای پایه‌ای y و h هستند، حالا با توجه به محاسبات و داده‌های جدید که در بالا بود، این قانون از سیمپلکس که ظریب‌ هر متغیرپایه‌ای در محدودیت‌ها باید یک باشه و بالا و پایین اون ضریب صفر رو با یه عملیات سطری مقدماتی برقرار می‌کنیم، راستش رو بخوای یادم نیست چرا اینطور کاری رو میکردیم، به نظرم جز شرایط سیمپلکس بود اینطور چیزی اصن :دی- یعنی جدول اینطور چیزی میشه:

توجه کن که در جدول بالا ۱۳/۷ یعنی :دی

 * خب دوباره ما میخوایم در این جدول متغیر ورود به پایه انتخاب کنیم تا در صورت توان، جواب رو بهینه‌تر کنیم. گفتیم که در مسائل ماکزیمم‌سازی، متغیر ِ دارای ِ کوچکترین ضریب ِ منفی در سطر تابع هدف میشه متغیر ِ ورودی، اما ما در این جدول اینطور ضریبی نداریم و این یعنی جدولمون بهینه شد :) خودت میتونی شکل معادله‌ای تابع هدف رو بنویسی و ببینی که با افزایش هر واحد از متغیرهای پایه‌ای، مقدار تابع هدف کمتر خواهد شد ؛)

 * خیلی به محاسبات من اعتماد نکنید! هم دم افطار ِ و هم من در حالت عادی محاسباتم خیلی افتضاحه :))

نظرات 17 + ارسال نظر
behzad پنج‌شنبه 12 مرداد‌ماه سال 1391 ساعت 10:18 ق.ظ http://behzadfarhadi.mihanblog


بابا ایوللللللل
دمت جزغاله
مرسیییییییییییییی
اصلا انتظار نداشتم اینجوری توضیح بدی

این صفحه رو پرینت میگیرم برم بخونم
مرسییییییییییی
خیلی goliدکتر
منم بهت برنامه نویسی یاد میدم
((=
;))
شوخی بود شما استادی
ایوللللللل من برم پرین بگیرم ازش
ایشالا هرچی از خدا میخوای به نفعته خدا بهت بده پسرم
بجا سیگار کشیدن هم پسته بخور
(حالا با این حرفم همه فک میکنن سیگاری هستی:)))
مرسی خدافظظظظظ

بهزاد شاید جایی اشتباه کرده باشم، روشون فکر کن و با بازارا تطبیق بده اینا رو.

سیگار که عشق ِ :))

موفق باشی

شهرزاد پنج‌شنبه 12 مرداد‌ماه سال 1391 ساعت 04:05 ب.ظ

طراوت جمعه 13 مرداد‌ماه سال 1391 ساعت 11:43 ق.ظ http://nabeghehaye89.blogsky.com

به به چه وبی؛ چه قالبی؛ عجب پایی!
خدایی ازین انتگراله این گوشه؛ خیلی خوشم اومد. البته قابل شمارو نداره ها!!
آفرین به این کاربرد زندگی در ریاضیات! خوشم میاد از علمتون در همه جا استفاده میکنید
حتی در ریاضی!

خب حال و احوال چطوره؟!

ای بابا، قالب چه قابل داره؟ اسمایلی فائزه :))

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

مرسی! خوبم به خوبی شما :)

behzad جمعه 13 مرداد‌ماه سال 1391 ساعت 06:36 ب.ظ


سلامممممممم
دارم میخونم
بازم ممنون بخاطر زحمتی که کشیدی

مرسی یاد گرفتما الان دارم روش ام بزرگ رو میخونم دیگه بقیه آسونه
فهمیدم مشکل کجا بوده
اشتباه تایپی
اونم پر اشتباهات تایپی بوده ها
برا همین قاطی میکردم
این پستت رو خوندم خیلی کمک کرد خیلیییییییی

سلام بهزاد :)

کتاب بازارا فارسی رو داری؟

حالا اونقدر که نه، یه کم کمتر :دی

بهزاد شنبه 14 مرداد‌ماه سال 1391 ساعت 12:49 ب.ظ

بازارا نووووچ ندارم اصن نه فارسی نه لاتین
یه کتاب مال پیام نور چاپ دوران ژوراسیک اونو دارم میخونم
اگه بازارا داشتم که خیلی خوب می شد راستش اسمشو از تو شنیدم
شکسته بندی نفرمایید

کتاب برنامه ریزی خطی، نوشته بازارا، جارویس و شرالی، ترجمه اسماعیل خرم. یکی از سورسهای اصلی تحقیق ِ از لیسانس تا دکترا :دی

فارسیش رو من خوندم خیلی خوشم نیومد :دی

خواهش میکنم جناب

سید+ع دوشنبه 16 مرداد‌ماه سال 1391 ساعت 07:42 ب.ظ http://rahaeidot.blogfa

سلام اقا میثم انشائالله سرکیف باشی

داداش ما که چیزی نفهمیدیم

سلام حاجی. مرسی :*

اشکال نداره ؛) همین که فرمولا رو دیدی روحت تازه شده کافیه :دی

haniye جمعه 20 مرداد‌ماه سال 1391 ساعت 09:49 ق.ظ http://roozi.blogsky.com/

اخی..یاد جوونیام افتادم
ما هم تو فوق لیسانس درس روش تحقیق سیمپلکس داشتیم.
قشنگ بود و شیرین :)

حالا جوری میگی جوونی کسی ندونه ۶۵ سالته! والا! :)

خدا کنه من دیگه نداشته باشم، حوصله‌ی محاسبات رو ندارم :دی

faezeh یکشنبه 23 مهر‌ماه سال 1391 ساعت 09:11 ب.ظ

سلام
خیلی وبتون ریباست
اگه اجازه بدید از کطالبتون کپی بگیرم!

سلام.
ممنون.
خواهش میکنم! اجازه فرمائید!

فاطمه سه‌شنبه 28 آذر‌ماه سال 1391 ساعت 01:33 ب.ظ http://venus67.loxblog.com

سلام خوبی ؟من تو مسزله ام بزرگ اشکال دارم یه سوال بدم برام حل میکنی ؟
نمره عملیم بستگی به اون داره توروخدا جوابمو بده تا سوالمو بگم

سلام.
لطفا مساله‌تون رو بفرمائید، اگه بتونم در خدمت هستم.

یاسین زاهدان یکشنبه 29 اردیبهشت‌ماه سال 1392 ساعت 01:12 ب.ظ

دکتر سلام
سلام دکتر :دی

آقا من وارد شونده و خارج شونده و پاشنه رو یاد دارم بدست بیارم ... فقط وقتی میریم مرحله بعد
غیر از وارد شونده متغیرهای دیگه رو باید در چی ضرب و تقسیم کنیم !!!

شما گفتی: بالا و پایین اون ضریب صفر رو با یه عملیات سطری مقدماتی برقرار می‌کنیم!

خب این چه جوریه ؟!

یعنی تو این حل
http://s1.picofile.com/file/7455795585/simplex3.jpg
من متوجه نمیشم h رو شما چه جوری عددهاش رو بدست آوردی ! ولی y که مشخصه در پاشنه یا همون 7 تقسیم شده !

ممنون میشم کمک کنی که پایان ترم چند روز دیگه ست و ما هم تو این موندیم !

سلام یاسین جان!
خوش اومدی :)

خب قرارمون این بود که متغیری که در پایه‌ست، باید ضریبش یک باشه و بالا و پایینش صفر باشه، برای یک کردن ضریب y، سطر رو بر ۷ تقسیم کردیم، حالا برای صفر کردن درایه‌ی زیرش (که در جدول قبل ۳ هست) میایم سطر جدید رو در منفی یک سوم ضرب می‌کنیم و با سطر پایین جمع می‌کنیم.

اگه متوجه نشدی بگو گرافیکی تو یه پست بگم.

موفق باشی :)

یاسین زاهدان یکشنبه 29 اردیبهشت‌ماه سال 1392 ساعت 11:47 ب.ظ

زنده باشی دوست خوبم

واقعا متاسفم ... نمیدونم چرا هر کار کردم به جواب نرسیدم )):

واقعا ممنون میشم اگه گرافیکی قرار بدین ... خیلی لطف میکنین

فقط یه چند نکته هست میگم
اگه اشتباه هست لطفا ایراد رو بگین (:

در مورد درایه هایی که پایین و بالای پاشنه ما هستن و باید حتما 0 بشن ... اگر این درایه 3 باشه شما گفتید سطر جدید رو در منفی یک سوم ضرب میکنیم !
اولین چیزی که به ذهنم رسید
اگه این درایه 4 باشه ، سطر جدید رو باید در منفی یک چهارم ضرب کنیم؟
درسته؟

سوال بعدی - شما گفتید منفی یک سوم رو در سطر جدید ضرب میکنیم !
سطر جدید در اینجا منظورتون y بود که پاشنه درش قرار داشت و ما بدستش آوردیم در جدول جدید ؟

واقعا سپاسگزارم
همین که جواب دادید خیلی خوشحالم کردین ((:

آرزوی موفقیت و تندرستی

خب مثل اینکه مشکل در کامنت بعدی حل شد :)

یاسین زاهدان دوشنبه 30 اردیبهشت‌ماه سال 1392 ساعت 12:08 ق.ظ

یافتم یافتم :دی

یعنی دکتر ، اشک تو چشام جمع شده :دی
خدایی حس خوبی دارم ... خیلیییییی

واسه بدست آوردن ضریب های جدید تو مرحله های بعد اینجوری رفتم :

ضرایب سطر جدید = ضرایط سطر قدیم - (منهای) ضرایب مربوط به سطر لولای جدید x (ضربدر) ضرایب مربوط در ستون لولا


دقیقا عددهای شما بدست اومد و فوق العاده خوشحالم


قربونت برم داداشی (:

آفرین! دقیقا همین‌ه.

کتاب بازارا رو دارین؟

دکتر منم پنج‌شنبه 31 مرداد‌ماه سال 1392 ساعت 10:40 ق.ظ

دکتر خودت، به بنظرم کتاب راحت تر از تو توضیح داده که. بازم خوبه دکتری و پروفسور نشدی ، وگرنه چی میشد دیگه!!!!

شما این رو با ویرایش دوم بازارا بخون، اونوخ بگو من ساده‌تر گفتم یا کتاب :دی

طناز پنج‌شنبه 16 آبان‌ماه سال 1392 ساعت 12:36 ق.ظ

سلام..خوب هستید.
اول میخوام بابت وبلاگ خوبی ک داری تشکرکنم خیلی جامع بود.ممنون
یه سوال دارم میخواسم بی زحمت اگه میتونی جوابشوبدی بهم
اگردرتابلوبهینه فاز۱روش دوفازی درپایهRبامقدارصفرباشدچه کارکنیم؟؟؟؟؟؟؟؟؟؟



بازم ممنون

سلام،
خواهش میکنم!

راستش من یک سالی میشه که برنامه‌ریزی خطی نخوندم، تا اونجایی که یادم میاد از روش دوفازی برای پیدا کردن یک پایه‌ی شدنی استفاده می‌کردیم تا جدول اصلی رو باهاش شروع کنیم، خب وقتی در پایان فاز اول طبیعتا اگه در پایه متغیر مصنوعی داشته باشیم که مساله نشدنی میشه، حالا فرض کنیم که نداشته باشیم، در اینصورت یکی از متیغرهای اصلی صفر شدن که در این صورت با یه پایه‌ی تبهگن باید شروع کنیم. هوم؟

یــِ دختـــرِ خیــالبـــآفـــ جمعه 24 آبان‌ماه سال 1392 ساعت 12:06 ق.ظ http://whimsical-girl.bloga.com

دمت گرم واقعا.خیلی حال دادی بم

ایشالله یه جایی توام یجا گیر کردی یه آدم توپ مث خودت بدردت بخوره

خیر از جوونیت ببینی ننه

خیلی مرسی

ممنونم :)

نفیسه پنج‌شنبه 21 آذر‌ماه سال 1392 ساعت 03:21 ب.ظ

سلام
خسته نباشید میشه یادبدید که چطور یک مدل برنامهریزی خطی را که به روش سیمپلکس حل کردهایم را بطور سه بعدی بسازیم

سلام.
متوجه سوال نشدم!

سعید یکشنبه 8 دی‌ماه سال 1392 ساعت 06:58 ب.ظ

سلام این متغیر روردی ستون چه طوری در می ارویم و در سطر جدید محاسبه می کنیم راهنمایی بفرمایید

من متوجه سوال نمیشم! مشکل چیه الان؟

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد