กลับไปหน้าบทความ

อ่าน 10 นาที

เครือข่ายการไหล

ในทฤษฎีกราฟเครือข่ายการไหล (หรือที่เรียกว่าเครือข่ายการขนส่ง ) คือกราฟแบบมี ทิศทาง โดยแต่ละขอบมีความจุและแต่ละขอบรับการไหล ปริมาณการไหลบนขอบต้องไม่เกินความจุของขอบนั้น

เครือข่ายการไหล

ตัวอย่างแผนผังเครือข่ายการไหลที่แสดงอัตราการไหลและความจุ

ในทฤษฎีกราฟเครือข่ายการไหล (หรือที่เรียกว่าเครือข่ายการขนส่ง ) คือกราฟแบบมี ทิศทาง โดยแต่ละขอบมีความจุและแต่ละขอบรับการไหล ปริมาณการไหลบนขอบต้องไม่เกินความจุของขอบนั้น บ่อยครั้งในงานวิจัยเชิงปฏิบัติการกราฟแบบมีทิศทางจะเรียกว่าเครือข่ายจุดยอดเรียกว่าโหนดและขอบเรียกว่าส่วนโค้งการไหลต้องเป็นไปตามข้อจำกัดที่ว่าปริมาณการไหลเข้าสู่โหนดเท่ากับปริมาณการไหลออกจากโหนด เว้นแต่จะเป็นแหล่งกำเนิดซึ่งมีการไหลออกเท่านั้น หรือปลายทางซึ่งมีการไหลเข้าเท่านั้น เครือข่ายการไหลสามารถใช้จำลองการจราจรในเครือข่ายคอมพิวเตอร์ การหมุนเวียนที่มีความต้องการ ของเหลวในท่อ กระแสไฟฟ้าในวงจรไฟฟ้า หรือสิ่งอื่นใดที่คล้ายกันซึ่งมีบางสิ่งเดินทางผ่านเครือข่ายของโหนด ดังนั้น อัลกอริทึมที่มีประสิทธิภาพสำหรับการแก้ปัญหาการไหลในเครือข่ายจึงสามารถนำไปใช้แก้ปัญหาที่สามารถลดทอนลงเหลือเครือข่ายการไหลได้ รวมถึงการออกแบบการสำรวจ การจัดตารางเวลาสายการบิน การแบ่งส่วนภาพและปัญหาการจับคู่

คำนิยาม

เครือข่ายคือ กราฟแบบมีทิศทางG = ( V , E ) ที่มี ฟังก์ชันความจุ ที่ไม่เป็นลบcสำหรับแต่ละขอบ และไม่มีส่วนโค้งหลายส่วน (กล่าวคือ ขอบที่มีโหนดต้นทางและปลายทางเดียวกัน) โดยไม่เสียความเป็นทั่วไปเราอาจสมมติว่า ถ้า( u , v ) ∈ Eแล้ว( v , u )ก็เป็นสมาชิกของE ด้วย นอกจากนี้ ถ้า( v , u ) ∉ Eแล้ว เราอาจเพิ่ม( v , u )เข้าไปในEแล้วกำหนดให้c ( v , u ) = 0

ถ้าโหนดสองโหนดในGถูกแยกแยะ – โหนดหนึ่งเป็นแหล่งกำเนิดsและอีกโหนดหนึ่งเป็นปลายทางt – แล้ว( G , c , s , t )เรียกว่าเครือข่ายการไหล[ 1 ]

การไหล

ฟังก์ชันการไหลจำลองการไหลสุทธิของหน่วยระหว่างคู่ของโหนด และมีประโยชน์เมื่อถามคำถามเช่นจำนวนหน่วยสูงสุดที่สามารถถ่ายโอนจากโหนดต้นทาง s ไปยังโหนดปลายทาง t คือเท่าใดปริมาณการไหลระหว่างสองโหนดใช้เพื่อแสดงปริมาณสุทธิของหน่วยที่ถูกถ่ายโอนจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง

ฟังก์ชันส่วนเกินx   : V → ℝ แสดงถึงกระแสสุทธิ ที่ไหลเข้าสู่โหนดu ที่กำหนด (กล่าวคือ ผลรวมของกระแสที่ไหลเข้าสู่u ) และถูกกำหนดโดยxเอฟ(คุณ)=วีเอฟ(,คุณ)วีเอฟ(คุณ,).{\displaystyle x_{f}(u)=\sum _{w\in V}f(w,u)-\sum _{w\in V}f(u,w).}กล่าวได้ว่าโหนดu เป็นโหนด ที่ทำงานอยู่ (active)ถ้าx ( u ) > 0 (นั่นคือ โหนดuใช้การไหล) เป็นโหนด ที่ขาดแคลน (deficient)ถ้าx ( u ) < 0 (นั่นคือ โหนดuผลิตการไหล) หรือ เป็นโหนด ที่อนุรักษ์ (conserving)ถ้าx ( u ) = 0ในเครือข่ายการไหล แหล่งกำเนิดsเป็นโหนดที่ขาดแคลน และปลายทางtเป็นโหนดที่ทำงานอยู่ การไหลเสมือน (pseudo-flows) การไหลที่เป็นไปได้ (feasible flows) และการไหลก่อนหน้า (pre-flows) ล้วนเป็นตัวอย่างของฟังก์ชันการไหล

โฟลว์เสมือน (pseudo-flow)คือฟังก์ชันf ของแต่ละขอบในเครือข่ายที่สอดคล้องกับข้อจำกัดสองข้อต่อไปนี้สำหรับทุกโหนดuและv :
  • ข้อจำกัดสมมาตรแบบเฉียง : การไหลบนส่วนโค้งจากuไปvเทียบเท่ากับการกลับทิศทางการไหลบนส่วนโค้งจากvไปuนั่นคือf ( u , v ) = −f ( v , u )เครื่องหมายของการไหลบ่งบอกถึงทิศทางการไหล
  • ข้อจำกัดด้านความจุ : การไหลของส่วนโค้งต้องไม่เกินความจุ กล่าวคือf ( u , v ) ≤ c ( u , v )
รีโฟลว์คือซูโดโฟลว์ที่สำหรับทุกvV \{ s }จะเป็นไปตามข้อจำกัดเพิ่มเติมดังต่อไปนี้:
  • การไหลที่ไม่ขาดดุล : การไหลสุทธิที่เข้าสู่โหนดvมีค่าไม่เป็นลบ ยกเว้นแหล่งกำเนิดซึ่ง "สร้าง" การไหล นั่นคือ: x f v ) ≥ 0สำหรับทุกvV \{ s }
กระแสการไหลที่เป็นไปได้หรือเรียกสั้น ๆ ว่ากระแสการไหลคือ กระแสการไหลเสมือน ที่สำหรับทุกvV \{ s , t }จะเป็นไปตามข้อจำกัดเพิ่มเติมดังต่อไปนี้:
  • ข้อจำกัดการอนุรักษ์การไหล : ผลรวมของการไหลสุทธิที่เข้าสู่โหนดvจะเป็นศูนย์สำหรับทุกโหนดในเครือข่าย ยกเว้นแหล่งกำเนิดsและปลายทางtนั่นคือx ( v ) = 0สำหรับทุกvV \{ s , t }กล่าวอีกนัยหนึ่ง สำหรับทุกโหนดในเครือข่าย ยกเว้นแหล่งกำเนิดsและปลายทางtผลรวมของการไหลเข้าของโหนดจะเท่ากับการไหลออก (เช่น(คุณ,วี)อีเอฟ(คุณ,วี)=(วี,z)อีเอฟ(วี,z){\displaystyle \sum _{(u,v)\in E}f(u,v)=\sum _{(v,z)\in E}f(v,z)}สำหรับแต่ละจุดยอดvV \{ s , t } )

ค่า| f |ของการไหลที่เป็นไปได้fสำหรับเครือข่าย คือการไหลสุทธิเข้าสู่จุดรับt ของเครือข่ายการไหล นั่นคือ |f| = xf( )โปรดทราบว่าค่าการไหลในเครือข่ายยังเท่ากับการไหลออกทั้งหมดของแหล่งกำเนิดsนั่นคือ| f | = −xf ( )นอกจากนี้ หากเรากำหนดAเป็นเซตของโหนดในGโดยที่sAและtA ค่าการไหลจะเท่ากับการไหลสุทธิทั้งหมดที่ออกจาก A (นั่นคือ| f | = f out ( A ) f in ( A ) ) [ 2 ]ค่าการไหลในเครือข่ายคือปริมาณการไหลทั้งหมดจากsไปยังt

แนวคิดที่เป็นประโยชน์ต่อการแก้ปัญหาการไหล

การแยกส่วนการไหล

กราฟทางด้านซ้ายสามารถแยกย่อยออกเป็นเส้นทางจากจุดยอดด้านบนซ้ายไปยังจุดยอดด้านล่างขวาได้

การแยกส่วนการไหล[ 3 ]เป็นกระบวนการของการแบ่งการไหลที่กำหนดออกเป็นชุดของการไหลตามเส้นทางและการไหลตามวงจร การไหลทุกเส้นทางผ่านเครือข่ายสามารถแยกส่วนออกเป็นเส้นทางหนึ่งเส้นทางหรือมากกว่าและปริมาณที่สอดคล้องกัน โดยที่ขอบแต่ละขอบในการไหลจะเท่ากับผลรวมของปริมาณทั้งหมดของเส้นทางที่ผ่านขอบนั้น การแยกส่วนการไหลเป็นเครื่องมือที่มีประสิทธิภาพในปัญหาการเพิ่มประสิทธิภาพเพื่อเพิ่มหรือลดพารามิเตอร์การไหลเฉพาะ

การเพิ่มส่วนโค้งและการไหล

เราไม่ใช้ส่วนโค้งหลายส่วนภายในเครือข่ายเดียวกัน เพราะเราสามารถรวมส่วนโค้งเหล่านั้นเข้าเป็นส่วนโค้งเดียวได้ ในการรวมส่วนโค้งสองส่วนเข้าเป็นส่วนโค้งเดียว เราจะบวกค่าความจุและค่าการไหลของส่วนโค้งทั้งสองเข้าด้วยกัน แล้วกำหนดค่าเหล่านั้นให้กับส่วนโค้งใหม่:

  • เมื่อกำหนดโหนด uและvสองโหนดใดๆการมีอาร์คสองเส้นจากuไปยังvที่มีความจุc ( u,v )และc ( u,v )ตามลำดับนั้นเทียบเท่ากับการพิจารณาเพียงอาร์คเดียวจากuไปยังvที่มีความจุเท่ากับc ( u,v )+ c ( u, v )
  • เมื่อกำหนดโหนด uและvสองโหนดใดๆการมีอาร์คสองเส้นจากuไปยังvที่มีโฟลว์เสมือนf ( u,v )และf ( u,v )ตามลำดับนั้นเทียบเท่ากับการพิจารณาเพียงอาร์คเดียวจากu ไปยังvที่มีโฟลว์เสมือนเท่ากับf ( u,v )+ f ( u,v )

นอกเหนือจากข้อจำกัดอื่นๆ แล้ว ในขั้นตอนนี้ต้องคำนึงถึงข้อจำกัดเรื่องสมมาตรแบบเฉียงด้วย เพื่อรักษาทิศทางของส่วนโค้งการไหลเสมือนเดิม การเพิ่มการไหลให้กับส่วนโค้งนั้นเหมือนกับการเพิ่มส่วนโค้งที่มีความจุเป็นศูนย์

ส่วนที่เหลือ

The residual capacity of an arc e with respect to a pseudo-flow f is denoted c, and it is the difference between the arc's capacity and its flow. That is, c (e) = c(e) f(e). From this we can construct a residual network, denoted G (V, E), with a capacity function c which models the amount of available capacity on the set of arcs in G = (V, E). More specifically, capacity function c of each arc (u, v) in the residual network represents the amount of flow which can be transferred from u to v given the current state of the flow within the network.

This concept is used in Ford–Fulkerson algorithm which computes the maximum flow in a flow network.

Note that there can be an unsaturated path (a path with available capacity) from u to v in the residual network, even though there is no such path from u to v in the original network. Since flows in opposite directions cancel out, decreasing the flow from v to u is the same as increasing the flow from u to v.

Augmenting paths

An augmenting path is a path (u, u, ..., u) in the residual network, where u = s, u = t, and for all u, u (c (u, u) > 0) (1 ≤ i < k). More simply, an augmenting path is an available flow path from the source to the sink. A network is at maximum flow if and only if there is no augmenting path in the residual network G.

คอขวดคือความจุคงเหลือขั้นต่ำของขอบทั้งหมดในเส้นทางเสริมที่กำหนด[ 2 ]ดูตัวอย่างที่อธิบายไว้ในส่วน "ตัวอย่าง" ของบทความนี้ เครือข่ายการไหลจะมีอัตราการไหลสูงสุดก็ต่อเมื่อมีคอขวดที่มีค่าเท่ากับศูนย์ หากมีเส้นทางเสริมใดๆ น้ำหนักของคอขวดจะมีค่ามากกว่า 0 กล่าวอีกนัยหนึ่ง หากมีค่าคอขวดมากกว่า 0 แสดงว่ามีเส้นทางเสริมจากแหล่งกำเนิดไปยังปลายทาง อย่างไรก็ตาม เรารู้ว่าหากมีเส้นทางเสริมใดๆ เครือข่ายจะไม่มีอัตราการไหลสูงสุด ซึ่งหมายความว่า หากมีค่าคอขวดมากกว่า 0 เครือข่ายจะไม่มีอัตราการไหลสูงสุด

คำว่า "การเพิ่มปริมาณการไหล" สำหรับเส้นทางเพิ่มปริมาณการไหล หมายถึง การปรับปรุงปริมาณการไหลfของแต่ละส่วนโค้งในเส้นทางเพิ่มปริมาณการไหลนี้ ให้เท่ากับความจุcของคอขวด การเพิ่มปริมาณการไหลนี้เทียบเท่ากับการผลักดันปริมาณการไหลเพิ่มเติมไปตามเส้นทางเพิ่มปริมาณการไหล จนกว่าจะไม่มีความจุคงเหลือในคอขวดอีกต่อไป

แหล่งที่มาและ/หรือปลายทางหลายแห่ง

บางครั้ง เมื่อสร้างแบบจำลองเครือข่ายที่มีแหล่งกำเนิดมากกว่าหนึ่งแหล่ง จะมีการแนะนำ ซูเปอร์ซอร์สเข้าไปในกราฟ[ 4 ]ซึ่งประกอบด้วยจุดยอดที่เชื่อมต่อกับแหล่งกำเนิดแต่ละแหล่งด้วยขอบที่มีความจุไม่จำกัด เพื่อทำหน้าที่เป็นแหล่งกำเนิดทั่วโลก โครงสร้างที่คล้ายกันสำหรับซิงค์เรียกว่าซูเปอร์ซิงค์[ 5 ]

ตัวอย่าง

รูปที่ 1: แผนผังเครือข่ายการไหล แสดงอัตราการไหลและความจุ

ในรูปที่ 1 คุณจะเห็นเครือข่ายการไหลที่มีแหล่งกำเนิดระบุด้วยs ปลายทางระบุ ด้วยtและโหนดเพิ่มเติมอีกสี่โหนด การไหลและความจุแสดงด้วยเอฟ/{\displaystyle f/c}สังเกตว่าเครือข่ายนี้รักษาข้อจำกัดด้านความจุและข้อจำกัดด้านการอนุรักษ์การไหล ปริมาณการไหลทั้งหมดจากsไปtคือ 5 ซึ่งสามารถเห็นได้ง่ายจากข้อเท็จจริงที่ว่าปริมาณการไหลออกทั้งหมดจากsคือ 5 ซึ่งก็คือปริมาณการไหลเข้าสู่t เช่นกัน ภายใต้ข้อจำกัดด้านสมมาตรเฉียง ปริมาณการไหลจากcไปaคือ -2 เนื่องจากปริมาณการไหลจากaไปcคือ 2

รูปที่ 2: โครงข่ายส่วนที่เหลือสำหรับโครงข่ายการไหลข้างต้น แสดงความจุที่เหลืออยู่

ในรูปที่ 2 คุณจะเห็นเครือข่ายส่วนที่เหลือสำหรับการไหลที่กำหนดไว้แบบเดียวกัน สังเกตว่ามีความจุส่วนที่เหลือเป็นบวกบนขอบบางส่วนที่ความจุเดิมเป็นศูนย์ในรูปที่ 1 ตัวอย่างเช่น สำหรับขอบ(,){\displaystyle (d,c)}เครือข่ายนี้ยังไม่ถึงระดับปริมาณการใช้งานสูงสุดยังมีพื้นที่ว่างเหลืออยู่ตามเส้นทางต่างๆ(,เอ,,ที){\displaystyle (s,a,c,t)},(,เอ,,,ที){\displaystyle (s,a,b,d,t)}และ(,เอ,,,,ที){\displaystyle (s,a,b,d,c,t)}ซึ่งก็คือเส้นทางเสริมเหล่านั้น

จุดคอขวดของ(,เอ,,ที){\displaystyle (s,a,c,t)}เส้นทางเท่ากับนาที((,เอ)เอฟ(,เอ),(เอ,)เอฟ(เอ,),(,ที)เอฟ(,ที)){\displaystyle \min(c(s,a)-f(s,a),c(a,c)-f(a,c),c(c,t)-f(c,t))}=นาที(เอฟ(,เอ),เอฟ(เอ,),เอฟ(,ที)){\displaystyle =\min(c_{f}(s,a),c_{f}(a,c),c_{f}(c,t))}=นาที(53,32,21){\displaystyle =\min(5-3,3-2,2-1)}=นาที(2,1,1)=1{\displaystyle =\min(2,1,1)=1}.

แอปพลิเคชัน

ลองนึกภาพท่อน้ำหลายๆ ท่อที่ต่อกันเป็นเครือข่าย ท่อแต่ละท่อมีเส้นผ่านศูนย์กลางที่แน่นอน ดังนั้นจึงสามารถรองรับปริมาณน้ำไหลได้ในปริมาณที่จำกัด ตรงจุดที่ท่อมาบรรจบกัน ปริมาณน้ำทั้งหมดที่ไหลเข้ามาต้องเท่ากับปริมาณน้ำที่ไหลออกไป มิฉะนั้นน้ำจะหมดเร็ว หรืออาจเกิดการขังน้ำได้ เรามีทางเข้าของน้ำ ซึ่งเป็นแหล่งน้ำ และทางออก ซึ่งเป็นอ่างล้างจาน ดังนั้น อัตราการไหล จึงหมายถึงวิธีหนึ่งที่น้ำจะไหลจากแหล่งน้ำไปยังอ่างล้างจาน โดยที่ปริมาณน้ำทั้งหมดที่ไหลออกจากทางออกนั้นคงที่ โดยทั่วไปแล้ว อัตราการไหลรวมของเครือข่ายก็คืออัตราที่น้ำไหลออกจากทางออกนั่นเอง

การไหลอาจหมายถึงการไหลผ่านของคนหรือวัสดุบนเครือข่ายการขนส่ง หรือการไหลผ่านกระแสไฟฟ้าใน ระบบ จำหน่ายไฟฟ้าสำหรับเครือข่ายทางกายภาพใดๆ การไหลที่เข้ามาในโหนดกลางใดๆ จะต้องเท่ากับการไหลที่ออกจากโหนดนั้น ข้อจำกัดในการอนุรักษ์นี้เทียบเท่ากับกฎกระแสของเคิร์ชฮอฟฟ์

เครือข่ายการไหลยังพบการประยุกต์ใช้ในด้านนิเวศวิทยา ด้วย กล่าวคือ เครือข่ายการไหลเกิดขึ้นตามธรรมชาติเมื่อพิจารณาการไหลของสารอาหารและพลังงานระหว่างสิ่งมีชีวิตต่าง ๆ ใน ห่วงโซ่ อาหารปัญหาทางคณิตศาสตร์ที่เกี่ยวข้องกับเครือข่ายดังกล่าวแตกต่างจากปัญหาที่เกิดขึ้นในเครือข่ายการไหลของของเหลวหรือการจราจรอย่างสิ้นเชิง สาขาการวิเคราะห์เครือข่ายระบบนิเวศ ซึ่งพัฒนาโดยโรเบิร์ต อูลาโนวิชและคนอื่นๆ เกี่ยวข้องกับการใช้แนวคิดจากทฤษฎีสารสนเทศและอุณหพลศาสตร์เพื่อศึกษาการวิวัฒนาการของเครือข่ายเหล่านี้เมื่อเวลาผ่านไป

การจำแนกประเภทปัญหาการไหล

ปัญหาที่ง่ายที่สุดและพบได้บ่อยที่สุดในการใช้เครือข่ายการไหลคือการหาค่าที่เรียกว่าการไหลสูงสุดซึ่งให้ปริมาณการไหลรวมที่มากที่สุดเท่าที่จะเป็นไปได้จากแหล่งกำเนิดไปยังปลายทางในกราฟที่กำหนด มีปัญหาอื่นๆ อีกมากมายที่สามารถแก้ไขได้โดยใช้อัลกอริทึมการไหลสูงสุด หากแบบจำลองของปัญหาเหล่านั้นเหมาะสมในรูปแบบของเครือข่ายการไหล เช่นการจับคู่แบบทวิภาคปัญหาการจัดสรรและปัญหาการขนส่งปัญหาการไหลสูงสุดสามารถแก้ไขได้ในเวลาพหุนามด้วยอัลกอริทึมต่างๆ (ดูตาราง) ทฤษฎีบทการไหลสูงสุด-การตัดต่ำสุดระบุว่า การหาการไหลสูงสุดของเครือข่ายเทียบเท่ากับการหา การตัดที่มีความจุต่ำสุดที่แยกแหล่งกำเนิดและปลายทาง โดยที่การตัดคือการแบ่งจุดยอดโดยที่แหล่งกำเนิดอยู่ในส่วนหนึ่งและปลายทางอยู่ในอีกส่วนหนึ่ง

อัลกอริทึมที่เป็นที่รู้จักกันดีสำหรับปัญหาการไหลสูงสุด
ผู้ประดิษฐ์ปีความซับซ้อนเชิงเวลา(โดยมี โหนด nโหนดและ ส่วนโค้ง mส่วน)
อัลกอริทึมของ Dinic1970O ( mn 2 )
อัลกอริทึม Edmonds–Karpพ.ศ. 2515O ( m 2 n )
อัลกอริทึมMPM (Malhotra, Pramodh-Kumar และ Maheshwari) [ 6 ]พ.ศ. 2521O ( n 3 )
อัลกอริธึม Push–relabel ( Goldberg & Tarjan )1988O ( n 2 m )
เจมส์ บี. ออร์ลิน[ 7 ]2013โอ ( ม.น )
หลี่ เฉิน, ราสมุส คิง, หยาง พี. หลิว,

ริชาร์ด เผิง, แม็กซิมิเลียน พรบสต์ กูเทนเบิร์ก, สุชานต์ ซัคเดวา

2022โอ(1+โอ(1)){\displaystyle O(m^{1+o(1)})}

ในปัญหาการไหลเวียนของสินค้าหลายชนิดคุณจะมีแหล่งที่มาและปลายทางหลายแห่ง และ "สินค้า" หลากหลายชนิดที่จะต้องไหลจากแหล่งที่มาที่กำหนดไปยังปลายทางที่กำหนด ตัวอย่างเช่น อาจเป็นสินค้าหลายชนิดที่ผลิตในโรงงานหลายแห่ง และจะต้องส่งไปยังลูกค้าหลายรายที่กำหนดผ่านเครือข่ายการขนส่งเดียวกัน

ในปัญหาการไหลที่มีต้นทุนต่ำสุดแต่ละขอบคุณ,วี{\displaystyle u,v}มีต้นทุนที่กำหนดไว้เค(คุณ,วี){\displaystyle k(u,v)}และต้นทุนในการส่งกระแสข้อมูลเอฟ(คุณ,วี){\displaystyle f(u,v)}ข้ามขอบนั้นคือเอฟ(คุณ,วี)เค(คุณ,วี){\displaystyle f(u,v)\cdot k(u,v)}เป้าหมายคือการส่งปริมาณการไหลที่กำหนดจากแหล่งกำเนิดไปยังปลายทางด้วยต้นทุนที่ต่ำที่สุดเท่าที่จะเป็นไปได้

ในปัญหาเกี่ยวกับการไหลเวียนคุณจะมีขอบเขตล่าง(คุณ,วี){\displaystyle \ell (u,v)}ที่ขอบ นอกเหนือจากขอบเขตบนแล้ว(คุณ,วี){\displaystyle c(u,v)}แต่ละเส้นเชื่อมก็มีต้นทุนเช่นกัน บ่อยครั้งที่หลักการอนุรักษ์การไหลใช้ได้กับทุกโหนดในปัญหาการไหลเวียน และมีการเชื่อมต่อจากจุดรับกลับไปยังจุดกำเนิด ด้วยวิธีนี้ คุณสามารถกำหนดปริมาณการไหลทั้งหมดได้ด้วย(ที,){\displaystyle \ell (t,s)}และ(ที,){\displaystyle c(t,s)}กระแสไหลหมุนเวียนผ่านเครือข่าย จึงเป็นที่มาของชื่อปัญหาดังกล่าว

ในเครือข่ายที่มีอัตราขยายหรือเครือข่ายทั่วไปแต่ละขอบจะมีอัตราขยายซึ่งเป็นจำนวนจริง (ไม่ใช่ศูนย์) โดยที่หากขอบมีอัตราขยายgและมีปริมาณxไหลเข้าสู่ขอบที่ปลายด้านหนึ่ง ปริมาณgxจะไหลออกที่ปลายด้านตรงข้าม

ในปัญหาการระบุตำแหน่งแหล่งที่มาอัลกอริทึมจะพยายามระบุโหนดแหล่งที่มาที่มีความเป็นไปได้มากที่สุดของการแพร่กระจายข้อมูลผ่านเครือข่ายที่สังเกตได้บางส่วน ซึ่งสามารถทำได้ในเวลาเชิงเส้นสำหรับต้นไม้และเวลาลูกบาศก์สำหรับเครือข่ายใดๆ และมีการใช้งานที่หลากหลายตั้งแต่การติดตามผู้ใช้โทรศัพท์มือถือไปจนถึงการระบุแหล่งที่มาของการระบาดของโรค[ 8 ]

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • George T. Heineman; Gary Pollice; Stanley Selkow (2008). "บทที่ 8: อัลกอริทึมการไหลของเครือข่าย". อัลกอริทึมโดยสังเขป . Oreilly Media . หน้า226–250 . ISBN  978-0-596-51624-6.
  • Ravindra K. Ahuja ; Thomas L. Magnanti ; James B. Orlin (1993). การไหลของเครือข่าย: ทฤษฎี อัลกอริทึม และการประยุกต์ใช้ . Prentice Hall. ISBN 0-13-617549-X.
  • Bollobás, Béla (1979). ทฤษฎีกราฟ: หลักสูตรเบื้องต้น . ไฮเดลเบิร์ก: Springer-Verlag. ISBN 3-540-90399-2.
  • Chartrand, Gary ; Oellermann, Ortrud R. (1993). ทฤษฎีกราฟประยุกต์และเชิงอัลกอริทึม . นิวยอร์ก: McGraw-Hill. ISBN 0-07-557101-3.
  • Even, Shimon (1979). Graph Algorithms . Rockville, Maryland: Computer Science Press. ISBN 0-914894-21-8.
  • กิบบอนส์, อลัน (1985). ทฤษฎีกราฟเชิงอัลกอริทึม . เคมบริดจ์: สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์. ISBN 0-521-28881-9.
  • Thomas H. Cormen ; Charles E. Leiserson ; Ronald L. Rivest ; Clifford Stein (2001) [1990]. "26". Introduction to Algorithms (  ฉบับที่ 2). MIT Press และ McGraw-Hill. หน้า696– 697. ISBN  0-262-03293-7.
  • ปัญหาการไหลสูงสุด
  • ตัวอย่างกราฟจริง
  • ไลบรารี Lemon C++ ที่มีอัลกอริทึมการหมุนเวียนหลายแบบที่ให้ปริมาณการไหลสูงสุดและต้นทุนต่ำสุด
  • QuickGraph ถูกเก็บถาวรเมื่อวันที่ 21 มกราคม 2018 ที่Wayback Machineโครงสร้างข้อมูลกราฟและอัลกอริธึมสำหรับ .Net
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Flow_network&oldid=1343867845 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เครือข่ายการไหล

ในทฤษฎีกราฟเครือข่ายการไหล (หรือที่เรียกว่าเครือข่ายการขนส่ง ) คือกราฟแบบมี ทิศทาง โดยแต่ละขอบมีความจุและแต่ละขอบรับการไหล ปริมาณการไหลบนขอบต้องไม่เกินความจุของขอบนั้น

คำนิยาม

เครือ ข่าย คือ กราฟแบบมีทิศทาง G = ( V , E ) ที่มี ฟังก์ชัน ความจุ ที่ไม่เป็นลบ c สำหรับแต่ละขอบ และไม่มีส่วนโค้งหลายส่วน (กล่าวคือ ขอบที่มีโหนดต้นทางและปลายทางเดียวกัน) โดยไม่เสียความเป็นทั่วไป เราอาจสมมติว่า ถ้า ( u , v ) ∈ E แล้ว ( v , u ) ก็เป็นสมาชิกของ...

การไหล

ฟังก์ชันการไหลจำลองการไหลสุทธิของหน่วยระหว่างคู่ของโหนด และมีประโยชน์เมื่อถามคำถามเช่น จำนวนหน่วยสูงสุดที่สามารถถ่ายโอนจากโหนดต้นทาง s ไปยังโหนดปลายทาง t คือเท่าใด...

การแยกส่วนการไหล

การแยกส่วนการไหล [ 3 ] เป็นกระบวนการของการแบ่งการไหลที่กำหนดออกเป็นชุดของการไหลตามเส้นทางและการไหลตามวงจร การไหลทุกเส้นทางผ่านเครือข่ายสามารถแยกส่วนออกเป็นเส้นทางหนึ่งเส้นทางหรือมากกว่าและปริมาณที่สอดคล้องกัน...