مسئله کمهزینهترین جریان
مسئله کمهزینهترین جریان، پیدا کردن کمهزینهترین راه فرستادن میزان مشخصی از جریان درون یک شبکه شاره است. حل این مسئله در زندگی روزمره کاربردهایی دارد از جمله شبکههای هزینهدار (مانند شبکههای مخابراتی) و همچنین در مواردی که تناسب آن با مسئله خیلی مشهود نیست، مانند تعیین محل قرارگیری انبارها.
تعریف
یک شبکه شاره داریم که آن را با گراف جهتدار
تعریف مسئله کمینه کردن هزینه کل جریان است:
با شرطهای زیر:
محدودیت ظرفیت: تقارن یکسویه: بقای جریان: جریان خواستهشده:
ارتباط با مسئلههای دیگر
حالت دیگری از این مسئله پیدا کردن جریان بیشینهای است که بین جریانهای بیشینه کمترین هزینه را دارد که میتوان آن را مسئله کمهزینهترین بیشینه جریان نامید. این حالت در پیدا کردن کمهزینهترین تطابق بیشینه کاربرد دارد.
در بعضی راهحلها پیدا کردن کمهزینهترین بیشینه جریان ساده است. در غیر این صورت، میتوان از جستجوی دودویی روی
میتوان از مسئله کمهزینهترین گردش در حل این مسئله استفاده کرد. این کار با صفر قرار دادن کران پایین همهی یالها، اضافه کردن یک یال از مقصد
دو مسئله زیر حالات خاص این مسئله به شمار می آیند:
- اگر محدودیت ظرفیت برداشته شود، به مسئله یافتن کوتاهترین مسیر تبدیل میشود.
- اگر همه هزینهها صفر باشند، به مسئله بیشینه جریان تبدیل میشود.
راهحلها
از آنجایی که ما تابعی خطی را بهینه میکنیم و تمام شروط خطی اند، این مسئله با استفاده از برنامهریزی خطی قابل حل است.
علاوه بر آن الگوریتمهای ترکیبیاتی مختلفی نیز وجود دارند، برای بررسی جامع تر، را ببینید. تعدادی از آنها تعمیم الگوریتم بیشینه جریان هستند، بقیه روشهای کاملاً متفاوتی استفاده میکنند.
الگوریتمهای اساسی شناخته شده (حالتهای زیادی دارند):
- Cycle canceling یک روش کلی اولیه
- Minimum mean cycle canceling یک الگوریتم ساده قویا چندجملهای
- Successive shortest path and capacity scaling روشهای دوگانه که میتوان آنها را به عنوان تعمیمهای الگوریتم فورد–فالکرسون در نظر گرفت.
- Cost scaling یک روش اولیه-دوگانه، که حالت کلی الگوریتم ارسال-برچسب است.
- Network simplex حالت خاص برنامهریزی خطی غیر مرکب است که در زمان چندجملهای اجرا میشود.
- الگوریتم Out-of-kilter توسط D.R.Fulkerson
کاربرد
کم وزن ترین تطابق بیشینه دو بخشی
در گراف دو بخشی
جستارهای وابسته
پانویسها و منابع
- ^ Ravindra K. Ahuja, Thomas L. Magnanti, and James B. Orlin (1993). Network Flows: Theory, Algorithms, and Applications. Prentice-Hall, Inc. ISBN 0-13-617549-X.
- ^ Morton Klein (1967). "A primal method for minimal cost flows with applications to the assignment and transportation problems". Management Science. 14: 205–220.
- ^ Andrew V. Goldberg and Robert Tarjan (1989). "Finding minimum-cost circulations by canceling negative cycles". Journal of the ACM. 36 (4): 873–886.
- ^ Jack Edmonds and Richard M. Karp (1972). "Theoretical improvements in algorithmic efficiency for network flow problems". Journal of the ACM. 19 (2): 248–264.
- ^ Andrew V. Goldberg and Robert Tarjan (1990). "Finding minimum-cost circulations by successive approximation". Math. Oper. Res. 15 (3): 430–466.
- ^ James B. Orlin (1997). "A polynomial time primal network simplex algorithm for minimum cost flows". Mathematical Programming. 78: 109–129.