คำถามติดแท็ก graphs

คำถามเกี่ยวกับกราฟโครงสร้างที่ไม่ต่อเนื่องของโหนดซึ่งเชื่อมต่อกันด้วยขอบ รสชาติที่ได้รับความนิยมคือต้นไม้และเครือข่ายที่มีขีดความสามารถสูง

2
การสร้างกราฟใหม่จากการแจกแจงระดับ
จากการแจกแจงองศาเราจะสร้างกราฟที่ตามหลังการแจกแจงปริญญาได้เร็วแค่ไหน? ลิงค์หรืออัลกอริทึมร่างจะดี อัลกอริทึมควรรายงานกรณี "ไม่" ไม่สามารถสร้างกราฟและตัวอย่างใด ๆ ก็ได้หากสามารถสร้างกราฟได้หลายกราฟ

1
ค้นหาเส้นทางที่สั้นที่สุดในกราฟ unipathic ที่มีน้ำหนัก
กราฟกำกับกล่าวจะunipathicถ้าสองจุดและในกราฟมีที่มากที่สุดเส้นทางหนึ่งที่ง่ายจากจะวีuuuvvvG=(V,E)G=(V,E)G=(V,E)uuuvvv สมมติว่าฉันได้รับกราฟ unipathicซึ่งขอบแต่ละด้านมีน้ำหนักเป็นบวกหรือลบ แต่ไม่มีวงจรน้ำหนักเชิงลบGGG จากนี้ผมต้องการที่จะหาอัลกอริทึมที่พบทุกเส้นทางที่สั้นที่สุดเพื่อโหนดทั้งหมดจากแหล่งโหนดsO(|V|)O(|V|)O(|V|)sss ฉันไม่แน่ใจว่าฉันจะไปเกี่ยวกับปัญหานี้ได้อย่างไร ฉันพยายามที่จะดูว่าฉันสามารถใช้ความจริงที่ว่ามันไม่มีน้ำหนักรอบเชิงลบและแน่นอนที่เส้นทางที่ง่ายที่สุดระหว่างโหนดใด ๆไปวีuuuvvv

1
สร้างเครือข่ายที่ปลอดขนาดที่มีการแจกแจงระดับกฎหมายพลังงานโดยใช้ Barabasi-Albert
ฉันกำลังพยายามทำซ้ำเครือข่ายสังเคราะห์ (กราฟ) ที่อธิบายไว้ในเอกสารบางฉบับ มันบอกว่าใช้แบบจำลองBarabasi - อัลเบิร์ตในการสร้าง "เครือข่ายฟรี - มาตราส่วนด้วยอำนาจ - กฎหมายการกระจายระดับ "PA(k)∝k−λPA(k)∝k−λP_A(k) ∝ k^{-λ} คือการกระจายความน่าจะเป็นที่ส่งกลับน่าจะเป็นของโหนดที่มีการศึกษาระดับปริญญาk ตัวอย่างเช่น P A ( 2 )บ่งชี้ความน่าจะเป็นของการสุ่มเลือกโหนดจากเครือข่ายและรับโหนดที่มีระดับ 2PAPAP_AkkkPA(2)PA(2)P_A(2) ค่าเฉลี่ยของการศึกษาระดับปริญญาจังหวะน่าจะเป็นที่ 4 ในกระดาษหนึ่งกับต่ำสุดที่kของ 2 ไม่มีคำเกี่ยวกับสูงสุดk ในกระดาษอื่นมันไม่ได้ระบุ ดูเหมือนจะไม่สำคัญที่จะกำหนดเครือข่ายkkkkkkkkk ค่าแลมบ์ดาλจะได้รับเป็นจำนวนโหนดnชุดค่าผสมคือnnn n = 50000, λ = 3, 2.7, 2.3, ด้วยกระดาษ n = 4000 และλ = 2.5 หรือ n = 6000 และλ …

2
ทำไมเราไม่พบเส้นทางที่สั้นที่สุดที่มีน้ำหนักเชิงลบโดยเพียงแค่เพิ่มค่าคงที่เพื่อให้น้ำหนักทั้งหมดเป็นค่าบวก
ฉันกำลังอ่านคำแนะนำเกี่ยวกับอัลกอริทึมและมาจากอัลกอริทึมของจอห์นสันที่ขึ้นอยู่กับการทำให้แน่ใจว่าเส้นทางทั้งหมดเป็นไปในทางบวก อัลโกนั้นขึ้นอยู่กับการหาฟังก์ชั่นน้ำหนักใหม่ (w ') ที่เป็นบวกสำหรับทุกขอบและรักษาความถูกต้องของความสัมพันธ์เส้นทางที่สั้นที่สุด มันทำได้โดยการคำนวณ h (s), h (d) ค่าที่จะเพิ่มเข้าไปในค่าดั้งเดิม w คำถามของฉันคือทำไมไม่เพียงแค่หาค่า w ที่เล็กที่สุดในกราฟและเพิ่มลงในขอบทั้งหมด? สิ่งนี้จะเป็นไปตามเงื่อนไขทั้งสองและจะต้องใช้การคำนวณน้อยลง

3
ความหมายของ 'ความกว้าง' ในการค้นหาความกว้างครั้งแรกคืออะไร?
ฉันได้เรียนรู้เกี่ยวกับการค้นหาครั้งแรกและคำถามอยู่ในใจว่าทำไม BFS จึงถูกเรียกเช่นนั้น ในหนังสือแนะนำอัลกอริทึมโดย CLRSฉันอ่านเหตุผลต่อไปนี้: การค้นหาความกว้างครั้งแรกนั้นตั้งชื่ออย่างมากเพราะจะเป็นการขยายขอบเขตระหว่างจุดยอดที่ค้นพบและจุดที่ยังไม่ถูกค้นพบอย่างสม่ำเสมอทั่วทั้งความกว้างของแนวชายแดน อย่างไรก็ตามฉันไม่สามารถเข้าใจความหมายของข้อความนี้ได้ ฉันสับสนเกี่ยวกับคำนี้ "ชายแดน" และความกว้างของชายแดนนั้น ดังนั้นบางคนได้โปรดตอบคำถามนี้ในวิธีที่ง่ายต่อการเข้าใจสำหรับผู้เริ่มต้นเช่นฉัน

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

3
ทำความเข้าใจเกี่ยวกับอัลกอริทึมสำหรับปัญหาปั้มน้ำมัน
ในปัญหาปั้มน้ำมันเราได้รับเมืองnnnเมือง{0,…,n−1}{0,…,n−1}\{ 0, \ldots, n-1 \}และถนนระหว่างทั้งสอง ถนนแต่ละสายมีความยาวและแต่ละเมืองกำหนดราคาน้ำมัน ถนนหนึ่งหน่วยมีราคาน้ำมันหนึ่งหน่วย เป้าหมายของเราคือไปจากแหล่งต้นทางไปยังปลายทางด้วยวิธีที่ถูกที่สุด รถถังของเราถูก จำกัด ด้วยค่าบางอย่าง ฉันพยายามเข้าใจอัลกอริธึมดังนั้นฉันจึงจดขั้นตอนเพื่อคำนวณวิธีแก้ปัญหาด้วยตนเอง น่าเสียดายที่ฉันติดอยู่ - ในบางจุดไม่มีขอบที่ต้องพิจารณาฉันไม่รู้ว่าทำไม ตัวอย่าง: ถนน: 0 ----------- 1 ------------ 2 -------------- 3 (ไม่ได้ ต้องง่ายขนาดนั้นมันอาจเป็นกราฟใดก็ได้เช่นอาจมีถนนระหว่าง 0-> 2, 0-> 3, 1-> 3 เป็นต้น) ที่มา: 0, ปลายทาง: 3, รถถัง: 10 หน่วย ราคาน้ำมัน: 0 : 10 หน่วย, 1 : 10 หน่วย, 2 …

1
นี่คือ NP-hard หรือไม่ ฉันไม่สามารถพิสูจน์ได้
ฉันมีปัญหาและฉันเดาว่า NP-hard แต่ฉันไม่สามารถพิสูจน์ได้ นี่คือกราฟเลเยอร์โดยที่เลเยอร์ 0 คือเลเยอร์ hignest และเลเยอร์ L ต่ำที่สุด มีขอบชี้นำระหว่างเลเยอร์โดยที่ขอบ (A, B) บ่งชี้ว่าโหนด A สามารถ [ครอบคลุม] โหนด B และเมื่อ A สามารถครอบคลุม B ทุกโหนดบนเส้นทางใด ๆ จาก A ถึง B สามารถครอบคลุม B, B สามารถครอบคลุม ตัวเอง ในที่สุดก็มาถึงชุดของโหนด S ฉันต้องเลือกอีกชุดของโหนด ANS และให้แน่ใจว่าสำหรับแต่ละโหนด q ใน S มีโหนด p ใน ANS และ p ครอบคลุม q …
11 graphs  np 

1
ความยาวเฉลี่ยของเส้นทาง st (ง่าย) ในกราฟกำกับ
เนื่องจากข้อเท็จจริงที่ว่าการแจกแจงเส้นทาง - tเป็นปัญหา # P-complete จะมีวิธีที่มีประสิทธิภาพที่คำนวณ (หรืออย่างน้อยประมาณ) ความยาวเฉลี่ยของเส้นทางs - tโดยไม่ต้องแจกแจงได้หรือไม่ ถ้าเส้นทางได้รับอนุญาตให้กลับไปที่จุดยอดsssเสื้อเสื้อtsssเสื้อเสื้อt ผลลัพธ์ที่เกี่ยวข้องในกราฟพิเศษอาจมีประโยชน์เช่นกัน

1
กำกับการค้นหายูเนี่ยน
พิจารณากราฟกำกับGGGที่หนึ่งสามารถเพิ่มขอบแบบไดนามิกและทำแบบสอบถามเฉพาะบางอย่าง ตัวอย่าง: ฟอเรสต์ disjoint-set พิจารณาชุดคำถามต่อไปนี้: arrow(u, v) equiv(u, v) find(u) คนแรกที่จะเพิ่มลูกศรจากกราฟที่สองตัดสินใจถ้ามึง↔ *วีคนสุดท้ายพบตัวแทนที่ยอมรับของชั้นสมมูลของ↔ * , เช่นR ( U )ดังกล่าวว่ายู↔ *วีหมายถึงR ( V ) = R ( U )u→vu→vu→vu↔∗vu↔∗vu↔^*v↔∗↔∗↔^*r(u)r(u)r(u)u↔∗vu↔∗vu↔^*vr(v)=r(u)r(v)=r(u)r(v)=r(u) มีความเป็นอัลกอริทึมที่รู้จักกันดีโดยใช้โครงสร้างข้อมูลป่าเคล็ดชุดดำเนินการคำสั่งเหล่านี้ในกึ่งคงตัดจำหน่ายซับซ้อนคือ(n)) หมายเหตุว่าในกรณีนี้จะดำเนินการใช้O(α(n))O(α(n))O(α(n))equivfind ตัวแปรที่ซับซ้อนมากขึ้น ตอนนี้ฉันสนใจปัญหาที่ซับซ้อนยิ่งขึ้นซึ่งทิศทางสำคัญ: arrow(u, v) confl(u, v) find(u) คนแรกที่จะเพิ่มลูกศรวินาทีตัดสินใจถ้ามีโหนดสามารถเข้าถึงได้จากทั้งและคือ←วี อันสุดท้ายควรส่งคืนออบเจคต์เช่นที่หมายถึงโดยที่ควรคำนวณได้ง่าย (เพื่อที่จะพูดคำนวณ) เป้าหมายคือการหาโครงสร้างข้อมูลที่ดีเพื่อให้การดำเนินการเหล่านี้รวดเร็วu→vu→vu→vwwwuuuvvvu→∗←∗vu→∗←∗vu→^*←^*vr(u)r(u)r(u)u→∗←∗vu→∗←∗vu→^*←^*vr(u)∙r(v)r(u)∙r(v)r(u) \bullet r(v)∙∙\bulletconfl รอบ กราฟสามารถมีรอบ ฉันไม่ทราบว่ามีวิธีในการคำนวณส่วนประกอบที่เชื่อมต่ออย่างมีประสิทธิภาพและเพิ่มขึ้นหรือไม่เพื่อพิจารณา DAG สำหรับปัญหาหลักเท่านั้น แน่นอนฉันจะขอบคุณวิธีแก้ปัญหาสำหรับ DAG ด้วย …

1
กราฟที่ทำให้ DFS และ BFS ประมวลผลโหนดตามลำดับที่แน่นอน
สำหรับกราฟบางอันกระบวนการอัลกอริทึมการค้นหา DFS และ BFS ในลำดับเดียวกันโดยมีเงื่อนไขว่าพวกเขาทั้งคู่เริ่มต้นที่โหนดเดียวกัน สองตัวอย่างคือกราฟที่เป็นเส้นทางและกราฟที่มีรูปร่างเป็นรูปดาว (ต้นไม้ที่มีความลึกพร้อมจำนวนลูกโดยพลการ) มีวิธีในการจัดหมวดหมู่กราฟที่ตอบสนองคุณสมบัตินี้หรือไม่?111

1
การแยกประเภทการปรับแต่ง
ที่ทำงานฉันได้รับมอบหมายให้อนุมานข้อมูลบางประเภทเกี่ยวกับภาษาแบบไดนามิก ฉันเขียนลำดับของข้อความไปยังletนิพจน์ที่ซ้อนกันเช่น: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } เนื่องจากฉันเริ่มต้นจากข้อมูลประเภททั่วไปและพยายามอนุมานประเภทที่เฉพาะเจาะจงมากขึ้นตัวเลือกที่เป็นธรรมชาติคือประเภทการปรับแต่ง ตัวอย่างเช่นตัวดำเนินการตามเงื่อนไขส่งคืนการรวมของประเภทของสาขาที่เป็นจริงและเท็จ …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

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

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

2
ทำไม DFS ถึงถูกพิจารณาให้มี
ตามบันทึกเหล่านี้ , DFSถือว่ามีความซับซ้อนของพื้นที่ที่เป็นปัจจัยที่แผ่กิ่งก้านของต้นไม้และมีความยาวสูงสุดของเส้นทางใด ๆ ในพื้นที่รัฐO ( b m )O(ขม.)O(bm)ขขbม.ม.m เป็นเหมือนกันกล่าวว่าในเรื่องนี้หน้าวิกิตำราบนไม่รู้ค้นหา ตอนนี้ "กล่องข้อมูล" ของบทความ Wikipedia บน DFSนำเสนอต่อไปนี้สำหรับความซับซ้อนของพื้นที่ของอัลกอริทึม: O ( | V| )O(|V|)O(|V|)หากกราฟทั้งหมดถูกสำรวจโดยไม่มีการทำซ้ำค้นหาความยาวพา ธ ที่ยาวที่สุดสำหรับกราฟโดยนัยโดยไม่ต้องกำจัดโหนดซ้ำโอ(O(O())) ซึ่งคล้ายกับสิ่งที่ฉันคิดว่ามีความซับซ้อนของพื้นที่ของ DFS เช่นโดยที่คือความยาวสูงสุดที่อัลกอริธึมถึงO ( m )O(ม.)O(m)ม.ม.m เหตุใดฉันจึงคิดว่าเป็นเช่นนี้ โดยพื้นฐานแล้วเราไม่จำเป็นต้องเก็บโหนดอื่น ๆ นอกเหนือจากโหนดของเส้นทางที่เรากำลังดูอยู่ในขณะนี้ดังนั้นจึงไม่มีประเด็นการคูณด้วยในการวิเคราะห์ที่จัดทำโดย Wikibook และบันทึกที่ฉันเรียกคุณ ถึง.ขขb ยิ่งไปกว่านั้นจากบทความนี้เกี่ยวกับIDA *โดยRichard Korfความซับซ้อนของพื้นที่ของ DFS คือโดยที่ถูกพิจารณาว่าเป็น "cutoff เชิงลึก"O ( d)O(d)O(d)ddd ดังนั้นความซับซ้อนของพื้นที่ที่ถูกต้องของ DFS คืออะไร? ฉันคิดว่ามันอาจขึ้นอยู่กับการนำไปใช้ดังนั้นฉันขอขอบคุณคำอธิบายเกี่ยวกับความซับซ้อนของพื้นที่สำหรับการนำไปปฏิบัติต่าง ๆ …

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