PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : برنامه‌ریزی خطی و مختصري از روش الگوريتم سيمپلكس



donya88
08-26-2010, 07:20 AM
برنامه‌ریزی خطی


برنامه‌ریزی خطی، یا همان بهینه‌سازی خطی، روشی در ریاضیات (http://fa.wikipedia.org/wiki/%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C%D8%A7%D8%AA) است که به پیدا کردن مقدار کمینه یا بیشینه از یک تابع خطی (http://fa.wikipedia.org/w/index.php?title=%D8%AA%D8%A7%D8%A8%D8%B9_%D8%AE%D8 %B7%DB%8C&action=edit&redlink=1) روی یک چندضلعی (http://fa.wikipedia.org/wiki/%DA%86%D9%86%D8%AF%D8%B6%D9%84%D8%B9%DB%8C) محدب (http://fa.wikipedia.org/w/index.php?title=%D9%85%D8%AD%D8%AF%D8%A8&action=edit&redlink=1) می‌پردازد این چندضلعی محدب در حقیقت نمایش نموداری (http://fa.wikipedia.org/wiki/%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1) تعدادی محدودیت از نوع نامعادله (http://fa.wikipedia.org/w/index.php?title=%D9%86%D8%A7%D9%85%D8%B9%D8%A7%D8% AF%D9%84%D9%87&action=edit&redlink=1) روی متغیرهای (http://fa.wikipedia.org/wiki/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1) تابع است. به بیان ساده‌تر به وسیله برنامه‌سازی خطی می‌توان بهترین نتیجه (مثلاً بیشترین سود یا کمترین هزینه) را در شرایط خاص و با محدودیت‌های خاص به دست آورد. محل اصلی استفاده برنامه‌ریزی خطی در اقتصاد (http://fa.wikipedia.org/wiki/%D8%A7%D9%82%D8%AA%D8%B5%D8%A7%D8%AF) است، اما در مهندسی (http://fa.wikipedia.org/wiki/%D9%85%D9%87%D9%86%D8%AF%D8%B3%DB%8C) نیز کاربردهای فراوانی دارد. می‌توان گفت حدود یک‌چهارم کل محاسبات علمی که بر روی رایانه (http://fa.wikipedia.org/wiki/%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87) انجام گرفته‌است، به برنامه‌ریزی خطی و مشتقات آن مربوط می‌شود



تاریخچه

مسئلهٔ حل مجموعه‌ای از نامعادلات (http://fa.wikipedia.org/w/index.php?title=%D9%86%D8%A7%D9%85%D8%B9%D8%A7%D8% AF%D9%84%D9%87&action=edit&redlink=1) خطی (http://fa.wikipedia.org/w/index.php?title=%D8%AE%D8%B7%DB%8C&action=edit&redlink=1) از زمان فوریه (http://fa.wikipedia.org/wiki/%D9%81%D9%88%D8%B1%DB%8C%D9%87) مطرح بوده‌است. برنامه‌ریزی خطی به عنوان یک مدل ریاضی (http://fa.wikipedia.org/wiki/%D9%85%D8%AF%D9%84_%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C) در زمان جنگ جهانی دوم (http://fa.wikipedia.org/wiki/%D8%AC%D9%86%DA%AF_%D8%AC%D9%87%D8%A7%D9%86%DB%8C_ %D8%AF%D9%88%D9%85) شکل گرفت تا خرج‌ها و بازگشت‌های مالی را طوری سامان بخشد که به کاهش هزینه‌های ارتش و افزایش خسارات دشمن بینجامد. این طرح تا سال 1947 (http://fa.wikipedia.org/wiki/1947_(%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C)) سری باقی ماند. پس از جنگ، بسیاری از صنایع به استفاده از آن پرداختند. پایه‌گذاران این حوزه جورج دانتزیگ (http://fa.wikipedia.org/w/index.php?title=%D8%AC%D9%88%D8%B1%D8%AC_%D8%AF%D8 %A7%D9%86%D8%AA%D8%B2%DB%8C%DA%AF&action=edit&redlink=1) منتشرکنندهٔ روش سیمپلکس (http://fa.wikipedia.org/w/index.php?title=%D8%B1%D9%88%D8%B4_%D8%B3%DB%8C%D9 %85%D9%BE%D9%84%DA%A9%D8%B3&action=edit&redlink=1) در سال 1947 (http://fa.wikipedia.org/wiki/1947_(%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C)) ، جان نیومن (http://fa.wikipedia.org/w/index.php?title=%D8%AC%D8%A7%D9%86_%D9%86%DB%8C%D9 %88%D9%85%D9%86&action=edit&redlink=1) مطرح‌کننده نظریه دوگانگی (http://fa.wikipedia.org/w/index.php?title=%D9%86%D8%B8%D8%B1%DB%8C%D9%87_%D8 %AF%D9%88%DA%AF%D8%A7%D9%86%DA%AF%DB%8C&action=edit&redlink=1) در همان سال، و لئونید کانتروویچ (http://fa.wikipedia.org/w/index.php?title=%D9%84%D8%A6%D9%88%D9%86%DB%8C%D8% AF_%DA%A9%D8%A7%D9%86%D8%AA%D8%B1%D9%88%D9%88%DB%8 C%DA%86&action=edit&redlink=1) ریاضیدان روس (http://fa.wikipedia.org/wiki/%D8%B1%D9%88%D8%B3) که از تکنیک‌های مشابهی پیش از دانتزینگ استفاده کرد و نوبل (http://fa.wikipedia.org/wiki/%D9%86%D9%88%D8%A8%D9%84) سال 1957 (http://fa.wikipedia.org/wiki/1957_(%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C)) را برد هستند. نخستین بار در سال 1979 (http://fa.wikipedia.org/wiki/1979_(%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C)) لئونید خاچیان (http://fa.wikipedia.org/w/index.php?title=%D9%84%D8%A6%D9%88%D9%86%DB%8C%D8% AF_%D8%AE%D8%A7%DA%86%DB%8C%D8%A7%D9%86&action=edit&redlink=1) نشان داد که مسئله برنامه‌ریزی خطی در مرتبه زمانی (http://fa.wikipedia.org/w/index.php?title=%D9%85%D8%B1%D8%AA%D8%A8%D9%87_%D8 %B2%D9%85%D8%A7%D9%86%DB%8C&action=edit&redlink=1) چندجمله‌ای (http://fa.wikipedia.org/wiki/%DA%86%D9%86%D8%AF%D8%AC%D9%85%D9%84%D9%87%E2%80%8 C%D8%A7%DB%8C) قابل حل است. اما پیشرفت اساسی‌تر زمانی حاصل شد که نراندرا کارمارکار (http://fa.wikipedia.org/w/index.php?title=%D9%86%D8%B1%D8%A7%D9%86%D8%AF%D8% B1%D8%A7_%DA%A9%D8%A7%D8%B1%D9%85%D8%A7%D8%B1%DA%A 9%D8%A7%D8%B1&action=edit&redlink=1) یک روش نقطه داخلی (http://fa.wikipedia.org/w/index.php?title=%D8%B1%D9%88%D8%B4_%D9%86%D9%82%D8 %B7%D9%87_%D8%AF%D8%A7%D8%AE%D9%84%DB%8C&action=edit&redlink=1) جدید برای حل این مسائل معرفی کرد. مثال دانتزینگ برای منتصب کردن هفتاد نفر به هفتاد شغل متمایز کارآمدی برنامه‌ریزی خطی را به نمایش می‌گذارد. توان محاسباتی لازم برای آزمودن همهٔ جایگشت‌های (http://fa.wikipedia.org/wiki/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B4%D8%AA) ممکن این مسئله بسیار بالاست. این تعداد از تعداد ذرات موجود در عالم بیشتر است. با این حال، پیدا کردن پاسخ بهینه با تبدیل مسئله به یک مسئله برنامه‌ریزی خطی و حل آن با روش سیمپلکس (http://fa.wikipedia.org/w/index.php?title=%D8%B3%DB%8C%D9%85%D9%BE%D9%84%DA% A9%D8%B3&action=edit&redlink=1) تنها لحظه‌ای طول می‌کشد.
الگوریتم ها

[/URL][URL="http://fa.wikipedia.org/wiki/%D9%BE%D8%B1%D9%88%D9%86%D8%AF%D9%87:Linear_progra mming_example_graph.png"] (http://fa.wikipedia.org/wiki/%D9%BE%D8%B1%D9%88%D9%86%D8%AF%D9%87:Linear_progra mming_example_graph.png)
مجموعه‌ای از محدودیت ها (خطوط مرزی) به صورت نامعادلات خطی روی دو متغیر منجر به ایجاد منطقه‌ای از مقادیر ممکن برای آن دو متغیر روی صفحه می‌شود. این منطقه برای مسائل حل‌شدنی به شکل یک چندضلعی محدب است.


الگوریتم سیمپلکس (http://fa.wikipedia.org/w/index.php?title=%D8%B3%DB%8C%D9%85%D9%BE%D9%84%DA% A9%D8%B3&action=edit&redlink=1) که توسط جورج دانتزینگ (http://fa.wikipedia.org/w/index.php?title=%D8%AC%D9%88%D8%B1%D8%AC_%D8%AF%D8 %A7%D9%86%D8%AA%D8%B2%DB%8C%D9%86%DA%AF&action=edit&redlink=1) شکل گرفت، مسائل برنامه‌ریزی خطی را به این ترتیب حل می‌کند که یک جواب قابل قبول در یکی از رئوس چندضلعی فراهم می‌کند و سپس در راستای اضلاع چندضلعی به طرف رئوسی با مقدار بالاتری از تابع هدف (http://fa.wikipedia.org/w/index.php?title=%D8%AA%D8%A7%D8%A8%D8%B9_%D9%87%D8 %AF%D9%81&action=edit&redlink=1) حرکت می‌کند تا این که به نقطه بهینه برسد. اگرچه در عمل این الگوریتم (http://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85) بسیار کارآمد است و می‌تواند با در نظر گرفتن برخی پیش‌گیری‌های مربوط به جلوگیری از ایجاد دور، با اطمینان جواب بهینه مطلق (http://fa.wikipedia.org/w/index.php?title=%D8%A8%D9%87%DB%8C%D9%86%D9%87_%D9 %85%D8%B7%D9%84%D9%82&action=edit&redlink=1) را بیابد، اما در حالاتی که به اصطلاح بدترین حالت (http://fa.wikipedia.org/w/index.php?title=%D8%A8%D8%AF%D8%AA%D8%B1%DB%8C%D9% 86_%D8%AD%D8%A7%D9%84%D8%AA&action=edit&redlink=1) نامیده می‌شوند عملکرد بدی دارد. تا حدی که می‌توان مسائل برنامه‌ریزی خطی طراحی کرد که روش سیمپلکس برای حلشان در برخی مراحل زمانی از مرتبه زمانی (http://fa.wikipedia.org/w/index.php?title=%D9%85%D8%B1%D8%AA%D8%A8%D9%87_%D8 %B2%D9%85%D8%A7%D9%86%DB%8C&action=edit&redlink=1) نمایی (http://fa.wikipedia.org/wiki/%D8%AA%D8%A7%D8%A8%D8%B9_%D9%86%D9%85%D8%A7%DB%8C% DB%8C) نیاز داشته باشد. حتی در دورانی دانشمندان نمی‌دانستند که این مسائل راه حل چندجمله‌ای (http://fa.wikipedia.org/wiki/%DA%86%D9%86%D8%AF%D8%AC%D9%85%D9%84%D9%87%E2%80%8 C%D8%A7%DB%8C) هم دارند.
سرانجام این مسئله را لئونید خاچیان (http://fa.wikipedia.org/w/index.php?title=%D9%84%D8%A6%D9%88%D9%86%DB%8C%D8% AF_%D8%AE%D8%A7%DA%86%DB%8C%D8%A7%D9%86&action=edit&redlink=1) در سال 1979 (http://fa.wikipedia.org/wiki/1979_(%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C)) با ارائه روش بیضوی (http://fa.wikipedia.org/w/index.php?title=%D8%B1%D9%88%D8%B4_%D8%A8%DB%8C%D8 %B6%D9%88%DB%8C&action=edit&redlink=1) حل کرد. این روش در بدترین حالت هم دارای زمان اجرای چندجمله‌ای (http://fa.wikipedia.org/wiki/%DA%86%D9%86%D8%AF%D8%AC%D9%85%D9%84%D9%87%E2%80%8 C%D8%A7%DB%8C) بود. این روش تأتیر چندانی در جنبهٔ عملی مسئله نداشت چرا که همچنان روش سیمپلکس در همه موارد به جز تعداد محدودی از مسائل بهتر عمل می‌کرد. اما اهمیت نظری روش خاچیان غیرقابل‌انکار بود. این روش الهام‌بخش به وجود آمدن نسل جدیدی از راه‌حل‌ها شد که به آنها روش نقطه داخلی (http://fa.wikipedia.org/w/index.php?title=%D8%B1%D9%88%D8%B4_%D9%86%D9%82%D8 %B7%D9%87_%D8%AF%D8%A7%D8%AE%D9%84%DB%8C&action=edit&redlink=1) گفته می‌شود. در این روش‌ها نقاط داخلی محدوده قابل بررسی متغیرها (http://fa.wikipedia.org/wiki/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1) پیموده می‌شود و به سمت نقطه بهینه حرکت انجام می‌گیرد.