حداکثر جریان در شبکه نمونه ای از یافتن حداکثر جریان با استفاده از روش فورد-فولکرسون

وظیفه حمل و نقل
ممکن است در فیزیک، اقتصاد و غیره بوجود بیاید.
بر روی اجزای منفرد شبکه حمل و نقل
(شبکه راه آهن، جاده و غیره
راه ها؛ شبکه لوله کشی و غیره) روی هم قرار گرفته است
محدودیت ها - حداکثر مجاز آنها
بار.
تعیین حداکثر ضروری است
تعداد ممکن مسافر، کالا،
محصول و غیره که از این طریق قابل حمل است
شبکه ها و چگونه
ما یک مدل گسسته نمودار می سازیم
این مشکل حمل و نقل و حل آن در این
مدل ها.

جورج برنارد دانتسیگ، ریاضیدان، از سال 1941
زمانی که در اداره آمار نیروی هوایی ایالات متحده در واشنگتن دی سی کار می کرد، ابتدا تصمیم گرفت
مشکل حداکثر جریان در طول آماده سازی
پل هوایی در زمان محاصره برلین غربی.
در سال 1951، جرج دانزیگ برای اولین بار فرموله کرد
وظیفه در نمای کلی. در سال 1955 لستر فورد و
دلبرت فولکرسون برای اولین بار یک الگوریتم ساخت،
به خصوص برای این کار طراحی شده است.
الگوریتم آنها الگوریتم فوردفولکرسون نام دارد.
در سال 2010، محققان جاناتان کلنر و
الکساندر موندری از MIT با خودش
همکاران دانیل اسپیلمن از ییل
دانشگاه و Shen-Hua Tenem از دانشگاه کالیفرنیای جنوبی نشان دادند
یکی دیگر از بهبودهای الگوریتم

با ارائه یک نمودار جهت دار
(شبکه حمل و نقل) G=(V، E)، رأس
نمودار s (منبع) و گره t (سینک).
به هر کمان (i، j) مقداری اختصاص داده شده است
توان عملیاتی با (i,j) 0 (بدون
از دست دادن کلیت، آن را در نظر می گیریم
مقدار صحیح)
تعیین حداکثر مقدار
نهری که می تواند از آن عبور کند
این قوس

جریان
که در
شبکه های
تماس گرفت
تابع عدد صحیح f(i,j) داده شده توسط
در مجموعه کمان E و داشتن
خواص زیر:
1. محدودیت پهنای باند جریان
توانایی
برای هر قوس (i، j) E،
نابرابری f(i، j) c(i، j).

2. جریان را ذخیره کنید
برای هر رأس q V،
برابری
qs
و
q t
f (i، q) f (q، j)
من V
(i، q) E
jV
(ق، ج) E
یعنی مجموع جریان ورودی q برابر است با
مجموع جریان خروجی q (جریان بدون
تلفات و تجمعات)

برای تعیین مقدار لازم است
حداکثر جریان، که
می توان از منبع s به
سینک t و توزیع آن بر روی قوس ها.

مثال
لیکی پاک یک کارخانه در ونکوور دارد
(منبع s)، تولید توپ هاکی، و در
Winnipeg انباری است که این واشرها در آن نگهداری می شوند.
این شرکت مکان هایی را بر روی کامیون های شرکت های دیگر اجاره می کند
برای تحویل واشر از کارخانه به انبار. از آنجا که
کامیون ها در مسیرهای خاص (لبه ها) رانندگی می کنند
بین شهرها (برترین ها) و محدود است
ظرفیت بار، Lycky Puck می تواند
هر روز بیش از c(u,v) جعبه را بین هر کدام حمل کنید
یک جفت شهر u و v. لیکی پوک نمی تواند
مسیرها و توان عملیاتی. او
وظیفه این است که تعیین کنیم بیشترین عدد کدام است
جعبه در روز می تواند حمل و سپس تولید شود
فقط چنین عددی، زیرا منطقی نیست
بیشتر از چیزی که بتوان به آن ها فرستاد تولید کرد
موجودی.

روش های حل مسئله
برنامه ریزی خطی
مشکل حداکثر جریان را به عنوان یک مسئله ارائه کنید
برنامه ریزی خطی. متغیرها هستند
جریان در امتداد لبه ها، و محدودیت ها - حفظ جریان
و محدودیت پهنای باند
الگوریتم فورد-فولکرسون
هر مسیر افزایشی را پیدا کنید. افزایش جریان توسط
تمام لبه های آن به حداقل باقیمانده آنها برسد
پهنای باند تکرار کنید تا
یک مسیر افزایشی وجود دارد الگوریتم فقط کار می کند
برای ظرفیت های عدد صحیح

10.

مثال 1
اجازه دهید مسئله حداکثر را فرمول بندی کنیم
جریان از نظر برنامه ریزی خطی.
اجازه دهید XKM حجم ترافیک از نقطه K تا نقطه M باشد.
K \u003d 0.1.2.3، M \u003d 1.2.3.4 و حمل و نقل امکان پذیر است
فقط در نقطه با عدد بزرگ. بنابراین، در کل
9 متغیر XKM وجود دارد، یعنی X01، X02، X03، X12
, X13 , X14 , X23 , X24 , X34 .
s=0
t=4

11.

مسئله برنامه نویسی خطی،
با هدف به حداکثر رساندن جریان، به شکل زیر است:
F → حداکثر،
X01 + X02 + X03 = F
-X01 +X12 +X13 +X14 = 0
-X02 -X12 +X23 +X24 = 0
-X03 -X13 -X23 +X34 = 0
-X14 -X24 -X34 = - F
X01 ≤ 2
Х02 ≤ 3
Х03 ≤ 1
X12 ≤ 4
X13 ≤ 1
X14 ≤ 3
X23 ≤ 1
X24 ≤ 2
X34 ≤ 2
XKM ≥ 0، K، M = 0، 1، 2، 3، 4
F≥0.

12.

قطع كردن
مجموعه ای از کمان ها نامیده می شود،
که حذف آن از شبکه منجر به
"شکستن" تمام مسیرهای منتهی از s به t.
ظرفیت برش است
ظرفیت کل قوس ها، آن است
اجزاء.
!!! برش ها را در مثال 1 بیابید

13.

قضیه ال. فورد و دی. فولکرسون:
مقدار هر جریان از s به t نیست
پیشی می گیرد
توان عملیاتی
توانایی ها
حداقل برش جداکننده s و t،
و جریانی که به این مقدار می رسد،
وجود دارد.
(ارزش
بیشترین
جریان
که در
حمل و نقل
شبکه های
برابر است با
اندازه
حداقل برش در آن)
!!! حداقل برش را در مثال 1 بیابید

14.

از نقطه نظر الگوریتمی، این
قضیه غیرمولد است.
تولید تمامی زیر مجموعه های کمان و
معاینه،
است
چه
یکی دیگر
زیر مجموعه برش - "حلول جلویی"،
منجر به پیچیدگی بالای الگوریتم می شود.
علاوه بر این، این واقعیت کمکی نمی کند.
راهی برای توزیع حداکثر پیدا کنید
جریان قوس

15.

الگوریتم فورد-فولکرسون
"تکنیک علامت گذاری" اثر L. Ford و D. Fulkerson
متوالی است
ساخت (تکرار شونده، جستجوی وسعت اول).
حداکثر جریان با جستجو در هر یک
پله از زنجیره فزاینده، یعنی مسیر در امتداد
که می تواند جریان را افزایش دهد.
در این حالت، گره ها (رأس نمودار)
به روش خاصی مشخص شده اند. از این رو و
اصطلاح "برچسب" به وجود آمد.

16.

الگوریتم فورد-فولکرسون
برچسب چیست
قله ها؟
اولین رقم در برچسب عدد است
رأسی که جریان به آن می رود
بالا داده شده؛
رقم دوم در برچسب یک عدد است
مقدار جریان، که می تواند باشد
به این رأس منتقل شود.

17.

الگوریتم فورد-فولکرسون
در هر مرحله از الگوریتم رأس شبکه
می تواند در یکی از سه حالت باشد:
بالا هیچ برچسبی ندارد.
راس برچسب گذاری شده است و نیست
مشاهده شده، یعنی همه در مجاورت آن نیستند
تاپ ها پردازش می شوند.
راس با برچسب و
مشاهده شده است.

18.

الگوریتم فورد-فولکرسون
به محض اینکه تاپ سینک شود
برچسب زده شده، این بدان معنی است که
یک زنجیره افزایش دهنده جریان دیگر
یافت شده، جریان کل نهایی
باید با مقدار جریان افزایش یابد
زنجیر پیدا کرد و به
مرحله بعدی الگوریتم

19.

الگوریتم فورد-فولکرسون
قوس e=(u,v) شبکه قابل قبول است
یک قوس از u به v نسبت به جریان f، اگر
e=(u، v) و f(e) مستقیم)؛
e=(v,u) و f(e)>0 (قوس های نوع دوم،
معکوس).
شرط دوم این را می گوید
قوس های موجود در قابل قبول هستند
راس u، که از آن «قبلاً گذشت
جریان غیر صفر حالت شدید: اگر ماتریس همه یک رنگ است - پاسخ 0 است.
بیایید یک منبع ساختگی و سینک اضافه کنیم. لبه ها را از منبع به تمام رئوس سفید بکشید، با وزن B (هزینه رنگ آمیزی مجدد به سیاه). بیایید لبه ها را از رئوس سیاه به سمت زهکش بکشیم، با وزن W (هزینه رنگ آمیزی مجدد به سفید). و بین تمام رئوس همسایه (خواه یکی باشند یا رنگهای متفاوت) - یک لبه با وزن را در G قرار دهید (خط خاکستری). مقدار حداکثر جریان پاسخی به مسئله خواهد بود.
منبع: سراسر اوکراین المپیاد مدرسه ایدر انفورماتیک، 2007، روز 1
  • مشکلی با محدودیت در رئوس.بگذارید مقدار حداکثر جریان را پیدا کنید و محدودیتی روی رئوس اعمال شود که چقدر می توانند از دست بدهند.
    راه حل
    تنها چیزی که نیاز داریم این است که هر راس را به دو قسمت تقسیم کنیم و یک لبه بین آنها قرار دهیم و حد پهنای باند این راس را بسنجیم.
  • حداقل برش.نمودار داده شده چند رأس باید حذف شود تا مسیر A به B وجود نداشته باشد؟
    راه حل
    در مسئله حداقل برش کلاسیک، باید لبه ها را بردارید. مشکلی نیست! رئوس را به 2 تقسیم می کنیم و بین آنها یک یال با وزن 1 قرار می دهیم. سپس پاسخ مسئله یافتن حداقل برش در نمودار (که حداکثر جریان است) است.
    منبع: مدرسه برنامه نویسی زمستانی خارکف، 2009، روز سوم
  • شاعر شعر.یک خودکار متناهی قطعی با یک حالت اولیه A و یک حالت نهایی B وجود دارد. هر انتقال با یک عدد سه گانه (i، j، k) مشخص می شود، انتقال از حالت i به حالت j در امتداد لبه k.
    پس از عبور از خودکار از i به j در امتداد لبه k، تمام انتقالات از i در امتداد لبه k و همچنین تمام انتقالات به j در امتداد لبه k پاک می شوند. با استفاده از چنین خودکاری باید تعداد مسیرهای A تا B را چاپ کنید.
    راه حل
    مشکل به یافتن حداکثر تعداد مسیرها کاهش می یابد و بیش از یک یال همرنگ از یک راس خارج نمی شود. بیایید مشکل را به یافتن حداکثر جریان کاهش دهیم. برای هر رأس، رئوس k+1 را در شبکه بازسازی شده ایجاد می کنیم. راس اول ورودی خواهد بود و بقیه راس ها رنگ ها را نشان می دهند. از راس ورودی، یک لبه با ظرفیت 1 به هر یک از k راس مربوط به رنگ رسم کنید. از رأس مربوط به رنگ i تمام لبه های رنگ i را به ورودی انتهای لبه ها می کشیم. با یافتن حداکثر جریان در چنین شبکه ای، دریافت می کنیم بیشترین مقدارمسیرهایی که دارایی مورد نیاز را برآورده می کنند.
  • جمع آوری سکه هاوجود دارد nکلکسیونرها و مترانواع سکه برای عضویت در باشگاه باید حداقل یک سکه از هر نوع داشته باشید. شما (شماره 1 را دارید) می توانید با کلکسیونرهای سکه های موجود معامله کنید. هر مجموعه داری سکه ای را با سکه خود عوض می کند آبه سکه شما باگر او داشته باشد بیشترنوع تک سکه آو حتی یک سکه از این نوع وجود ندارد ب. شما به نوبه خود می توانید این قانون را زیر پا بگذارید. لازم است تا حد امکان انواع سکه با توجه به یک موقعیت شناخته شده از همه کلکسیونرها جمع آوری شود.
    راه حل
    بیایید یک شبکه بسازیم. بیایید برای هر نوع سکه یک راس ایجاد کنیم. این تاپ ها با سکه های شما مطابقت دارند. ما باید تا آنجا که ممکن است سکه های منحصر به فرد جمع آوری کنیم، بنابراین بیایید از هر رأس، لبه ای با ظرفیت 1 به سمت سینک بکشیم. در رئوس مربوط به سکه هایی که در ابتدا دارید، لبه ای می کشیم که توان عملیاتی آن برابر با تعداد سکه هایی است که دارید.
    برای هر یک از اعضای باشگاه (به جز 1، یعنی شما)، یک راس دریافت می کنیم. این راس نمی تواند بیش از یک سکه را که ندارد بپذیرد و بدهد
    حداکثر k-1 سکه، که او k (k> 1) دارد. طبیعتاً یکی از اعضای باشگاه در ازای دریافت یک سکه یک سکه می دهد.
    بنابراین، برای هر یک از این رئوس، لازم است یک لبه با ظرفیت 1 از رئوس مربوط به سکه هایی که این عضو باشگاه ندارد، رسم کرد. و از این رئوس، باید لبه هایی با ظرفیت k i - 1 را به راس i بکشید که مربوط به سکه هایی است که یکی از اعضای باشگاه بیش از یک دارد.
    شبکه ساخته شده منعکس کننده فرآیندهای مبادله در باشگاه است. حداکثر جریاندر چنین شبکه ای برابر با حداکثر تعداد سکه هایی است که می توانید جمع آوری کنید.
    منبع: مدرسه برنامه نویسی زمستانی خارکف، 2009، روز چهارم
  • جریان.سیستم خنک کننده راکتور مجموعه ای از لوله ها است که گره ها را به هم متصل می کند. مایع از طریق لوله ها جریان می یابد و برای هر لوله جهتی که باید در آن جریان داشته باشد دقیقاً مشخص شده است. گره های سیستم خنک کننده از 1 تا N شماره گذاری می شوند.سیستم خنک کننده باید به گونه ای طراحی شود که برای هر گره در واحد زمان، مقدار سیال وارد شده به گره برابر با مقدار سیال خارج شده از گره باشد. گره هر لوله ظرفیت c ij دارد. علاوه بر این، برای اطمینان از سرمایش کافی، لازم است که حداقل l ij واحد مایع در هر واحد زمان از لوله عبور کند. یعنی برای لوله ای که از گره i به j منتهی می شود، l ij ≤ f ij ≤ c ij باید برآورده شود.
    توضیحات سیستم خنک کننده داده شده است. باید دریابید که چگونه می توان مایع را از طریق لوله ها عبور داد تا تمام شرایط ذکر شده برآورده شود.
    راه حل
    این مشکل یافتن گردش در یک شبکه با محدودیت های لبه پایینی است. اگر لبه (u، v) باید در قطعه جریان داشته باشد، شبکه بازسازی شده دارای سه یال خواهد بود (از کجا، کجا وزن): (u، v، r - l)، (S، v، l) ، (u، T، l). S، T - به ترتیب تخلیه و منبع را نیز معرفی کردند. در واقع حداقل دبی مورد نیاز را در امتداد لبه عبور می دهیم و پس از آن آن را طوری متعادل می کنیم که گردش حاصل شود.

  • اجازه دهید یک نمودار جهت دار داده شود G= , که جهت هر قوس vOVبه معنای جهت جریان (مثلاً جریان اتومبیل ها)، توان عملیاتی هر قوس برابر است با d (v).در بسیاری از قله ها Eدو راس انتخاب شد تیو س. راس تیمنبع جریان است، س- موجودی. تعیین حداکثر جریان قابل عبور از بالا الزامی است تیکه در س .

    با نشان دادن x(v)مقدار جریانی که در یک قوس حرکت می کند v. بدیهی است که

    0 £ x(v) £ d(v) , vнV . (6. 1)

    در هر اوج iOE\(t,s)حجم جریان ورودی برابر با حجم جریان خروجی است، یعنی. برابری عادلانه

    (x(v)|i О V + (i))= (x(v)| iО V - (i))

    (x(v)| iнV + (i)) - (x(v)| iнV - (i))=0.(6.2)

    برای بالا تی

    (x(v)| iОV + (i)) -(x(v)¦ iОV - (i))=-Q،(6.3)

    برای راس s

    (x(v)| iн V + (i)) -(x(v)¦ i н V - (i))= Q.(6.4)

    ارزش سمقدار جریانی است که از راس خارج می شود تیو به سمت بالا می رود س.

    برای تعریف لازم است

    Q®max(6.5)

    تحت محدودیت (6.1-6.4).

    مقادیر Q، x(v)، vnV،ارضای قیود (6.1-6.4) جریان شبکه نامیده می شود و اگر مقدار را به حداکثر برسانند س، سپس حداکثر جریان. به راحتی می توان متوجه شد که ارزش ها Q=0، x(v)=0، vnV، یک جریان در شبکه هستند.

    مسئله (6.1-6.5) یک مسئله برنامه ریزی خطی است و با الگوریتم های روش سیمپلکس قابل حل است.

    مجموعه راس E را به دو قسمت غیر متقاطع E1 و E2 تقسیم می کنیم به این ترتیب که tОE1، sОE2. قطع كردن V(E1,E2)جدا کردن تیو سما مجموعه را صدا خواهیم کرد V(E1,E2)ÌVبه طوری که برای هر قوس v О V(E1,E2)یا h1(v)нE1و h2(v)нE2، یا h1(v)нE2و h2(v)нE1.

    بیایید مجموعه را تقسیم کنیم V(E1,E2)به دو بخش V(E1،E2،+)،V(E1،E2،-)به روش زیر:

    V(E1,E2,+)=(vнV(E1,E2)| h1(v)нE1و h2(v)нE2)

    V(E1,E2,-)= ( vнV(E1,E2)| h2(v)нE1و h1(v)нE2)

    توان عملیاتی برش نامیده می شود

    Q(E1,E2) = (x(v)| vнV(E1,E2,+))-(x(v)| vнV(E1,E2,-))

    به شرح زیر

    قضیه 1. (درباره حداکثر دبی و حداقل برش).

    در هر شبکه، مقدار حداکثر جریان از منبع تیانبار کردن سبرابر با حداقل توان عملیاتی است Q(E1,E2)در میان همه برش ها V(E1,E2)رگه ها تیو س.

    توجه داشته باشید که در حداکثر جریان

    x(v)=d(v)، vнV(E1،E2،+)،

    x(v)=0، vнV(E1,E2,-).

    اجازه دهید Q، x(v)، vOV، -مقداری جریان در شبکه، توالی

    t=i(0)،v(1)،i(1)،v(2)،i(2)،...،v(k)،i(k)=s،

    زنجیره ای است که رئوس را به هم متصل می کند تیو س. اجازه دهید جهت حرکت را از بالا روی این زنجیره تنظیم کنیم تیبه س. قوس v(j)از این زنجیره اگر جهت آن با جهت حرکت از منطبق باشد خط مستقیم نامیده می شود تیبه س، و در غیر این صورت معکوس. ما این مدار را یک مسیر می نامیم. افزایش جریان، اگر برای قوس های مستقیم vزنجیر x(v)< d(v) و برای معکوس x(v) > 0. جریان اضافی را می توان از این مدار عبور داد qاز جانب تیبه ساندازه q = min(q1,q2)جایی که q1=min(d(v)-x(v))، حداقل در تمام قوس های مستقیم زنجیره گرفته می شود، q1=min(x(v))، حداقل روی تمام قوس های عقب زنجیره گرفته می شود.

    قضیه 2.

    جریان Q، x(v)، vнV، حداکثر اگر و تنها در صورتی که راهی برای افزایش جریان وجود نداشته باشد.

    الگوریتم پیشنهادی برای حل مشکل حداکثر جریان در شبکه مبتنی بر یافتن راهی برای افزایش جریان از تیکه در س، که به نوبه خود بر اساس فرآیند برچسب گذاری رئوس است. این را خواهیم گفت

    راس منبا علامت مشخص شده است q(i)>0، و همچنین قوس مستقیم قوس شناخته شده است v(i)، که از طریق آن این جریان آمده است یا با علامت مشخص شده است ، اگر مقداری جریان اضافی با قدر باشد q(i)>0، و قوس عقب نیز شناخته شده است v(i)، که از طریق آن این جریان وارد شد;

    راس i در صورتی اسکن می شود که تمام رئوس مجاور آن علامت گذاری شده باشند.

    اگر راس s برچسب گذاری شده باشد، راهی برای افزایش جریان یافت می شود q، که در این مسیر پرش می شود. برای توصیف الگوریتم به یک آرایه نیز نیاز داریم SPW، که شامل تعداد رئوس برچسب گذاری شده به ترتیب برچسب گذاری شده است. C1- عدد در آرایه SPWاوج مشاهده شده، C2- شماره آخرین راس برچسب گذاری شده در این آرایه.

    الگوریتم محاسبه حداکثر جریان در شبکه ها

    مرحله 1. تکالیف اولیه.ارزش فعلی A tبه حداکثر جریان در شبکه مقدار 0 اختصاص داده می شود. مرحله 2. انتخاب مسیرهای مستقل در شبکه و تعیین جریان در آنها.از کل مجموعه مسیرهای ممکن در شبکه از مبدا تا سینک، مسیرهای مستقل را انتخاب می کنیم م 1 , … , Mk، که رئوس مشترکی ندارند، به جز شروع (منبع v و) و نهایی (درن v با). برای هر مسیر انتخاب شده M i(1 پوند من£ ک) حداکثر جریان را تعیین کنید ولی(M i)گام 3. تصحیح مقدار جریان حداکثر جریان در شبکه.یافت شده را اضافه می کنیم گام 2مقادیر حداکثر جریان در مسیرهای مستقل م 1 , … , Mkبه حداکثر جریان کل شبکه فعلی: A t:= A t + A(م 1)+ A(م 2)+…+ A(Mk)مرحله 4. تصحیح شبکه.پیدا شده در گام 2حداکثر جریان ها ولی(م 1), … , ولی(Mk) از ظرفیت کمان های شبکه مربوطه کم کنید. قوس هایی با ظرفیت باقیمانده صفر حذف می شوند. مرحله 5. بررسی تکمیل الگوریتم.اگر پس از اصلاح، هیچ مسیری از منبع در شبکه باقی نماند v وانبار کردن v با، سپس حداکثر دبی مورد نظر در شبکه برابر با جریان یافت شده است ولی:= A t، الگوریتم به کار خود پایان می دهد، زیرا تمام پهنای باند شبکه تمام شده است. اگر در شبکه تصحیح شده مسیرهایی از مبدا وجود داشته باشد v وانبار کردن v با، سپس انتقال به گام 2و اجرای الگوریتم را ادامه دهید . مثال 2با استفاده از این الگوریتم، حداکثر جریان در شبکه را در شکل 1.15 بیابید. راه حل مرحله 1. تکالیف اولیه. A t: = 0.

    من تکرار. مرحله 2. انتخاب مسیرهای مستقل در شبکه و تعیین جریان در آنها.مانند م 1 مسیر را انتخاب کنید( v و =V 1 ، V 2 ، V 5 , v c \u003d V 7) در نظر گرفته شده در مثال 1. برای او ولی(م 1) = 10.

    همچنین تشخیص مستقل از آن آسان است م 1 مسیر م 2 = (v و =V 1 ، V 3 ، V 6 , v c \u003d V 7). بیایید حداکثر توان را برای آن محاسبه کنیم و توان کمان ها را تنظیم کنیم: ولی(م 2)= دقیقه{د 13 ، د 36 ، د 67 } = دقیقه{45, 40, 30} = 30. د 13¢ 13 - 30 = 15، د 36¢ 36 - 30 = 10، د 67¢ 67 - 30 = 0.

    مرحله 3. تصحیح مقدار فعلی حداکثر جریان در شبکه. A t:= A t + A(م 1)+ A(م 2) = 0 + 10+ 30 = 40.مرحله 4. تصحیح شبکه.پیدا شده در گام 2حداکثر جریان ها ولی(م 1)، ولی(م 2) در مسیرها م 1 , م 2 از ظرفیت کمان آنها کم کنید. قوس هایی با ظرفیت باقیمانده صفر حذف می شوند. نتیجه در شکل 1.16 الف آورده شده است. الف) ب) شکل 1.16. نتیجه تصحیح شبکه پس از تکرار منو مرحله دوم 5. بررسی تکمیل الگوریتم.در شبکه تصحیح شده (شکل 1.16 a)، مسیرهایی از منبع وجود دارد v وانبار کردن v با، مثلا م 3 = (v و =V 1 ، V 4 ، V 2 ، V 5 , v c \u003d V 7). ادامه اجرای الگوریتم .

    تکرار دوم. گام 2.ما به عنوان تنها مسیر مستقل در پیش می گیریم م 3 = (v و =V 1 ، V 4 ، V 2 ، V 5 , v c \u003d V 7). برای او:

    ولی(م 3)= دقیقه{د 14 ، د 42 ، د 25 ، د 57 } = دقیقه{15, 10, 10, 15} = 10.

    د 14¢ 14 - 10 = 5، د 42¢ 42 - 10 = 0، د 25¢ 25 - 10 = 0، د 57¢ 57 - 10 = 5.

    مرحله 3. A t:= A t + A(م 3) = 40 + 10= 50.

    مرحله 4. تصحیح شبکه.حداکثر جریان ولی(م 3) از قوس های مسیر کم کنید م 13 . نتیجه در شکل 1.16 ب آورده شده است.

    مرحله 5.هیچ مسیر منبع به سینک در شبکه تنظیم شده باقی نمانده است. ولی:= A t:= 50، تکمیل الگوریتم. پاسخ:حداکثر جریان شبکه در شکل 1.15 50 است.

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

    برنامه ریزی شبکه

    هر کار طراحی یا ساخت یک شی نسبتاً پیچیده ( پروژه) را می توان به چند مرحله جزء کوچکتر تقسیم کرد. از جانب انتخاب صحیحتوالی این مراحل به زمان بندی کل پروژه بستگی دارد.

    کل مجموعه اقدامات برای اجرای پروژه در قالب یک مجموعه ارائه شده است مناسبت هاو آثار. رویدادها مراحل تکی پروژه نامیده می شوند. مشاغل فرآیندی هستند که طی آن تکمیل می شوند. کل مجموعه رویدادها و کارهای لازم برای اجرای پروژه را می توان به صورت یک شبکه دو قطبی نشان داد G =({v i، v z} ، V، X)، که در آن:

    و همه تحولاتبا رئوس زیاد مشخص شده است در میان آنها برجسته شده است رویداد اولیه v و(شروع کار) و رویداد نهایی v(تکمیل کل پروژه)، رئوس داخلی شبکه را مشخص می کند رویدادهای میانی- مراحلی که در فرآیند باید دنبال شود اجرای پروژه,

    ب) همه کار کردنبا کمان هایی که جفت رویدادها - رئوس را به هم متصل می کنند نشان داده می شوند.

    تصویر گرافیکیاین شبکه نامیده می شود نمودار شبکهبرای نشان دادن توالی اقدامات در نمودار شبکه نیز معرفی می کنند آثار ساختگی، که با انجام هیچ عملی مرتبط نیستند. آثار مربوطه با کمان های چین نشان داده می شوند.

    به عنوان مثال، سازماندهی برخی از تولیدات را در نظر بگیرید. پروژه به کارهای زیر نیاز دارد:

    I) تحقیقات بازاریابی، II) تحقیقات پیش از پروژه در مورد تجهیزات، III) سازماندهی یک شبکه فروش، IV) کمپین تبلیغاتی، V) توسعه مشخصات فنی تجهیزات تولید، VI) توسعه اسناد فنی برای تاسیسات تولید و ارتباطات، VII )خرید تجهیزات استاندارد، VIII) طراحی و ساخت تجهیزات غیر استاندارد، IX) ساخت اماکن صنعتی و نصب ارتباطات، X) نصب تجهیزات استاندارد، XI) نصب تجهیزات غیر استاندارد، XII) راه اندازی.

    این آثار در نمودار شبکه با قوس هایی با اعداد مربوطه نشان داده می شوند.

    رویدادهای این پروژه به شرح زیر خواهد بود:

    1) شروع کار (رویداد اولیه)، 2) تکمیل تحقیقات بازاریابی، 3) تکمیل تحقیقات قبل از پروژه، 4) سازماندهی شبکه توزیع، 5) سازماندهی کمپین تبلیغاتی، 6) تهیه مشخصات فنی برای تولید تجهيزات، 7) تكميل تدوين مستندات فني محل توليد و ارتباطات، 8) تكميل خريد تجهيزات استاندارد، 9) تكميل طراحي و ساخت تجهيزات غير استاندارد، 10) تكميل ساخت و ساز اماكن توليدي و نصب. ارتباطات، 11) تکمیل نصب و راه اندازی تجهیزات،

    12) تکمیل پروژه (رویداد پایانی).

    رویدادها با رئوس با اعداد مربوطه همراه هستند. نمودار شبکهاجرای پروژه در شکل نشان داده شده است. 1.17:



    شکل 1.17. برنامه شبکه پروژه

    جریان در شبکه ها

    مشکل حداکثر جریان

    اجازه دهید یک شبکه داده شود، متشکل از مجموعه ای از رئوس E و مجموعه ای از کمان ها که چند جفت رئوس مرتب شده از E را به هم متصل می کند. سپس شامل یک قوس متقارن () نیز می شود، اگرچه در واقعیت ممکن است چنین قوسی وجود نداشته باشد. برای قطعیت، اعداد زیر را به رئوس شبکه اختصاص می دهیم: . هر رأس با شدت مشخص می شود. رئوس هایی که برای آن ها، منبع نامیده می شوند، رئوس هایی که برای آنها، سینک هستند و بقیه میانی هستند. برخی از جریان ها در امتداد مسیرهای شبکه - یک ماده همگن (گاز، مایع) یا حمل و نقل - از منابع به غرق ارسال می شوند. به هر قوس () شبکه عددی به نام پهنای باند قوس اختصاص داده می شود. ظرفیت یک قوس حداکثر جریانی است که در واحد زمان می تواند عبور کند. اجازه دهید، و برای رئوس باقی مانده، سپس - تنها منبع، - تنها سینک، و - گره های میانی شبکه.

    وظیفه تعیین حداکثر مقدار جریان از منبع به سینک برای یک شبکه معین است. در زیر جریان در شبکه از منبع تا سینک، منظور مجموعه جریان‌ها () در امتداد تمام قوس‌های شبکه است، جایی که جریان در امتداد قوس () ، برابر با مقدار ماده ای است که در واحد زمان از آن عبور می کند. از نظر ریاضی، مسئله حداکثر جریان به صورت زیر فرموله می شود: یافتن مقادیر غیر منفی برای همه، به حداکثر رساندن

    (3.9)

    با محدودیت:

    (3.11)

    شرط (3.9) مقدار حداکثر جریان را منعکس می کند که برابر با مقدار ماده ای است که از منبع جریان می یابد یا به داخل سینک می ریزد. شرایط (3.10) به این معنی است که جریان در امتداد هر قوس باید غیرمنفی باشد و از ظرفیت آن تجاوز نکند. از شرط (3.11) نتیجه می گیرد که مقدار ماده ای که به هر رأس میانی می ریزد برابر با مقدار ماده ای است که از آن خارج می شود.

    تاکنون شبکه هایی با منبع و سینک واحد در نظر گرفته ایم. با این حال، در عمل، تعداد منابع و سینک ها می تواند دلخواه باشد. اجازه دهید نشان دهیم که با کمک تغییرات جزئی در توپولوژی، مشکلات این نوع را می توان به مواردی که قبلاً در نظر گرفته شده کاهش داد.

    اجازه دهید این موضوع را با یک مثال توضیح دهیم.

    شبکه ای متشکل از سه منبع و دو سینک را در نظر بگیرید (شکل 3.10). اجازه دهید، برای قطعیت، این شبکهکار بعدی را شرح می دهد.

    سایت های تولید نفت در موقعیت های جغرافیایی قرار دارند. نفت از محل های تولید از طریق برخی نقاط میانی به پالایشگاه ها منتقل می شود. مجموعه ای از نقاط با مسیرهای حمل و نقل که آنها را به هم متصل می کند به صورت یک شبکه در شکل 1 نشان داده شده است. 3.10، قوس ها مربوط به بزرگراه ها، و رئوس مربوط به نقاط منفرد (محل های معدن، کارخانه ها، ایستگاه های پمپاژ یا ایستگاه های راه آهن) است. توان عملیاتی بزرگراه های حمل و نقل به قوس های شبکه اختصاص داده می شود. برای تعیین حداکثر مقدار نفت قابل حمل از محل های تولید به پالایشگاه ها، باید با افزودن یک منبع ساختگی و یک سینک ساختگی، شبکه را گسترش داد (قوس های ساختگی در شکل با خطوط بریده ترسیم شده اند).

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


    برنج. 3.10. معرفی منبع و سینک ساختگی

    مثال 3

    بیایید مثالی از حل مشکل حداکثر جریان در اکسل ارائه دهیم. برخی از شبکه های حمل و نقل را در نظر بگیرید (شکل 3.11.). ما همچنین فرض می‌کنیم که جریان‌های ترافیکی می‌توانند در هر دو جهت برخی از کمان‌ها حرکت کنند (بدیهی است که حل این مورد عمومی‌تر و دشوارتر از مورد جریان‌های ترافیکی یک طرفه است). شکل حداکثر توان عبوری را در هر دو جهت نشان می دهد: به عنوان مثال، از نقطه 3 به نقطه 6 می توان جریانی با شدت 4 واحد را انتقال داد و همان جریان را از نقطه 6 به نقطه 3 (صفر در انتهای برخی از کمان ها به معنی عدم امکان حمل و نقل در جهت مربوطه). لازم است حداکثر توان عملیاتی شبکه به عنوان یک کل تعیین شود، یعنی. حداکثر مقدار جریان

    برنج. 3.11. نمودار شبکه مثال 3.

    راه حل.

    از آنجایی که فرض می شود برای هر گره شبکه میانی، کل جریان ورودی باید برابر با کل جریان خروجی باشد، مشکل را می توان به صورت زیر فرموله کرد:

    به حداکثر رساندن تحت محدودیت ها:

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

    برنج. 3.12. داده ها برای حل مسئله حداکثر جریان

    محدوده سلول های A6:Q6 به مقادیر محاسبه شده متغیرها اختصاص داده می شود. در سلول های A8:A14 و همچنین در سلول هدف F13 فرمول های زیر را وارد کنید

    C6+D6+I6-E6-H6-J6

    G6+N6+H6+K6-L6-I6-M6-P6

    F13 (هدف)

    پس از شروع جستجوی راه حل، محدودیت های زیر را معرفی می کنیم:

    در پنجره محاوره ای یافتن راه حل برای تغییر محدوده سلول ها، A6:Q6 را مشخص کنید.

    در نتیجه حل به جواب می رسیم: ; جریان در کمان در زیر ارائه شده است

    نقاط (گره ها)

    نقاط (گره ها)

    لازم به ذکر است که این مشکل دارای یک راه حل بهینه غیر منحصر به فرد است، یعنی با حداکثر دبی 17 واحد ممکن است توزیع متفاوتی از جریان ها بر روی قوس ها وجود داشته باشد.

    با دوستان به اشتراک بگذارید یا برای خود ذخیره کنید:

    بارگذاری...