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

อัลกอริทึมเป็นลำดับขั้นตอนที่กำหนดไว้อย่างดีซึ่งกำหนดวิธีแก้ปัญหาแบบนามธรรมให้กับปัญหา ใช้แท็กนี้เมื่อปัญหาของคุณเกี่ยวข้องกับการออกแบบและวิเคราะห์อัลกอริทึม

1
แพ้ในคอนเสิร์ต "ทิศทางเดียว"
คุณและเพื่อนสูญเสียกันและกันในคอนเสิร์ตและไม่แน่ใจว่าใครในอนาคตข้างหน้า อย่างเป็นทางการแต่ละคนอยู่ในพิกัดจำนวนเต็มบางส่วนและอาจเดินไปทางพิกัดที่สูงขึ้นหรืออยู่ในสถานที่ สมมติว่าคุณและเพื่อนของคุณกำลังติดตามอัลกอริทึมที่แน่นอน (และไม่คุณอาจไม่พูดว่า "if (name ==" R B ") ทำอะไร :)) และระยะทางเริ่มต้นระหว่างคุณสองคนคือ (ซึ่งไม่ใช่ รู้จักคุณ)xxx อัลกอริธึมที่ลดระยะทางเดินที่คาดไว้ให้น้อยที่สุดจนกว่าคุณและเพื่อนของคุณจะพบกันคืออะไร คุณอาจคิดว่าทั้งเพื่อนและตัวคุณเองกำลังเคลื่อนไหวด้วยความเร็วคงที่เท่ากัน อัลกอริธึมตัวอย่างง่าย ๆ จะเป็นดังนี้: ที่เวที (เริ่มต้นจาก0 ):nnn000 เดินขั้นตอนในการงาน wp ขวา13n3n3^nหรือรอเวลา3nหน่วยเป็นอย่างอื่น1212\frac{1}{2}3n3n3^n หากต้องการดูขั้นตอนวิธีการนี้จะทำให้เพื่อน ๆ พบกับความน่าจะเป็นที่ 1 พิจารณาสิ่งที่เกิดขึ้นในขั้นตอน ) แม้ว่าเพื่อนที่เป็นxก้าวไปข้างหน้าเสมอเดินและอื่น ๆ มักจะอยู่ในสถานที่ที่ระยะห่างระหว่างทั้งสองจะเป็น: x + 1 + 3 + 9 + ... + 3 บันทึก3 x = 2 …

2
วิธีการให้คะแนนฝ่ายตรงข้ามคอมพิวเตอร์ที่ต้องการความสมดุล
คำถามนี้เกี่ยวกับวิธีการที่คู่ต่อสู้ของคอมพิวเตอร์ที่ฉันสร้างขึ้นและกำลังถูกใช้อยู่หรือกำลังวางแผนที่จะใช้ในเกมคอมพิวเตอร์หลายเกม พื้นหลัง เมื่อปีที่แล้วเมื่อพยายามปรับปรุงฝ่ายตรงข้ามคอมพิวเตอร์สำหรับเกมที่เรียกว่า "Minesweeper Flags" (คำอธิบายสั้น ๆ : Minesweeper เวอร์ชันที่มีผู้เล่นหลายคนแบบเลี้ยวตามที่คุณต้องใช้เวลามากกว่าเหมืองของฝ่ายตรงข้าม)ฉันเปลี่ยนวิธีการทำงานของอัลกอริทึม . แทนที่จะใช้วิธีเช่น if-else-if-else ฉันใช้ชุดของ "ผู้ทำสกอร์" ที่มีน้ำหนักที่ระบุเพื่อกำหนดว่าการเคลื่อนไหวที่ดีที่สุดคืออะไร คุณอาจคิดว่าสำหรับเกมอย่าง Minesweeper Flags เป็นเพียงการเคลื่อนที่ที่ให้โอกาสในการขุด แต่มันไม่ง่ายอย่างนั้น การย้ายที่คอมพิวเตอร์จะทำมักขึ้นอยู่กับฟีเจอร์ต่าง ๆ สำหรับการย้ายเฉพาะในสถานะเกมปัจจุบัน ตัวอย่างของคุณสมบัติ: ความน่าจะเป็นของการเคลื่อนไหวนี้ให้คะแนนเหมืองคืออะไร? ความน่าจะเป็นที่จะเปิดเผยสิ่งใด ๆ กับคู่ต่อสู้ของฉันที่นี่คืออะไร คำอธิบายของระบบ ระบบทำงานโดยทั่วไปดังนี้: "ผู้ทำประตูก่อน": ทำการวิเคราะห์ล่วงหน้าบางอย่างสำหรับสถานะเกมปัจจุบัน (ในแง่ของ Minesweeper Flags นี่เป็นปกติ: การคำนวณความน่าจะเป็นทั้งหมด) "Scorers": ชุดของผู้ทำประตูธรรมดาจะถูกถามเพื่อกำหนดคะแนนสำหรับการเคลื่อนไหวที่เป็นไปได้แต่ละครั้งผู้ทำคะแนนแต่ละคนจะใช้คะแนนตามเกณฑ์ของตัวเอง ผู้ทำคะแนนสามารถตรวจสอบผลลัพธ์ของการวิเคราะห์ล่วงหน้าที่ทำ คะแนนที่คำนวณในขั้นตอนข้างต้นจะถูกนำมารวมเข้าด้วยกันและกำหนดให้เป็นคะแนนสำหรับการย้าย การเคลื่อนไหวจะถูกจัดเรียงตามคะแนนของพวกเขาและจัดอันดับเพื่อให้การเคลื่อนไหวทั้งหมดที่มีคะแนนเดียวกันได้รับอันดับเดียวกัน "Post-scorers": ผลลัพธ์ของข้างต้นสามารถส่งไปยัง "Post-scorers" ที่มีความเป็นไปได้ที่จะแก้ไขคะแนนของฟิลด์ใด ๆ ในแบบที่พวกเขาต้องการตามกฎของโพสต์ - …

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

2
มีวิธีแก้ปัญหาที่เร็วกว่าสำหรับปัญหา Great Wall Jam ของ Google Code หรือไม่
ลองพิจารณาคำถามรอบรหัส 1C ของ Google Jamต่อไปนี้: กำแพงเมืองจีนเริ่มออกเป็นสายที่ไม่มีที่สิ้นสุดที่ความสูงในสถานที่ทั้งหมดเป็น0000 ชนเผ่าจำนวนหนึ่ง ,จะโจมตีกำแพงตามพารามิเตอร์ต่อไปนี้ - วันเริ่มต้น, , กำลังเริ่มต้น , พิกัดทิศตะวันตกเริ่มต้น,และพิกัดทิศตะวันออกเริ่มต้น, . นี้การโจมตีครั้งแรกเกิดขึ้นในวันในช่วงที่แข็งแรงSหากมีส่วนใดของกำแพงภายในที่มีส่วนสูงการโจมตีจะสำเร็จและในตอนท้ายของวันกำแพงจะถูกสร้างขึ้นเพื่อให้ส่วนใดส่วนหนึ่งของมันภายในของความสูงนั้นจะอยู่ที่ความสูงยังไม่มีข้อความยังไม่มีข้อความNยังไม่มีข้อความ≤ 1,000ยังไม่มีข้อความ≤1000N \le 1000DDDSSSWWWD [ W , E ] S [ W , E ] &lt; S [ W , E ] &lt; S SEEEDDD[ ว, E][W,E][W,E]SSS[W,E][W,E][W,E]&lt;S&lt;S< S[W,E][W,E][W,E]&lt;S&lt;S< SSSS (หรือมากกว่านั้นหากการโจมตีอื่น ๆ ในวันนั้นโจมตีกลุ่มเดียวกันด้วยความแข็งแกร่ง )S′&gt;SS′&gt;SS' > S …

1
การแปลงฝาปิดโดยพลการให้เป็นฝาครอบจุดสุดยอด
ป.ร. ให้ไว้เป็นภาพถ่ายกราฟและปล่อยแสดงฝังในเครื่องบินเซนต์ขอบแต่ละมีความยาว1นอกจากนี้ฉันมีชุดของจุดที่แต่ละจุดที่มีอยู่ใน{G} นอกจากนี้ยังถือสำหรับจุดใด ๆในว่ามีอยู่กับระยะทางที่จะเนื้อที่ที่หนึ่งมากที่สุด (ระยะทางวัดเป็นระยะทางที่สั้นที่สุดภายใน )G=(V,E)G=(V,E)G=(V,E)GG\mathcal{G}111CCCc∈Cc∈Cc \in CGG\mathcal{G}pppGG\mathcal{G}c∈Cc∈Cc \in CpppGG\mathcal{G} ฉันต้องการโต้แย้งว่าเนื่องจากที่มีเงื่อนไขข้างต้นเก็บไว้ฉันสามารถแปลงให้เป็นจุดสุดยอดหรือทำให้แตกต่างแปลงเป็นของ cardinality เดียวกันกับCCCC′C′C'c∈C′c∈C′c \in C'ถูกวางใน ที่ จุดสุดยอดของGและC 'ยังคงครอบคลุมGGG\mathcal{G}GGGC′C′C'GGG แนวทางของฉันคือปรับขอบและเลื่อนจุดในที่จุดสุดยอดของส่วนโค้ง แต่จนถึงขณะนี้ผมไม่ได้หาทิศทางที่ถูกต้องที่ทำให้C 'จากCCCCC′C′C'CCC มีใครมีความคิดบ้างไหม?

2
สีต้นไม้ไบนารีให้เป็นต้นไม้สีแดงดำ
คำถามสัมภาษณ์ที่พบบ่อยคือการให้อัลกอริทึมเพื่อตรวจสอบว่าต้นไม้ไบนารีที่กำหนดมีความสูงสมดุล (นิยามของต้นไม้ AVL) ฉันสงสัยว่าถ้าเราสามารถทำอะไรที่คล้ายกับต้นไม้สีแดงดำ ได้รับไบนารีต้นไม้ที่ไม่มีการสุ่มสี (พร้อม NULL nodes) มีอัลกอริทึม "เร็ว" ซึ่งสามารถกำหนดได้ว่าเราสามารถทำสี (และค้นหาการระบายสี) โหนดแดง / ดำเพื่อให้พวกเขาตอบสนองคุณสมบัติทั้งหมดของต้นไม้สีแดง - ดำ (คำจำกัดความในคำถามนี้)? ความคิดเริ่มแรกคือเราสามารถเอาโหนด NULL ออกและลองตรวจสอบซ้ำ ๆ ว่าต้นไม้ที่เกิดขึ้นนั้นสามารถเป็นต้นไม้สีแดงดำได้หรือไม่ แต่ดูเหมือนจะไม่ไปไหนเลย ฉันทำเว็บ (สั้น ๆ ) เพื่อค้นหาเอกสาร แต่ดูเหมือนจะไม่พบสิ่งใดที่ดูเหมือนจะจัดการกับปัญหานี้ เป็นไปได้ว่าฉันขาดอะไรง่ายๆ

3
เพิ่มคีย์และคีย์ลดในไบนารีมินฮีป
ในการสนทนาจำนวนมากของไบนารีฮีปปกติจะมีการแสดงคีย์ลดลงเพียงคีย์ว่าเป็นการดำเนินการที่ได้รับการสนับสนุนสำหรับมินิฮีป ยกตัวอย่างเช่น CLR บทที่ 6.1 และหน้าวิกิพีเดียนี้ เหตุใดจึงไม่เพิ่มรหัสปกติสำหรับ min-heap ฉันคิดว่าเป็นไปได้ที่จะทำเช่นนั้นใน O (ความสูง) โดยการสลับองค์ประกอบที่เพิ่มขึ้น (x) ซ้ำ ๆ โดยใช้ลูกน้อยที่สุดจนกว่าจะไม่มีลูกใดของมันใหญ่กว่า x เช่น IncreaseKey(int pos, int newValue) { heap[pos] = newValue; while(left(pos) &lt; heap.Length) { int smallest = left(pos); if(heap[right(pos)] &lt; heap[left(pos)]) smallest = right(pos); if(heap[pos] &lt; heap[smallest]) { swap(smallest, pos); pos= smallest; } else …

1
กำลังแรงเดรัจฉาน Delaunay triangulation อัลกอริธึมที่ซับซ้อน
ในหนังสือ"เรขาคณิตการคำนวณ: อัลกอริธึมและการประยุกต์ใช้"โดย Mark de Berg และคณะมีอัลกอริทึมแรงเดรัจฉานที่ง่ายมากสำหรับการคำนวณสามเหลี่ยมเดอลูเนย์ อัลกอริทึมใช้ความคิดของขอบผิดกฎหมาย - ขอบที่อาจไม่ปรากฏในสมการ Delaunay ที่ถูกต้องและต้องถูกแทนที่ด้วยขอบอื่น ๆ ในแต่ละขั้นตอนอัลกอริทึมจะค้นหาขอบที่ผิดกฎหมายเหล่านี้และทำการกระจัดที่ต้องการ (เรียกว่าการพลิกขอบ ) จนกระทั่งไม่มีขอบที่ผิดกฎหมาย อัลกอริทึมการบีบอัดทางกฎหมาย ( TTT ) อินพุต บางสมTTTของจุดที่ตั้งPเอาท์พุต สมการทางกฎหมายของPPPP PPP ในขณะที่ มีขอบที่ผิดกฎหมายp i p j doTTTpipjpipjp_ip_j \quadให้และP ฉันพีเจพีลิตรเป็นรูปสามเหลี่ยมสองรูปที่อยู่ติดกับหน้าฉันพีเจpipjpkpipjpkp_i p_j p_kpipjplpipjplp_i p_j p_lpipjpipjp_ip_j \quadลบจากTและเพิ่มp k p lแทน ผลตอบแทน Tpipjpipjp_ip_jTTTpkplpkplp_kp_l TTT ฉันได้ยินมาว่าอัลกอริทึมนี้ทำงานในเวลาในกรณีที่แย่ที่สุด; อย่างไรก็ตามมันไม่ชัดเจนสำหรับฉันว่าข้อความนี้ถูกต้องหรือไม่ ถ้าใช่จะพิสูจน์ได้อย่างไรว่าขอบเขตบนนี้O(n2)O(n2)O(n^2)

1
ฉันจะทดสอบได้อย่างไรว่ารูปหลายเหลี่ยมนั้นมีโทนสีเดียวกับเส้นที่กำหนดเองหรือไม่?
คำที่เกี่ยวข้อง : รูปหลายเหลี่ยมในเครื่องบินที่เรียกว่า monotone ด้วยความเคารพเป็นเส้นตรงถ้าทุกมุมฉากเป็นแอลPPPLLLLLLตัดกับPPPมากที่สุดสองครั้ง ให้รูปหลายเหลี่ยมPPPเป็นไปได้ไหมที่จะตรวจสอบว่ามีเส้นใด ๆ หรือLLLไม่ที่รูปหลายเหลี่ยมPPPนั้นเป็นรูปหลายเหลี่ยมที่มีสีเดียวกับLLL ? ถ้าใช่เป็นอย่างไร ก่อนหน้านี้ผมถามคำถามที่เกี่ยวข้อง (ที่ผมถามวิธีการตรวจสอบถ้ารูปหลายเหลี่ยมเป็นเสียงเดียวที่เกี่ยวกับเส้นโดยเฉพาะ) แต่ตอนนี้ฉันสนใจในกรณีที่LLLจะไม่ได้กำหนดหรือระบุไว้ล่วงหน้า

1
อัลกอริธึม Polytime และ polyspace สำหรับกำหนดจุดเชื่อมต่อนำของฟังก์ชันโมโนสโทนิกแบบไม่ต่อเนื่อง
ผู้รายงานบางส่วน: ฉันเป็นนักวิทยาศาสตร์คอมพิวเตอร์ด้านสันทนาการและมีวิศวกรซอฟต์แวร์ ดังนั้นให้อภัยถ้าพรอมต์นี้ดูเหมือนว่าค่อนข้างออกจากสนาม - ฉันมักเล่นกับ simulcra ทางคณิตศาสตร์และปัญหาเปิดเมื่อฉันไม่มีอะไรจะทำดีกว่า ในขณะที่เล่นกับสมมติฐานของ Riemannฉันพบว่าช่องว่างที่สำคัญสามารถลดลงเป็นความสัมพันธ์ที่เกิดซ้ำตามการแยกของฟังก์ชันเสริมทั้งหมดเกิดขึ้นจากการทวีคูณของทวีคูณของจำนวนเฉพาะก่อนหน้านี้ (ผู้สังเกตการณ์กระตือรือร้นจะสังเกตว่าตะแกรงของ Eratosthenes ) หากสิ่งนี้ไม่สมเหตุสมผลสำหรับคุณไม่ต้องกังวล - มันยังอยู่ข้างหน้าn−1n−1n-1 เมื่อเห็นว่าฟังก์ชั่นเหล่านี้เกี่ยวข้องกันอย่างไรฉันตระหนักว่าอินสแตนซ์ถัดไปของนายกแต่ละคนสามารถลดลงถึงจุดตัดแรกของฟังก์ชั่นเหล่านี้ อย่างไรก็ตามฉันไม่สามารถระบุได้ว่าสิ่งนี้สามารถใช้งานได้ใน polytime และ polyspace หรือไม่ ดังนั้น: สิ่งที่ฉันกำลังมองหาคืออัลกอริธึมที่สามารถกำหนดจุดตัดแรกของฟังก์ชัน discrete (และถ้าใช้, monotonic) ในเวลาและพื้นที่พหุนาม หากไม่มีอัลกอริทึมดังกล่าวอยู่ในปัจจุบันหรือสามารถดำรงอยู่ได้การพิสูจน์แบบสั้น ๆ หรือการอ้างอิงที่ระบุว่าเพียงพอnnn สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คืออัลกอรึทึมการฉายภาพของ Dykstra (ใช่นั่นคือ RL Dykstra ไม่ใช่Edsger Dijkstra ) ซึ่งฉันเชื่อว่าจะช่วยลดปัญหาการเขียนโปรแกรมจำนวนเต็มดังนั้น NP-hard ในทำนองเดียวกันหากดำเนินการแยกชุดสกรรมกริยาของทุกจุดบังคับ (ตามที่พวกเขากำลังเข้าใจในปัจจุบันจะถูกล้อมรอบ) เรายังคงต้อง จำกัด ตัวเองไปยังพื้นที่ชี้แจงการกำเริบของเราเนื่องจากการที่อ่อนแอในปัจจุบันผูกพันของจำนวนเฉพาะ จริงใด ๆเมตร (และดังนั้นE nพื้นที่สำหรับแต่ละนายกn )ln(m)ln⁡(m)\ln(m)mmmenene^nnnn …

2
รันไทม์ของอัลกอริทึมการโลภ
|P|=n|P|=n|P| = nkkkkkknnnC={c1,c2,…,ck}C={c1,c2,…,ck}C = \{ c_1,c_2,\ldots,c_k\}kkkcost(C)=maximinjD(pi,cj)cost(C)=maximinjD(pi,cj)\text{cost}(C) = \max_i \min_j D(p_i, c_j)DDDหมายถึงระยะทางยุคลิดระหว่างจุดเชื่อมต่ออินพุตและเป็นจุดศูนย์c_jกำหนดแต่ละจุดตัวเองไปยังศูนย์คลัสเตอร์ที่อยู่ใกล้จุดการจัดกลุ่มลงในกลุ่มที่แตกต่างกันpipip_icjcjc_jkkk ปัญหานี้เป็นที่รู้จักกันในชื่อปัญหา (ไม่ต่อเนื่อง)และ -hard มันจะแสดงให้เห็นกับการลดลงจากที่ปัญหาที่สมบูรณ์มีอำนาจเหนือชุดว่าถ้ามีอยู่ -approximation อัลกอริทึมสำหรับปัญหากับแล้ว{}kkkNPNP\text{NP}NPNP\text{NP}ρρ\rhoρ&lt;2ρ&lt;2\rho < 2P=NPP=NP\text{P} = \text{NP} อัลกอริทึม -approximation ที่ดีที่สุดนั้นง่ายและใช้งานง่าย คนแรกเลือกจุดโดยพลการและวางไว้ในเซตของศูนย์คลัสเตอร์ จากนั้นหนึ่งจะเลือกศูนย์คลัสเตอร์ถัดไปซึ่งอยู่ไกลที่สุดจากศูนย์คลัสเตอร์อื่นทั้งหมด ดังนั้นในขณะที่เราซ้ำ ๆ หาจุดที่ระยะทางที่ขยายและเพิ่มเข้าไปในCครั้งเดียวเราเสร็จแล้ว222p∈Pp∈Pp \in PCCC|C|&lt;k|C|&lt;k|C| < kj∈Pj∈Pj \in PD(j,C)D(j,C)D(j,C)CCC|C|=k|C|=k|C| = k มันไม่ยากที่จะเห็นว่าดีที่สุดโลภขั้นตอนวิธีการทำงานในO(nk)O(nk)O(nk)เวลา นี่ทำให้เกิดคำถาม: เราสามารถบรรลุเวลาo(nk)o(nk)o(nk)หรือไม่ เราจะทำยังไงดี

2
วิธีการใช้อัลกอริทึม AO *
ฉันสังเกตเห็นว่ามีการใช้โครงสร้างข้อมูลที่แตกต่างกันเมื่อเราใช้อัลกอริทึมการค้นหา ตัวอย่างเช่นเราใช้คิวเพื่อดำเนินการค้นหาอย่างกว้างแรกวางซ้อนเพื่อใช้การค้นหาเชิงลึกครั้งแรกและ min-heaps เพื่อใช้อัลกอริทึม A *อัลกอริทึม ในกรณีเหล่านี้เราไม่จำเป็นต้องสร้างแผนผังการค้นหาอย่างชัดเจน แต่ฉันไม่สามารถหาโครงสร้างข้อมูลที่ง่ายต่อการจำลองขั้นตอนการค้นหาของAO * อัลกอริทึม ฉันอยากรู้ว่าการสร้างแผนผังการค้นหาเป็นวิธีเดียวที่จะใช้อัลกอริทึม AO * หรือไม่ ใครช่วยให้ฉันมีการใช้งานที่มีประสิทธิภาพ?

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

2
คำนวณ max-flow จาก min-cut
เรารู้ว่าการคำนวณการตอบสนองต่อการไหลสูงสุด การตัดเครือข่ายขั้นต่ำที่มีความสามารถเทียบเท่ากัน cf เลย สูงสุดไหลทฤษฎีบทนาทีตัด เรามีอัลกอริทึม (มีประสิทธิภาพมากกว่าหรือน้อยกว่า) สำหรับการคำนวณการไหลสูงสุดและการคำนวณการตัดต่ำสุดเนื่องจากการไหลสูงสุดนั้นไม่ยากหรือไม่แพงเลย แต่สิ่งที่ตรงกันข้าม เมื่อตัดน้อยที่สุดเราจะกำหนดกระแสสูงสุดได้อย่างไร โดยไม่ต้องแก้ไข Max-Flow ตั้งแต่เริ่มต้นแน่นอนและเร็วกว่านั้นเช่นกัน ความคิดบางอย่าง: จากการตัดขั้นต่ำเรารู้ค่าการไหลสูงสุด ฉันไม่เห็นว่าข้อมูลนี้ช่วยให้วิธีการมาตรฐานเพิ่มเส้นทางและ push-relabel ได้อย่างไรแม้ว่าการปรับตัวหลังดูเหมือนจะมีเหตุผลมากขึ้นเล็กน้อย เราไม่สามารถใช้การตัดต่ำสุดเพื่อแยกเครือข่ายออกเป็นสองส่วนและเรียกคืนเนื่องจากจะไม่ทำให้ปัญหาในกรณีเลวร้ายที่สุด (ถ้าพาร์ติชันหนึ่งเป็นแบบซิงเกิล) นอกจากนี้เราจะไม่ลดขั้นต่ำของอินสแตนซ์ขนาดเล็กลง การทราบคุณค่าของความเร็วการไหลสูงสุดที่แก้ไข Max-Flow LP อาจจะผ่านเงื่อนไขความหย่อนเสริมหรือไม่?

1
Quantum Computing - ความสัมพันธ์ระหว่างโมเดล Hamiltonian และ Unitary
เมื่อพัฒนาอัลกอริทึมในการคำนวณควอนตัมฉันสังเกตว่ามีสองโมเดลหลักที่ใช้ บางขั้นตอนวิธีการ - เช่นปัญหาต้นไม้มิล NAND (ฟาร์ฮี, Goldstone, Guttman) - การทำงานโดยการออกแบบมิลและบางรัฐเริ่มต้นแล้วปล่อยให้วิวัฒนาการระบบตามสมSchrödingerบางครั้งก่อนที่จะดำเนินการวัดเสื้อเสื้อt อัลกอริธึมอื่น ๆ - เช่นอัลกอริธึมของ Shor สำหรับแฟ็กเตอริง - ทำงานโดยการออกแบบลำดับของการแปลงแบบ Unitary (คล้ายกับประตู) และการใช้การแปลงเหล่านี้ทีละครั้งกับสถานะเริ่มต้นก่อนทำการวัด คำถามของฉันคือในฐานะผู้เริ่มต้นในการคำนวณควอนตัมความสัมพันธ์ระหว่างโมเดลแฮมิลโตเนียนกับโมเดลการแปลงรวมเป็นอย่างไร อัลกอริทึมบางอย่างเช่นปัญหาต้นไม้ NAND ได้รับการปรับให้ทำงานกับลำดับการแปลงรวม (Childs, Cleve, Jordan, Yonge-Mallo) อัลกอริทึมทุกตัวในโมเดลหนึ่งสามารถเปลี่ยนเป็นอัลกอริทึมที่ตรงกันในอีกโมเดลได้หรือไม่? ตัวอย่างเช่นกำหนดลำดับของการแปลงแบบ Unitary เพื่อแก้ปัญหาเฉพาะสามารถออกแบบ Hamiltonian และแก้ปัญหาในแบบจำลองนั้นได้หรือไม่? แล้วทิศทางอื่นล่ะ? ถ้าเป็นเช่นนั้นอะไรคือความสัมพันธ์ระหว่างเวลาที่ระบบต้องพัฒนาและจำนวนการแปลงรวม (ประตู) ที่จำเป็นในการแก้ปัญหา? ฉันได้พบปัญหาอื่น ๆ อีกมากมายซึ่งดูเหมือนว่าจะเป็นกรณีนี้ แต่ไม่มีข้อโต้แย้งหรือหลักฐานที่ชัดเจนที่จะบ่งบอกว่าสิ่งนี้เป็นไปได้เสมอหรือเป็นจริง อาจเป็นเพราะฉันไม่รู้ว่าปัญหานี้เรียกว่าอะไรฉันจึงไม่แน่ใจว่าจะค้นหาอะไร

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