คำถามติดแท็ก ds.algorithms

คำถามเกี่ยวกับคำแนะนำที่กำหนดไว้อย่างดีสำหรับการทำงานให้สำเร็จและการวิเคราะห์ที่เกี่ยวข้องในแง่ของเวลา / หน่วยความจำ / ฯลฯ

1
สูตรบูลีนปรับสมดุลใน
ฉันกำลังมองหาการอ้างอิงเกี่ยวกับความซับซ้อนของปัญหาการปรับสมดุลสูตรบูลีน โดยเฉพาะอย่างยิ่ง, เป็นที่ทราบกันว่าสูตรบูลีนสามารถปรับสมดุลในหรือไม่?AC0AC0\mathsf{AC^0} มีหลักฐานที่เรียบง่ายของสูตรบูลีสมดุลอยู่ใน ?AC0AC0\mathsf{AC^0} โดย "ง่าย" ผมหมายถึงหลักฐานง่ายกว่าคนที่ผมกล่าวถึงข้างล่างนี้โดยเฉพาะอย่างยิ่งฉันกำลังมองหาหลักฐานที่ไม่ได้ขึ้นอยู่กับการประเมินผลการบูลีนสูตรเป็นอยู่ใน1}NC1NC1\mathsf{NC^1} พื้นหลัง ที่นี่ทุกชั้นเรียนที่ซับซ้อนกล่าวถึงเป็นคนที่เหมือนกัน BFB (บูลีนสูตรสมดุล): กำหนดสูตรบูลีน , ค้นหาเทียบเท่าสูตรบูลีนที่สมดุลφφ\varphi ฉันสนใจความซับซ้อนของปัญหานี้โดยเฉพาะการพิสูจน์อย่างง่าย ๆ ที่แสดงปัญหาอยู่ใน (หรือแม้แต่หรือ ) ร่วมกันสร้างความสมดุลระหว่างการขัดแย้งเช่นผู้ที่อยู่บนพื้นฐานของแทรก Spira ฯ กำหนดซ้ำปรับเปลี่ยนโครงสร้างต้นไม้สูตรซึ่งดูเหมือนจะเพียง แต่ให้2}AC0AC0\mathsf{AC^0}TC0TC0\mathsf{TC^0}NC1NC1\mathsf{NC^1}BFB∈NC2BFB∈NC2BFB \in \mathsf{NC^2} ฉันมีหลักฐานสำหรับแต่หลักฐานไม่ง่ายและขึ้นอยู่กับหลักฐานของ1}BFB∈AC0BFB∈AC0BFB \in \mathsf{AC^0}BFE∈NC1BFE∈NC1BFE \in \mathsf{NC^1} BFE (การประเมินผลสูตรบูลีน) ได้รับการบูลีนสูตรและการกำหนดความจริงของตัวแปรใน , ไม่ Satisfy ( )?φφ\varphiττ\tauφφ\varphiττ\tauφφ\varphiτ⊨φτ⊨φ\tau \vDash \varphi มันเป็นที่รู้จักจากผลที่มีชื่อเสียงโด่งดังแซมบัสที่บูลีนสูตรการประเมินผล ( ) สามารถคำนวณได้ใน (ดู[Buss87]และ[BCGR92] )BFEBFEBFENC1=ALogTimeNC1=ALogTime\mathsf{NC^1} = \mathsf{ALogTime} …

1
อัลกอริทึมที่รู้จักเร็วที่สุดสำหรับการคำนวณ nullspace ของเมทริกซ์คืออะไร
ฉันรู้ว่าการกำจัดแบบเกาส์ใช้การดำเนินการทางคณิตศาสตร์แต่ฉันไม่แน่ใจว่ามีอัลกอริทึมใดที่ดีกว่านี้O(n3)O(n3)O(n^3)

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

2
ชุดย่อย
แก้ไขkสำหรับการใด ๆ ขนาดใหญ่พอที่เราต้องการที่จะติดป้ายย่อยทั้งหมดของขนาดว่าโดยจำนวนเต็มบวกจาก\} เราต้องการให้การติดฉลากนี้เป็นไปตามคุณสมบัติต่อไปนี้: มีชุดของจำนวนเต็ม stk≥5k≥5k\ge5nnn{1..n}{1..n}\{1..n\}n/kn/kn/k{1...T}{1...T}\{1...T\}SSS ถ้าย่อยของขนาดไม่ตัด (เช่นสหภาพของชุดเหล่านี้ทุกรูปแบบชุด ) แล้วผลรวมของป้ายชื่อของพวกเขาอยู่ในSkkkn/kn/kn/k{1..n}{1..n}\{1..n\}SSS มิฉะนั้นผลรวมของป้ายชื่อของพวกเขาไม่ได้อยู่ในSSSS มีและการติดฉลาก stหรือไม่?k≥5k≥5k\ge5T⋅|S|=O(1.99n)T⋅|S|=O(1.99n)T\cdot|S|=O(1.99^n) ตัวอย่างเช่นสำหรับใด ๆเราสามารถติดป้ายเซ็ตย่อยด้วยวิธีต่อไปนี้ แต่ละชุดย่อยมีบิตในจำนวนของตน: บิตแรกเท่ากับ iff ชุดย่อยมีบิตที่สองเท่ากับ iff ชุดย่อยมีฯลฯ มันง่ายที่จะเห็นว่ามีเพียงองค์ประกอบเดียวkkkT=2nT=2nT=2^nnnn111111111222SSS2n−12n−12^n-1 1 แต่ที่นี่T⋅|S|=Θ(2n)T⋅|S|=Θ(2n)T\cdot|S|=\Theta(2^n) ) เราทำได้ดีกว่านี้ไหม

1
อัลกอริทึมบนกราฟแสดงโดยใช้ BDDs
การแทนค่าที่ง่ายที่สุดสำหรับกราฟใช้เมทริกซ์คำคุณศัพท์ / รายการซึ่งหมายความว่าแต่ละโหนดและขอบแสดงอย่างชัดเจน ความสำคัญของการเป็นตัวแทนโดยนัยสำหรับกราฟที่แสดงระเบียบที่แข็งแกร่งได้รับการยอมรับมานานแล้ว ตัวอย่างเช่น Galperin & Wigderson (1983), Papadimitriou & Yannakakis ( หมายเหตุเกี่ยวกับการเป็นตัวแทนของกราฟสั้น ๆ , 1986) สำรวจคำถามของกราฟที่มีเมทริกซ์ adjacency แทนด้วยสูตรบูลีนที่ตอบว่าใช่หรือไม่ (i, j) กำหนดแทนไบนารีของหมายเลขโหนด i และ j ภายใต้ข้อ จำกัด ที่น่าพึงพอใจบางประการเกี่ยวกับการลดปัญหา P-complete สำหรับกราฟที่ชัดเจนกลายเป็น PSPACE-complete สำหรับการแสดงนี้ปัญหา NP-complete กลายเป็น NEXPTIME-complete ฯลฯ วิธีธรรมชาติของกราฟปกติดังกล่าวคือการแสดงสูตรบูลีนโดยใช้ ROBDD; ความยากคือคลาสสิกอัลกอริธึมมีแนวโน้มที่จะแจกแจงโหนดทีละคนซึ่งต้องเสียค่าใช้จ่ายชี้แจงแทนเช่นนี้และจะต้องหลีกเลี่ยง มีการตีพิมพ์บทความเกี่ยวกับปัญหาคลาสสิกที่ได้รับการแก้ไขโดยใช้การแสดงเช่น Gentilini และคณะ (การคำนวณส่วนประกอบที่เชื่อมต่ออย่างยิ่งในจำนวนเชิงเส้นของสัญลักษณ์เชิงเส้น ), Woelfel ( การจัดเรียงทอพอโลยีเชิงสัญลักษณ์ด้วย OBDDs ) …

1
การสร้างกราฟของเส้นรอบวง
Let 3 ฉันต้องการสร้างกราฟอย่างง่ายGของ girth gเช่นว่าชุดของg-ุทุกๆรูปแบบเป็นขอบสองชั้นของG (นั่นคือทุก ๆ ขอบจะถูกแบ่งปันโดยสองg -erc) และเพื่อให้จุดตัดของสองg -107 เป็นจุดยอดขอบหรือว่างเปล่า กราฟที่สร้างขึ้นควรมีขนาดใหญ่โดยพลการก.≥ 3g≥3g\geq 3GGGก.ggก.ggGGGก.ggก.gg วิธีการของรุ่นควรมีแบบแผนบางอย่าง แต่ไม่ในความหมายเล็กน้อย ฉันต้องการได้กราฟที่ซับซ้อนพอสมควร ตัวอย่างเช่นลองนึกภาพกริดสี่เหลี่ยมในระนาบ ถ้าเราระบุด้านตรงข้ามของสี่เหลี่ยม bounding เราได้กราฟที่ตอบสนองทุกความต้องการดังกล่าวข้างต้นสำหรับกรัม= 4 ฉันจะทำให้กราฟนี้เป็นเรื่องง่ายn × mn×mn\times mก.= 4g=4g=4 มีวิธีการดังกล่าวหรือไม่? การอ้างอิงถึงปัญหาที่คล้ายคลึงกันใด ๆ ก็ชื่นชมเช่นกัน

1
อัลกอริธึมในการค้นหาจุดสุดยอดขั้นต่ำครอบคลุมบนกราฟแบบทวิภาคที่มีจุดยอดถ่วงน้ำหนักคืออะไร
ฉันรู้ว่าสำหรับกราฟ bipartite ที่ไม่มีน้ำหนักฉันสามารถหาจุดสุดยอดขั้นต่ำได้โดยการค้นหาการจับคู่สูงสุดและทำให้มันกลายเป็นจุดสุดยอดโดยใช้ทฤษฎีบทของKönig มีการแก้ไขอย่างใดอย่างหนึ่งที่สามารถใช้ถ้าโหนดมีน้ำหนัก?

1
ปัญหาการตัดสินใจของ Hamilton Decomposition
ให้เป็นกราฟที่ไม่มีทิศทาง การสลายตัวของVในชุดย่อย disjoint V iเรียกว่าการสลายตัวของHamiltonของGหากกราฟย่อยที่เกิดจากแต่ละชุดV iเป็นกราฟแฮมิลตันหรือประกอบด้วยขอบเดียวด้วย| V i | = 2G=(V,E)G=(V,E)G=(V,E)VVVViViV_iGGGViViV_i|Vi|=2|Vi|=2|V_i|=2 ตัวอย่าง : กราฟสองฝ่ายที่สมบูรณ์มีการสลายตัวของแฮมิลตันถ้าหากm = nเท่านั้นKm,nKm,nK_{m,n}m=nm=nm=n ฉันกำลังมองหาอัลกอริทึมที่ตัดสินใจว่ากราฟที่กำหนดมีการสลายตัวของแฮมิลตันหรือไม่ ปัญหาการตัดสินใจนี้ทำให้ NP สมบูรณ์หรือไม่ ถ้าไม่เราจะพบการย่อยสลายเช่นนี้ได้อย่างไร หมายเหตุ : ในวรรณคดีการสลายตัวของแฮมิลตันมักจะหมายถึงการสลายตัวของขอบของGเช่นว่ากราฟย่อยที่เหนี่ยวนำคือแฮมิลตัน ในทางตรงกันข้ามฉันมีความสนใจในการสลายตัวของจุดยอดEEEGGG

1
กำหนดจำนวนขั้นต่ำของการชั่งน้ำหนักเหรียญ
ในบทความปัญหาสองประการของทฤษฎีสารสนเทศ ErdõsและRényiให้ขอบเขตที่ต่ำกว่าในการชั่งน้ำหนักขั้นต่ำที่เราต้องทำเพื่อกำหนดจำนวนเหรียญปลอมในชุดของเหรียญเหรียญnnn เป็นทางการมากขึ้น: เหรียญปลอมมีน้ำหนักน้อยกว่าเหรียญที่ถูกต้อง จะรู้ว่าน้ำหนักและทั้งเหรียญถูกและเหรียญปลอม เครื่องชั่งจะได้รับโดยวิธีการใด ๆ ที่จำนวนเหรียญสามารถชั่งน้ำหนักด้วยกัน ดังนั้นหากเราเลือกส่วนย่อยของเหรียญและนำมารวมกันบนเครื่องชั่งเครื่องชั่งก็จะแสดงน้ำหนักรวมของเหรียญเหล่านี้ซึ่งทำให้ง่ายต่อการคำนวณจำนวนเหรียญปลอมในหมู่ผู้ชั่งน้ำหนัก คำถามคือจำนวนน้อยที่สุดคืออะไรของการชั่งน้ำหนักโดยวิธีการแยกเหรียญที่ถูกและผิดออก?aaab &lt; aข&lt;ab < a≤ n≤n\leq nA ( n )A(n)A(n) ขอบเขตล่างที่ไม่สำคัญที่พวกเขาให้ไว้ในตอนแรกคือ: n / บันทึก2( n + 1 )n/เข้าสู่ระบบ2⁡(n+1)n / \log_2 (n + 1)1) นี่ไม่ใช่เรื่องยากที่จะดูว่าทำไมผ่านข้อโต้แย้งข้อมูล - ทฤษฎีหรือ combinatorial ปัญหาคือวิธีการสร้างชุดดังกล่าวเพื่อทำการชั่งน้ำหนักเหล่านี้? มีอัลกอริทึมที่ใช้การพิสูจน์เชิงสร้างสรรค์เพื่อให้บรรลุขอบเขตที่ต่ำกว่านี้โดยไม่ต้องอาศัยการสุ่ม มีอัลกอริทึมแบบสุ่มที่บรรลุขอบเขตเหล่านี้หรือไม่?

4
สามารถใช้ต้นไม้ต่อท้ายเพื่อค้นหาสตริงย่อยทั่วไปได้หรือไม่?
ฉันพยายามใช้ต้นไม้ต่อท้ายเพื่อเปรียบเทียบลำดับของสตริง ฉันได้พบการใช้งาน / ทฤษฎีสำหรับปัญหาสตริงย่อยทั่วไปที่ยาวที่สุดโดยใช้ต้นไม้ต่อท้าย อย่างไรก็ตามสิ่งที่ฉันกำลังมองหาคือการอภิปรายปัญหาที่เกี่ยวข้อง - "สตริงย่อยทั่วไป" โดยเฉพาะฉันมีปัญหาที่ฉันต้องการค้นหาสตริงย่อยทั่วไปที่ยาวที่สุดก่อนจากนั้นค้นหาสตริงย่อยทั่วไปที่ยาวที่สุดถัดไปที่ไม่รวมดัชนี lcs ที่พบแล้วและจนถึงความยาวต่ำสุด ปัญหานี้แก้ไขได้หรือไม่โดยการสร้างทรีต่อท้าย Generalized (GST) เพียงครั้งเดียวสำหรับสองซีเควนซ์ ฉันรู้ว่ามันสามารถแก้ไขได้โดยการสร้าง GST ซ้ำหลายครั้งหลังจากการค้นหาและการถอด LCS ซ้ำทุกครั้ง แต่ฉันสงสัยว่าถ้าฉันขาดเล่ห์เหลี่ยมเรียบร้อยซึ่งใน GST ถูกสร้างขึ้นเพียงครั้งเดียว

2
วงจรขนาดกึ่งโพลิโนเมียลสำหรับ 3-SAT trivial หรือไม่?
สมมติว่าเราพิจารณา 3-SAT พร้อมกับตัวแปรและc ส่วนคำสั่ง ฉันกำลังค้นคว้าวิธีที่ดูเหมือนจะใช้เวลา / พื้นที่O ( v 2 + บันทึกc )เพื่อแก้ปัญหา SAT ที่เหมาะสมกับคำอธิบายนี้ภายในข้อผิดพลาดที่สามารถปรับได้ตามจำนวนที่กำหนด อย่างไรก็ตามมีการจับเป็นvvvcccO(v2+logc)O(v2+log⁡c)O(v^{2+\log c}) วิธีนี้ต้องใช้ชุดของค่าที่คำนวณล่วงหน้าซึ่งสามารถแก้ไขปัญหา 3-SAT ตามอำเภอใจได้พอดีกับคำอธิบายข้างต้น ค่า Precomputed เป็นชุดของขนาดกับแต่ละสละค่าO ( 1 )พื้นที่ ปัญหาที่แท้จริงคือแต่ละค่าเหล่านี้อาจใช้เวลาO ( 2 v )ในการคำนวณ มีโอกาสที่ฉันสามารถหาวิธีเพิ่มความเร็วในการคำนวณเหล่านี้ได้O(v2+logc)O(v2+log⁡c)O(v^{2+\log c})O(1)O(1)O(1)O(2v)O(2v)O(2^v) ฉันคิดว่าขอบเขตตัวเองชนะขอบเขตบนที่นำเสนอในคำถามนี้ (สำหรับขนาดเล็ก) ดังนั้นฉันสงสัยว่ามีวิธีที่ไม่สำคัญที่จะไปถึงขอบเขตด้านบนที่ฉันอธิบายถ้าเราอนุญาตให้มีprecomputations O ( v 2 + log c )หรือไม่cccO(v2+logc)O(v2+log⁡c)O(v^{2+\log c}) ฉันต้องการดำเนินการวิจัยนี้ต่อไปและหวังว่าจะเผยแพร่ผลลัพธ์ของฉันหากทุกอย่างเป็นไปได้ แต่ก่อนอื่นฉันอยากจะรู้ว่ามีวิธีการทำสิ่งเล็กน้อยหรือดีกว่า UPDATE ฉันได้ศึกษาปัญหาที่เกี่ยวข้องเพิ่มเติมจากการค้นคว้าอัลกอริทึมนี้ ฉันถามคำถามนี้ในเว็บไซต์ …

1
อัลกอริทึมที่รู้จักกันเร็วที่สุดสำหรับการค้นหาเส้นทางง่ายๆผ่านชุดจุดยอด
สำหรับกราฟที่ไม่มีทิศทาง GGG และชุดที่กำหนด SSS ของจุดยอดสิ่งที่เป็นอัลกอริทึมที่เร็วที่สุดที่รู้จัก asymptotically สำหรับการค้นหาเส้นทางที่เรียบง่ายที่มีองค์ประกอบทั้งหมดของ SSS. ถ้าเราต้องการเส้นทางที่สั้นที่สุด

1
การค้นหาเส้นทางจุดสุดยอด - จุดแยกไม่รวมกับแหล่งข้อมูลทั่วไปบนกราฟระนาบ
ได้รับกราฟไม่ได้ชั่งภาพถ่ายและคอลเลกชันของคู่จุดสุดยอด ( k ≥ 2เป็นค่าคงที่) ค้นหาkยอด-เคล็ด (ยกเว้นแหล่งที่มา) เส้นทางจากsไปทีฉันเช่นนั้นลดความยาวของเส้นทางที่ยาวที่สุด( s , t1) , … , ( s , tk)(s,t1),…,(s,tk)(s,t_1),\dots,(s,t_k)k ≥ 2k≥2k\ge2kkksssเสื้อผมtit_i คำถาม:มีอัลกอริธึมเวลาพหุนามสำหรับปัญหาหรือไม่ ผลลัพธ์ที่เกี่ยวข้องบางส่วน: ถ้าไม่ได้รับการแก้ไขปัญหาคือปัญหาNP-hardแม้ว่าt 1 = ⋯ = t k ;kkkเสื้อ1= ⋯ = tkt1=⋯=tkt_1=\dots=t_k ถ้ากราฟป้อนข้อมูลมีน้ำหนักและแหล่งที่มาของเส้นทางไม่ตรงกันเช่นเส้นทางคือปัญหาคือปัญหาNP-hardแม้สำหรับk = 2 ;( s1, t1) , … , ( sk, tk)(s1,t1),…,(sk,tk)(s_1,t_1),\dots,(s_k,t_k)k = 2k=2k=2 ปัญหาที่มีวัตถุประสงค์แตกต่างกันคือลดผลรวมของความยาวเส้นทางคือ แก้ไขได้ด้วยอัลกอริธึมการไหลของต้นทุนต่ำสุดสำหรับแหล่งที่ตรงกัน NP-ยากสำหรับแหล่งที่มาประจวบไม่ใช่ทั่วไป …

1
การเชื่อมต่อเซลล์ด้วยการเรียงลำดับคอลัมน์และเส้นในตาราง จำกัด
ฉันต้องการทราบว่ามีการศึกษาปัญหาง่าย ๆ ดังต่อไปนี้มาก่อนหรือไม่ ให้ G เป็นกริดที่ จำกัด (MxN) เป็นเซตย่อยของเซลล์ของ G ("crumbs") เศษเล็กเศษน้อยสองชิ้นถูกกล่าวว่าเชื่อมต่อกัน (ภายในเครื่อง) หากพิกัดของพวกเขาแตกต่างกันมากที่สุด (กล่าวคือถ้าวาดเป็นสี่เหลี่ยมพวกมันจะแบ่งมุมอย่างน้อยหนึ่งจุด) ตอนนี้เราสามารถลองเชื่อมต่อ crumbs (ชุดของมันโดยรวม) โดยการเรียงสับเปลี่ยนบรรทัดและคอลัมน์ของกริด กล่าวอีกนัยหนึ่งเป้าหมายคือการเกิดการเปลี่ยนแปลงของเส้นและการเรียงสับเปลี่ยนของคอลัมน์เพื่อให้เศษสองชิ้นใด ๆ ในตารางผลลัพธ์นั้นเชื่อมโยงกันด้วยห่วงโซ่ของเศษที่เชื่อมต่อ คำถาม: จะมีทางออกเสมอไหม? ฉันไม่ค่อยรู้วิธีการโจมตี สำหรับการขาดความคิดที่ดีกว่าฉันได้เขียนโปรแกรมดิบที่มองหาวิธีการแก้ปัญหาโดยกำลังดุร้าย (มันสร้างการเรียงสับเปลี่ยนแบบสุ่มและตรวจสอบว่าตารางผลลัพธ์มีการเชื่อมต่อ crumbs หรือไม่) โปรแกรมพบโซลูชั่นที่มีขนาดเล็กเสมอ (10x10 หรือ 7x14) กริดและกริดที่ใหญ่กว่านั้นชัดเจนว่าไม่สามารถเข้าถึงกลยุทธ์แบบง่าย ๆ ได้ (จะใช้เวลานานเกินกว่าจะสุ่มข้ามโซลูชัน) นี่คือตัวอย่างของตารางที่โปรแกรมแก้ไข: กริดเริ่มต้น (crumbs แสดงโดย X's, เซลล์ว่างเปล่าตามจุด): 0 1 2 3 4 5 6 …

1
ค้นหาสแปนเดอร์
มีอัลกอริธึมเวลาพหุนามในการค้นหา - ถ้ามี - แมงมุมที่ครอบคลุมของกราฟที่กำหนด ? แมงมุมเป็นต้นไม้ที่มีอย่างน้อยที่สุดหนึ่งโหนดที่มีระดับมากกว่า 2: ฉันรู้ว่าเงื่อนไขระดับต่างๆของG (โดยปกติคือขนาดของโหนดที่ใหญ่พอสมควร) รับประกันการมีอยู่ของแมงมุมที่ครอบคลุม แต่ฉันสงสัยว่ามีอัลกอริทึมสำหรับGโดยพลการหรือไม่ ขอบคุณ!GGG GGGGGG

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