คำถามติดแท็ก directed-acyclic-graph

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

5
ทอพอโลยีเชิงบวก
สมมติว่าฉันมีกราฟ acyclic กำกับด้วยน้ำหนักจริงจำนวนจุดยอด ฉันต้องการค้นหาการจัดเรียงทอพอโลยีของ DAG ซึ่งสำหรับคำนำหน้าของการจัดเรียงโทโพโลยีผลรวมของน้ำหนักนั้นไม่เป็นลบ หรือถ้าคุณชอบคำศัพท์เชิงทฤษฎีฉันมีคำสั่งบางส่วนที่มีน้ำหนักและฉันต้องการส่วนขยายเชิงเส้นเพื่อให้คำนำหน้าแต่ละคำมีน้ำหนักไม่เป็นลบ ปัญหานี้เกิดจากอะไร มันเป็น NP-complete หรือ solvable ในเวลาพหุนาม?

3
ให้ dag แบบถ่วงน้ำหนักมีอัลกอริทึม O (V + E) เพื่อแทนที่แต่ละน้ำหนักด้วยผลรวมของน้ำหนักของบรรพบุรุษหรือไม่
แน่นอนปัญหาคือการนับซ้ำ มันง่ายพอที่จะทำสำหรับคลาสของ DAGs = a tree หรือแม้แต่ต้นไม้แบบขนาน อัลกอริทึมเดียวที่ฉันได้พบซึ่งทำงานบน DAG ทั่วไปในเวลาที่เหมาะสมคือประมาณหนึ่ง (การสรุปเรื่องย่อ) แต่การเพิ่มความแม่นยำของมันนั้นขึ้นอยู่กับจำนวนบิต (และฉันต้องการบิตจำนวนมาก) พื้นหลัง: งานนี้เสร็จสิ้น (หลายครั้งด้วย 'น้ำหนัก' ที่แตกต่างกัน) ซึ่งเป็นส่วนหนึ่งของการคำนวณความน่าจะเป็นใน BBChop (http://github.com/ealdwulf/bbchop) โปรแกรมสำหรับค้นหาข้อผิดพลาดที่ไม่ต่อเนื่อง (เช่นเวอร์ชัน Bayesian ของ ' git bisect ') DAG ที่เป็นปัญหาจึงเป็นประวัติการแก้ไข นั่นหมายความว่าจำนวนของขอบไม่น่าจะเข้าหากำลังสองของจำนวนโหนดได้มันน่าจะน้อยกว่า k คูณจำนวนโหนดสำหรับบางขนาดเล็ก k น่าเสียดายที่ฉันไม่พบคุณสมบัติที่มีประโยชน์อื่น ๆ ของการแก้ไข DAG ตัวอย่างเช่นฉันหวังว่าส่วนประกอบ triconnected ที่ใหญ่ที่สุดจะเติบโตได้เฉพาะในฐานะสแควร์รูทของจำนวนโหนด แต่น่าเศร้า (อย่างน้อยที่สุดในประวัติศาสตร์ของเคอร์เนลลินุกซ์) มันจะเติบโตเป็นเส้นตรง

2
ทำไมต้องเป็นทอพอโลยีแบบคัดแยก
ทำไม "การเรียงโทโพโลยี" จึงเรียกว่า "โทโพโลยี" มันเป็นเพียงเพราะมันเป็นตัวกำหนดลำดับโดยไม่มีการเปลี่ยนแปลงจุดยอดหรือขอบ - เช่นเดียวกับโดนัทและถ้วยกาแฟที่มีทอพอโลยีเทียบเท่าหรือไม่ ทำไมถึงไม่เรียกว่า "การเรียงลำดับการพึ่งพา" หรืออย่างอื่น ทำไม "โทโพโลยี" ฉันยอมรับว่าฉันประหลาดใจ

2
มีอัลกอริทึมที่มีประสิทธิภาพในการรักษาข้อมูลการเชื่อมต่อสำหรับ DAG ต่อหน้า / ลบหรือไม่?
ด้วยกราฟ acyclic โดยตรงเป็นไปได้หรือไม่ที่จะสนับสนุนการดำเนินการต่อไปนี้ได้อย่างมีประสิทธิภาพ?G(V,E)G(V,E)G(V,E) : กำหนดถ้ามีเส้นทางใน GจากโหนดไปยังโหนดขisConnected(G,a,b)isConnected(G,a,b)isConnected(G,a,b)GGGaaabbb : เพิ่มขอบจาก aถึง bในกราฟ Glink(G,a,b)link(G,a,b)link(G,a,b)aaabbbGGG : ลบขอบจาก aถึง bใน Gunlink(G,a,b)unlink(G,a,b)unlink(G,a,b)aaabbbGGG : เพิ่มจุดสุดยอดไปที่ Gadd(G,a)add(G,a)add(G,a) : ลบจุดสุดยอดออกจาก Gremove(G,a)remove(G,a)remove(G,a) หมายเหตุเล็กน้อย: ถ้าเราไม่ได้รับอนุญาตดูเหมือนว่ามันจะเป็นเรื่องง่ายที่จะรักษาข้อมูลการเชื่อมโยงโดยใช้เคล็ดชุดชนิดโครงสร้างข้อมูลunlinkunlinkunlink เห็นได้ชัดว่าอาจจะดำเนินการโดยใช้ความลึกหรือกว้างแรกค้นหาโดยใช้แทนตัวชี้ตามที่ไร้เดียงสาของกราฟ แต่นี่ไม่มีประสิทธิภาพisConnectedisConnectedisConnected ฉันหวังว่าจะตัดจำหน่ายค่าคงที่หรือเวลาลอการิทึมสำหรับการดำเนินการทั้งสามนี้ เป็นไปได้ไหม

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

2
การค้นหาเส้นทางที่สั้นที่สุดด้วยอัลกอริทึมของ Eppstein
ฉันพยายามที่จะหาว่ากราฟเส้นทางP(G)P(G)P(G)ตามอัลกอริทึมของ Eppstein ในบทความนี้ทำงานอย่างไรและฉันสามารถสร้างเส้นทางที่สั้นที่สุดkkkจากsssถึงtttด้วยการสร้างฮีปที่สอดคล้องกันH(G)H(G)H(G)ได้อย่างไร จนถึงตอนนี้: out(v)out(v)out(v)มีขอบทั้งหมดออกจากจุดสุดยอดvvvในกราฟGGGที่ไม่ได้เป็นส่วนหนึ่งของเส้นทางที่สั้นที่สุดในGGGGพวกเขาจะได้รับคำสั่งจากกอง "เสียเวลา" ที่เรียกว่าδ(e)δ(e)\delta(e)เมื่อใช้ขอบนี้แทนที่จะเป็นหนึ่งในเส้นทางที่สั้นที่สุด โดยใช้ Dijkstra ฉันหาเส้นทางที่สั้นที่สุดเพื่อทุกจุดสุดยอดจากเสื้อttt ฉันสามารถคำนวณโดยการใช้ความยาวของขอบ + (ค่าของจุดสุดยอดหัว (ที่ขอบกำกับชี้) ที่ -. ค่าของยอดหาง (ที่ขอบกำกับจะเริ่มต้น) ถ้าเป็นมัน ไม่ได้อยู่ในเส้นทางที่สั้นที่สุดหากเป็น= 0มันอยู่ในเส้นทางที่สั้นที่สุด>0>0> 0=0=0= 0 ตอนนี้ผมสร้าง 2 นาทีกองโดย heapifying ชุดของขอบo ยูที( วี)ตามที่พวกเขาδ ( E )สำหรับการใด ๆวี∈ Vที่รากo U T r o o t ( v )มีลูกเพียงคนเดียว (= ทรีย่อย)Hout(v)Hout(v)H_{out}(v)out(v)out(v)out(v)δ(e)δ(e)\delta(e)v∈Vv∈Vv \in Voutroot(v)outroot(v)outroot(v) เพื่อที่จะสร้างผมแทรกo ยูทีR …

3
ความซับซ้อนของการจัดเรียงทอพอโลยีที่มีตำแหน่งที่ จำกัด
ฉันกำลังได้รับเป็นใส่ DAGของจุดซึ่งแต่ละจุดสุดยอดมีข้อความระบุว่านอกจากนี้ยังมีบางส่วน\}n x S ( x ) ⊆ { 1 , … , n }GGGnnnxxxS(x)⊆{1,…,n}S(x)⊆{1,…,n}S(x) \subseteq \{1, \ldots, n\} ทอพอโลยีแบบหนึ่งของคือ bijectionจากจุดยอดของถึงเช่นนั้นสำหรับ ,หากมีเส้นทางจากไปยังในดังนั้น(y) ฉันต้องการที่จะตัดสินใจว่าจะมีอยู่การจัดเรียงทอพอโลยีของเช่นว่าทุก ,(x)f G { 1 , … , n } x y x y G f ( x ) ≤ f ( y ) G x f ( …

1
มันแพงแค่ไหนที่จะทำลายเส้นทางยาวทั้งหมดใน DAG?
เราพิจารณา DABs ความ (กำกับกราฟวัฏจักร) กับหนึ่งโหนดแหล่งsssและเป้าหมายหนึ่งโหนดทีtt ; อนุญาตให้ใช้ขอบขนานที่มีจุดยอดคู่เดียวกัน kkk - ตัดเป็นชุดของขอบที่มีการกำจัดทำลายทั้งหมดsss - เสื้อttเส้นทางนานกว่าkkk ; เส้นทางsss - t ที่สั้นกว่าttรวมถึงเส้นทาง "ภายใน" ที่ยาว (ซึ่งไม่ใช่ระหว่างsssและttt ) อาจอยู่รอดได้! คำถาม: มันพอที่จะลบที่มากที่สุดประมาณ1 / k1/k1/kส่วนหนึ่งของขอบจาก DAG เพื่อที่จะทำลายทุกsss - เสื้อttเส้นทางนานกว่าkkk ? นั่นคือถ้าe ( G )e(G)e(G)แสดงถึงจำนวนทั้งหมดของขอบในGGGดังนั้น DAG GทุกตัวGGจะมีkkk -cut ที่มีขอบe ( G ) / kมากที่สุดe(G)/ke(G)/kหรือไม่? สองตัวอย่าง: หากทั้งหมด sss - เสื้อttเส้นทางที่มีความยาว> k>k> …

1
อัลกอริทึมที่แน่นอนสำหรับปัญหาการติดฉลากขอบใน DAG
ฉันกำลังใช้ระบบบางส่วนซึ่งต้องการความช่วยเหลือ ฉันจึงกำหนดให้เป็นปัญหากราฟเพื่อให้โดเมนเป็นอิสระ ปัญหา:เราจะได้รับการกำกับวัฏจักรกราฟ ) โดยไม่สูญเสียของทั่วไปคิดว่าGมีตรงจุดสุดยอดแหล่งหนึ่งsและตรงหนึ่งอ่างจุดสุดยอดเสื้อ ; ให้Pแสดงว่าชุดของเส้นทางกำกับทั้งหมดจากsไปทีในG เรายังจะได้รับชุดของจุดR ⊆ V ปัญหาคือการกำหนดน้ำหนักจำนวนเต็มแบบไม่เป็นลบให้กับขอบของGดังนั้นสองเส้นทางในPมีน้ำหนักเท่ากันถ้าหากพวกมันมีเซตย่อยของจุดยอดเดียวกันในG=(V,E)G=(V,E)G=(V,E)GGGssstttPPPssstttGGGR⊆VR⊆VR \subseteq VGGGPPP . (น้ำหนักของเส้นทางคือผลรวมของน้ำหนักของขอบ) ช่วงของน้ำหนักของเส้นทางใน Pควรมีขนาดเล็กที่สุดRRRPPP ขณะนี้วิธีการของฉันดูเหมือนจะไม่มีประสิทธิภาพ ฉันแค่กำลังมองหาการอ้างอิงถึงวรรณกรรมหรือความเข้าใจที่ดี อะไรก็ได้ที่ชื่นชมเช่นกัน แก้ไข:มีหลักฐานความแข็งสำหรับปัญหานี้หรือไม่? หมายเลขกะทัดรัดมีอยู่เสมอหรือไม่

2
การจัดเรียงทอพอโลยีแบบย่อเล็กที่สุดของพจนานุกรมที่มีป้ายกำกับ
ลองพิจารณาปัญหาที่เราได้รับในรูปของกราฟ acyclic กำกับ , ฟังก์ชั่นการติดฉลากλจากVถึงบางชุดLพร้อมกับคำสั่งทั้งหมด&lt; L (เช่น, จำนวนเต็ม) และสถานที่ที่เราถูกถาม คำนวณlexicographically เล็กที่สุดเรียงลำดับทอพอโลยีของGในแง่ของλ อีกอย่างแม่นยำทอพอโลยีแบบเรียงตัวของจีคือการนับของvเป็นv = v 1 , … , v nG=(V,E)G=(V,E)G = (V, E)λλ\lambdaVVVLLL&lt;L&lt;L<_LGGGλλ\lambdaGGGVVVv=v1,…,vnv=v1,…,vn\mathbf{v} = v_1, \ldots, v_nเช่นว่าทุกเมื่อใดก็ตามที่มีเส้นทางจากวีฉันจะวีเจในGแล้วเราต้องมีฉัน&lt; J ฉลากดังกล่าวเรียงลำดับทอพอโลยีเป็นลำดับขององค์ประกอบของSได้รับเป็นL = λ ( โวลต์1 ) , ... , λ ( V n ) การเรียงลำดับพจนานุกรมในลำดับดังกล่าว (ซึ่งทั้งหมดมีความยาว| V | ) ถูกกำหนดเป็นl &lt; LEXi≠ji≠ji …

4
กำกับปัญหา NP-hard เกี่ยวกับ DAG
ความกว้างของต้นไม้วัดได้ว่ากราฟใกล้กับต้นไม้อย่างไร ปัญหา NP-hard หลายอย่างสามารถจัดการได้บนกราฟที่มีความกว้างของต้นไม้ล้อมรอบ หากปัญหายังคงมีปัญหา NP-hard บนต้นไม้ความกว้างของต้นไม้จะไม่สามารถช่วยเราได้ นี่คือแรงบันดาลใจที่อยู่เบื้องหลังหนึ่งในคำถามก่อนหน้าของฉันที่ถามถึงปัญหาที่เกิดขึ้นกับต้นไม้ มีการวัดความกว้างของต้นไม้หลายเวอร์ชันโดยตรงว่ากราฟที่กำกับไว้นั้นตรงกับกราฟที่กำหนดทิศทาง (DAG) อย่างไร อะไรบางอย่างกำกับปัญหาที่ยังคงอยู่ NP-อย่างหนักใน DABs ความ? ปัญหาที่เกิดขึ้นทำให้ใช้ประโยชน์อย่างจำเป็นจากทิศทางของขอบ ตัวอย่างเช่นเส้นทาง hamiltonian เป็นปัญหาโดยตรงในขณะที่จุดยอดไม่ได้ หนึ่งในคำตอบสำหรับคำถามก่อนหน้าของฉันให้สูตรทั่วไปสำหรับการสร้างปัญหาที่ยากบนต้นไม้ มีสูตรสำหรับ DAG ไหม?

1
การสั่งทอพอโลยีเชิงบวกใช้เวลา 2
นี่คือการติดตามคำถามล่าสุดของ David Eppsteinและได้รับแรงบันดาลใจจากปัญหาเดียวกัน สมมติว่าฉันมี dag ที่มีน้ำหนักจริงจำนวนมากที่จุดยอด ในขั้นต้นจุดยอดทั้งหมดจะไม่มีการทำเครื่องหมาย ฉันสามารถเปลี่ยนชุดจุดยอดที่ถูกทำเครื่องหมายด้วย (1) ทำเครื่องหมายจุดสุดยอดโดยไม่มีผู้ทำเครื่องหมายก่อนหน้าหรือ (2) ยกเลิกการทำเครื่องหมายจุดยอดที่ไม่มีผู้สืบทอดที่ทำเครื่องหมายไว้ (ดังนั้นชุดของจุดยอดที่ถูกทำเครื่องหมายจะเป็นคำนำหน้าของคำสั่งบางส่วนเสมอ) ฉันต้องการค้นหาลำดับของการทำเครื่องหมาย / การทำเครื่องหมายที่สิ้นสุดด้วยการทำเครื่องหมายจุดยอดทั้งหมดเช่นน้ำหนักรวมของจุดยอดที่ถูกทำเครื่องหมายจะไม่เป็นลบเสมอ . การค้นหาลำดับของการดำเนินการนั้นยากเพียงใด ไม่เหมือนกับปัญหาของเดวิดมันไม่ชัดเจนเลยว่าปัญหานี้เป็นปัญหา โดยหลักการ (แม้ว่าฉันจะไม่มีตัวอย่างใด ๆ ) ทุกลำดับการย้ายตามกฎหมายอาจมีความยาวเป็นเลขชี้กำลัง ที่ดีที่สุดที่ฉันสามารถพิสูจน์ได้คือปัญหาอยู่ใน PSPACE การดำเนินการที่ไม่มีเครื่องหมายจำเป็นจริงหรือไม่? หากมีลำดับการย้ายที่ถูกต้องจะต้องมีลำดับการย้ายที่ถูกต้องที่จะไม่ยกเลิกการทำเครื่องหมายจุดสุดยอดหรือไม่? คำตอบยืนยันว่าจะทำให้ปัญหานี้เหมือนกันที่จะดาวิด ในทางกลับกันหากบางครั้งไม่จำเป็นต้องทำเครื่องหมายควรมีตัวอย่างขนาดเล็ก (ขนาดคงที่) ที่พิสูจน์ได้

1
ลักษณะทั่วไปของทฤษฎีบทของ Dilworth สำหรับป้ายกำกับ DAG
antichainในDAG เป็นส่วนหนึ่ง⊆ Vของจุดที่ไม่สามารถเข้าถึงคู่คือไม่มีวี≠ วี' ∈ดังกล่าวว่าโวลต์สามารถเข้าถึงได้จากโวลต์'ในE จากทฤษฎีบทของดิลเวิร์ ธในทฤษฎีลำดับบางส่วนเป็นที่รู้กันว่าถ้า DAG ไม่มีแอนติเชนขนาดk ∈ Nจากนั้นมันสามารถย่อยสลายในสหภาพที่มีโซ่แยกส่วนk - 1มากที่สุดคือเส้นทางชี้นำ(V,E)(V,E)(V, E)A⊆VA⊆VA \subseteq Vv≠v′∈Av≠v′∈Av \neq v' \in Avvvv′v′v'EEEk∈Nk∈Nk \in \mathbb{N}k−1k−1k-1 vvvλ(v)λ(v)\lambda(v)ΣΣ\SigmaA⊆VA⊆VA \subseteq VΣΣ\SigmaAAAmina∈Σ|{v∈A∣λ(v)=a}|mina∈Σ|{v∈A∣λ(v)=a}|\min_{a \in \Sigma} |\{v \in A \mid \lambda(v) = a\}| k∈Nk∈Nk \in \mathbb{N}ฉันจะเดาได้อย่างไรเกี่ยวกับโครงสร้างของมัน ฉันสามารถย่อยสลายมันด้วยวิธีพิเศษได้ไหม? ฉันงงกับกรณีของ , แต่ก็สนใจในกรณีของชุดฉลาก จำกัด ทั่วไปΣ={a,b}Σ={a,b}\Sigma = \{a, b\} เพื่อให้เห็นภาพนี้สำหรับ , บอกว่าไม่มี antichain …

1
การแจกแจงประเภททอพอโลยีของ DAG ที่ติดป้ายจุดสุดยอด
ให้เป็นผู้กำกับวัฏจักรกราฟและให้จะเป็นฟังก์ชั่นการติดฉลากการทำแผนที่จุดสุดยอดแต่ละป้ายกำกับในบาง จำกัด ตัวอักษรLกำลังเขียนการเรียงลำดับทอพอโลยีของเป็น bijectionจากเพื่อ (เช่นการสั่งซื้อของในลำดับ) เช่นว่าเมื่อใดก็ตามแล้ว (เช่นถ้ามีขอบจากถึงG=(V,E)G=(V,E)G = (V, E)λλ\lambdav∈Vv∈Vv \in Vλ(v)λ(v)\lambda(v)LLLn:=|V|n:=|V|n := |V|GGGσσ\sigma{1,…,n}{1,…,n}\{1, \ldots, n\}VVVVVV(v,v′)∈E(v,v′)∈E(v, v') \in Eσ−1(v)&lt;σ−1(v′)σ−1(v)&lt;σ−1(v′)\sigma^{-1}(v) < \sigma^{-1}(v')vvvv′v′v'จากนั้นเกิดขึ้นก่อนตามลำดับ) ฉลากของเป็นคำที่ใน nvvvv′v′v'σσ\sigmaσ(1)⋯σ(n)σ(1)⋯σ(n)\sigma(1) \cdots \sigma(n)LnLnL^n ให้ฉันต้องการแจกแจงฉลากของประเภททอพอโลยีของอย่างมีประสิทธิภาพ ความซับซ้อนของการระบุฉลากของทอพอโลยีแปลก ๆ คืออะไร? แน่นอนว่าอาจมีจำนวนมากแทนฉันต้องการศึกษาความซับซ้อนเป็นหน้าที่ของขนาดของผลลัพธ์หรือในแง่ของความล่าช้า โดยเฉพาะอย่างยิ่งการแจงนับสามารถดำเนินการได้ด้วยความล่าช้าแบบพหุนาม (หรือแม้กระทั่งความล่าช้าคงที่?)(G,λ)(G,λ)(G, \lambda)GGG ในกรณีที่จุดทั้งหมดของดำเนินการป้ายชื่อที่แตกต่างกัน (หรือเท่ากันจุดที่มีป้ายกำกับด้วยตัวเอง) ผมรู้ว่าป้ายที่สามารถแจกแจงคงตัดจำหน่ายเวลาโดยผลนี้บน การแจกแจงการขยายเชิงเส้นของ posets (ซึ่งเป็นสิ่งเดียวกันกับการแจกแจงการจัดเรียงทอพอโลยีประเภทของ DAG) อย่างไรก็ตามเมื่อจุดยอดถูกติดป้ายกำกับโดยพลการมันอาจเป็นกรณีที่จำนวนทอพอโลยีจำนวนมากมีป้ายชื่อเดียวกันดังนั้นคุณจึงไม่สามารถระบุประเภททอพอโลยีและคำนวณฉลากเพื่อรับวิธีที่มีประสิทธิภาพในการระบุฉลาก . ในคำศัพท์ poset, ป้าย DAGสามารถมองเห็นเป็นป้ายGGG{1,…,n}{1,…,n}\{1, \ldots, n\}GGG(G,λ)(G,λ)(G, \lambda) poset …

3
การเปรียบเทียบ DAG ที่มีประสิทธิภาพผ่านเครือข่าย
ในระบบควบคุมเวอร์ชันแบบกระจาย (เช่นMercurialและGit ) มีความจำเป็นที่จะต้องเปรียบเทียบกราฟ acyclic (DAG) ที่มีประสิทธิภาพโดยตรง ฉันเป็นนักพัฒนา Mercurial และเราสนใจฟังเรื่องทฤษฎีที่พูดถึงเรื่องเวลาและความซับซ้อนของเครือข่ายในการเปรียบเทียบ DAG สองตัว DAG ที่เป็นปัญหาจะเกิดขึ้นจากการแก้ไขที่บันทึกไว้ การแก้ไขจะถูกระบุโดยค่าแฮช แต่ละการแก้ไขขึ้นอยู่กับศูนย์ (การกระทำเริ่มต้น), หนึ่ง (การกระทำปกติ) หรือมากกว่า (รวมการกระทำ) ของการแก้ไขก่อนหน้านี้ นี่คือตัวอย่างที่การแก้ไขaจะeทำทีละอย่าง: a --- b --- c --- d --- e การเปรียบเทียบกราฟเข้ามาในรูปภาพเมื่อมีบางส่วนของประวัติและต้องการเรียกคืนส่วนที่ขาด ลองนึกภาพผมมีaที่จะcทำxและyขึ้นอยู่กับc: a --- b --- c --- x --- y ใน Mercurial ฉันจะทำhg pullและดาวน์โหลดdและe: a --- b …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.