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

ในการคำนวณและความซับซ้อนการค้นหาการแมประหว่างปัญหาที่ช่วยให้การแก้ปัญหาหนึ่งโดยใช้วิธีการแก้ปัญหาของอีกคนหนึ่ง สำหรับการลดลงของทฤษฎีภาษาโปรแกรม (เช่นการลดเบต้า) ดู [lambda-แคลคูลัส] หรือ [การเขียนคำซ้ำ]

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

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่าvoidเหมาะกับนิยามของประเภทที่ว่าง / ล่าง ไม่มีค่านิยมใด ๆ อยู่voidเท่าที่ฉันจะบอกได้ ฟังก์ชั่นที่มีประเภทคืนค่าเป็นโมฆะระบุว่าฟังก์ชั่นจะไม่ส่งคืนสิ่งใดดังนั้นจึงสามารถทำงานได้เพียงผลข้างเคียงเท่านั้น ตัวชี้ชนิดvoid*เป็นชนิดย่อยของชนิดตัวชี้อื่นทั้งหมด นอกจากนี้การแปลงไปยังและจากvoid*ใน C นั้นเป็นนัย ผมไม่แน่ใจว่าถ้าจุดสุดท้ายมีบุญใด ๆ ที่เป็นข้อโต้แย้งสำหรับvoidการเป็นประเภทที่ว่างเปล่าเป็นมากหรือน้อยเป็นกรณีพิเศษที่มีความสัมพันธ์ไม่มากที่จะvoid*void ในทางกลับกันvoidตัวมันเองไม่ใช่ประเภทย่อยของประเภทอื่นทั้งหมดซึ่งเท่าที่ฉันสามารถบอกได้ว่าเป็นข้อกำหนดสำหรับประเภทที่จะเป็นประเภทด้านล่าง
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

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

3
การสอน NP-ครบถ้วน - การทัวริงการลดลงเทียบกับการลดคาร์ป
ฉันสนใจในคำถามของวิธีที่ดีที่สุดในการสอนปัญหาความสมบูรณ์ของวิชาเอกวิทยาการคอมพิวเตอร์ โดยเฉพาะอย่างยิ่งเราควรสอนโดยใช้การลดคาร์ปหรือการใช้การลดทอนของทัวริง ฉันรู้สึกว่าแนวคิดของความสมบูรณ์แบบ NP และการลดลงเป็นสิ่งที่วิทยาศาสตร์คอมพิวเตอร์ทุกคนควรเรียนรู้ อย่างไรก็ตามเมื่อสอน NP-ครบถ้วนฉันได้สังเกตเห็นว่าการใช้ Karp Reduction มีข้อเสีย ก่อนอื่นการลดคาร์ปดูเหมือนจะทำให้นักเรียนบางคนสับสนโดยไม่จำเป็น ความคิดที่เข้าใจง่ายของการลดคือ "ถ้าฉันมีอัลกอริทึมในการแก้ปัญหา X จากนั้นฉันก็สามารถใช้มันเพื่อแก้ปัญหา Y ได้เช่นกัน" นั่นเป็นเรื่องที่เข้าใจได้ง่ายมาก - แต่แผนที่ดีกว่าการทัวริงการลดลงมากกว่าการลดคาร์ป เป็นผลให้ฉันเห็นนักเรียนที่พยายามพิสูจน์ความสมบูรณ์แบบของ NP ถูกทำให้หลงผิดโดยสัญชาตญาณและพิสูจน์ข้อผิดพลาด พยายามที่จะสอนการลดลงทั้งสองประเภทและเน้นในแง่มุมของการลดคาร์ปนี้บางครั้งก็รู้สึกเหมือนเป็นพิธีการที่ไม่จำเป็นและใช้เวลาเรียนไม่จำเป็นและให้ความสนใจกับนักเรียนในสิ่งที่รู้สึกเหมือนรายละเอียดทางเทคนิค มันไม่ชัดเจนเลยว่าทำไมเราใช้ความคิดที่ จำกัด มากขึ้นในการลด ฉันเข้าใจความแตกต่างระหว่างการลด Karp และการลด Turing (Cook) และวิธีที่พวกเขานำไปสู่แนวคิดที่แตกต่างของความสมบูรณ์แบบ NP ฉันตระหนักว่าการลดคาร์ปทำให้เรามีความแตกต่างที่ละเอียดยิ่งขึ้นระหว่างคลาสความซับซ้อน ดังนั้นสำหรับการศึกษาทฤษฎีความซับซ้อนอย่างจริงจังการลดคาร์ปจึงเป็นเครื่องมือที่เหมาะสม แต่สำหรับนักศึกษาวิทยาศาสตร์คอมพิวเตอร์ที่เพิ่งเรียนรู้สิ่งนี้และไม่เคยไปสู่ทฤษฎีความซับซ้อนฉันไม่แน่ใจว่าการแยกความแตกต่างที่ดีกว่านี้มีความสำคัญอย่างยิ่งหรือไม่ ในที่สุดในฐานะนักเรียนฉันจำได้ว่ารู้สึกงุนงงเมื่อฉันพบปัญหาเช่น "ซ้ำซาก" - เช่นกำหนดสูตรบูลีนตรวจสอบว่าเป็นวิชาซ้ำซาก สิ่งที่สับสนคือปัญหานี้ชัดเจนยาก: อัลกอริธึมเวลาพหุนามใด ๆ สำหรับมันจะบ่งบอกว่าP= NPP=NPP=NP; เห็นได้ชัดว่าการแก้ปัญหานี้ยากพอ ๆ กับการแก้ไขปัญหาซ้ำซาก อย่างไรก็ตามถึงแม้ว่าการหยั่งรู้เชิงสัญชาตญาณนั้นยากพอ …

1
จัดเรียงเป็นโปรแกรมเชิงเส้น
ปัญหาที่น่าประหลาดใจมีจำนวนลดลงอย่างเป็นธรรมชาติถึงการเขียนโปรแกรมเชิงเส้น (LP) ดูบทที่ 7จาก [1] สำหรับตัวอย่างเช่นการไหลของเครือข่ายการจับคู่แบบสองทางเกมแบบรวมศูนย์เส้นทางที่สั้นที่สุดรูปแบบของการถดถอยเชิงเส้นและการประเมินวงจร! เนื่องจากการประเมินวงจรลดการโปรแกรมเชิงเส้นปัญหาใด ๆ ในจะต้องมีสูตรการเขียนโปรแกรมเชิงเส้น ดังนั้นเราจึงมีอัลกอริทึมการเรียงลำดับ "ใหม่" ผ่านการลดขนาดให้เป็นโปรแกรมเชิงเส้น ดังนั้นคำถามของฉันคือPPP โปรแกรมเชิงเส้นคืออะไรที่จะเรียงลำดับของจำนวนจริง ?nnn เวลาในการทำงานของอัลกอริธึมการเรียงลำดับการลดและการแก้ปัญหาคืออะไร อัลกอริทึมโดย S. Dasgupta, C. Papadimitriou และ U. Vazirani (2006)

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

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

2
ปัญหา“ ผลิตภัณฑ์ชุดย่อย” เป็นปัญหาที่สมบูรณ์หรือไม่
ปัญหาผลรวมย่อยคือปัญหา NP-complete แบบคลาสสิก: เมื่อระบุรายการตัวเลขและเป้าหมายมีชุดย่อยของตัวเลขจากที่รวมเป็นหรือไม่k L kLLLkkkLLLkkk นักเรียนคนหนึ่งถามฉันว่าปัญหาที่เรียกว่า "ผลิตภัณฑ์ชุดย่อย" เป็นปัญหาที่เกิดขึ้นหรือไม่: รับรายการหมายเลขและเป้าหมายมีชุดย่อยของตัวเลขจากซึ่งผลิตภัณฑ์เป็นหรือไม่k L kLLLkkkLLLkkk ฉันทำการค้นหาบางอย่างและไม่สามารถหาแหล่งข้อมูลที่พูดคุยเกี่ยวกับปัญหานี้ได้แม้ว่าฉันอาจจะคิดถึงพวกเขาก็ตาม ปัญหาผลิตภัณฑ์ชุดย่อย NP-complete หรือไม่

2
ลดปัญหาต่อไปนี้เป็น SAT
นี่คือปัญหา ได้รับซึ่งแต่ละ\} มีชุดย่อยมีขนาดสูงสุดซึ่งสำหรับทั้งหมดหรือไม่ ฉันพยายามลดปัญหานี้เป็น SAT ความคิดของฉันของการแก้ปัญหาจะมีตัวแปรสำหรับแต่ละ 1 ถึงnสำหรับแต่ละสร้างประโยคถ้า\} จากนั้นและข้อเหล่านี้ทั้งหมดเข้าด้วยกัน แต่สิ่งนี้เห็นได้ชัดว่าไม่ใช่วิธีการแก้ปัญหาที่สมบูรณ์เนื่องจากไม่ได้แสดงถึงข้อ จำกัด ที่T ฉัน ⊆ { 1 , ... , n } S ⊆ { 1 , ... , n } k S ∩ T ฉัน ≠ ∅ ฉันx ฉัน n T ฉัน ( x ฉัน1 ∨ ⋯ ∨ x i …

2
ผลรวมย่อย: ลดพิเศษกรณีทั่วไป
วิกิพีเดียระบุปัญหาผลรวมเซตย่อยตามการค้นหาเซ็ตย่อยของชุดเลขจำนวนเต็มที่กำหนดซึ่งผลรวมเป็นศูนย์ นอกจากนี้มันกล่าวว่ามันจะเทียบเท่ากับการหาชุดย่อยที่มีผลรวมสำหรับการใด ๆ ให้sssssss ดังนั้นฉันเชื่อว่ามันเท่ากันต้องลดทั้งสองข้าง หนึ่งจากไปที่ศูนย์เป็นเล็กน้อยโดยการตั้งค่า0 แต่ฉันไม่มีโชคในการหาการลดลงจากศูนย์ถึงเช่นได้รับชุดจำนวนเต็มสร้างชุดจำนวนเต็มที่ประกอบด้วยชุดย่อยที่มีผลรวม (สำหรับใด ๆ) ถ้าหากมีเซตย่อยของด้วยเท่านั้น ผลรวมศูนย์ssss = 0s=0s = 0sssAAABBBssssssAAA คุณช่วยชี้ให้ฉันได้ไหม

5
ฉันจะลดผลรวมกลุ่มย่อยให้เป็นพาร์ติชันได้อย่างไร
อาจจะค่อนข้างง่าย แต่ฉันมีปัญหาในการลดขนาดนี้ ฉันต้องการลดผลรวมเซ็ตย่อยเป็น พาร์ติชันแต่ในเวลานี้ฉันไม่เห็นความสัมพันธ์! เป็นไปได้ไหมที่จะลดปัญหานี้โดยใช้การลดเลวิน? หากคุณไม่เข้าใจเขียนเพื่อชี้แจง!

3
ครึ่งหนึ่ง CLIQUE - ปัญหาที่สมบูรณ์ของ NP
ผมขอเริ่มต้นจากการสังเกตปัญหานี้เป็นปัญหาบ้านกรุณาให้คำแนะนำเท่านั้นและข้อสังเกตที่เกี่ยวข้องไม่ตรงคำตอบโปรด จากที่กล่าวมานี่เป็นปัญหาที่ฉันดู: ให้ HALF-CLIQUE = { | เป็นกราฟที่ไม่ได้บอกทิศทางมีกราฟย่อยสมบูรณ์ที่มีอย่างน้อยโหนดโดยที่ n คือจำนวนโหนดใน } แสดงว่า HALF-CLIQUE นั้นสมบูรณ์ NPG n / 2 G⟨ G ⟩⟨G⟩\langle G \rangleGGGn / 2n/2n/2GGG นอกจากนี้ฉันรู้ดังต่อไปนี้: ในแง่ของปัญหานี้กลุ่มถูกกำหนดให้เป็นกราฟย่อยที่ไม่ได้บอกทิศทางของกราฟอินพุตซึ่งทุกโหนดจะเชื่อมต่อกันด้วยขอบ -cliqueเป็นก๊กที่มีโหนดkkkkkk จากหนังสือของเรา Michael Sipser's " รู้เบื้องต้นเกี่ยวกับทฤษฎีการคำนวณ " หน้า 268 ว่าปัญหา CLIQUE = { | เป็นกราฟที่ไม่ได้บอกทิศทางด้วย -clique} อยู่ใน NPG k⟨ G , k ⟩⟨G,k⟩\langle …

2
หนึ่งสามารถแสดงความแข็ง NP โดยการทัวริงการลดลงได้หรือไม่?
ในกระดาษความซับซ้อนของปัญหา FrobeniusโดยRamírez-Alfonsínปัญหาได้รับการพิสูจน์แล้วว่าเป็นปัญหาที่สมบูรณ์โดยใช้การลดลงของทัวริง เป็นไปได้ไหม ว่าอย่างไร ฉันคิดว่ามันเป็นไปได้โดยพหุนามเวลาลดลงหลายคน มีการอ้างอิงเกี่ยวกับเรื่องนี้หรือไม่? มีสองแนวคิดที่แตกต่างกันของความแข็งของ NP แม้กระทั่งความสมบูรณ์ของ NP? แต่แล้วฉันก็สับสนเพราะจากมุมมองที่ใช้งานได้จริงถ้าฉันต้องการแสดงให้เห็นว่าปัญหาของฉันคือปัญหาที่ยากฉันจะใช้อะไร พวกเขาเริ่มต้นคำอธิบายดังนี้: การลดลงของทัวริงเวลาพหุนามจากปัญหาP1P1P_1 ไปยังอีกปัญหาP2P2P_2 เป็นอัลกอริทึมซึ่งจะช่วยแก้ P1P1P_1 โดยใช้ย่อยสมมุติ 'สำหรับการแก้ P2P2P_2 เช่นว่าถ้า A' เป็นอัลกอริทึมเวลาพหุนามสำหรับ P2P2P_2 แล้ว จะเป็นอัลกอริทึมสำหรับเวลาพหุนาม P1P1P_1 1 เราบอกว่า P1P1P_1 สามารถทัวริงลดลง P2P2P_2 2 ปัญหา เรียกว่า (ทัวริง) NP-hard หากมีปัญหาการตัดสินใจที่สมบูรณ์แบบP 2 เช่นที่ P 2 สามารถลดทัวริงเป็น P 1ได้P1P1P_1P2P2P_2P2P2P_2P1P1P_1 จากนั้นพวกเขาใช้การลดทัวริงจากปัญหา NP-complete เพื่อแสดงความสมบูรณ์ NP ของปัญหาอื่น ๆ

1
การตัดขั้นต่ำสามารถทำได้ง่ายกว่าการไหลของเครือข่ายหรือไม่
ต้องขอบคุณทฤษฎีบทการตัดขั้นต่ำสูงสุดเรารู้ว่าเราสามารถใช้อัลกอริทึมใด ๆ ในการคำนวณการไหลสูงสุดในกราฟเครือข่ายเพื่อคำนวณ a -min-cut ดังนั้นความซับซ้อนของการคำนวณขั้นต่ำ -cut จึงไม่เกินความซับซ้อนของการคำนวณสูงสุด -flow( s , t ) ( s , t )(s,t)(s,t)(s,t)(s,t)(s,t)(s,t)(s,t)(s,t)(s,t) มันจะน้อยลงหรือไม่ มีอัลกอริทึมสำหรับการคำนวณขั้นต่ำ -cut ที่เร็วกว่าอัลกอริธึม max-flow หรือไม่?(s,t)(s,t)(s,t) ฉันพยายามหาลดลงเพื่อลด(s,t(s,t(s,t ) ปัญหา -max ไหลไป(s,t)(s,t)(s,t)ปัญหา -min ตัด แต่ผมก็ไม่สามารถที่จะหาคน ความคิดแรกของฉันคือใช้อัลกอริธึมการหารและการพิชิต: ก่อนอื่นให้หา min-cut ซึ่งแยกกราฟออกเป็นสองส่วน ตอนนี้หา max-flow แบบวนซ้ำสำหรับส่วนด้านซ้ายและ max-flow สำหรับส่วนที่ถูกต้องและรวมเข้าด้วยกันกับขอบทั้งหมดที่ตัดผ่าน สิ่งนี้จะทำงานเพื่อสร้างโฟลว์สูงสุด แต่เวลาทำงานที่เลวร้ายที่สุดของมันอาจมากเท่ากับO(|V|)O(|V|)O(|V|)เท่าใหญ่เท่ากับเวลาทำงานของอัลกอริธึมตัดขั้นต่ำ มีการลดที่ดีขึ้นหรือไม่ ฉันตระหนักถึงทฤษฎีการตัดขั้นต่ำแบบ max-flow แสดงให้เห็นว่าความซับซ้อนของการคำนวณคุณค่าของ max-flow นั้นเหมือนกับความซับซ้อนของการคำนวณความสามารถของการตัดขั้นต่ำ แต่นั่นไม่ใช่สิ่งที่ฉันถาม …

2
การลดพหุนามจากปัญหา NP-Complete ใด ๆ ไปยัง PCP ที่มีขอบเขต
หนังสือแบบเรียนทุกแห่งสมมติว่าปัญหาสารบรรณโพสต์ที่ถูกผูกไว้เป็นปัญหาสมบูรณ์ (ไม่เกินดัชนีอนุญาตให้ทำซ้ำได้) อย่างไรก็ตามไม่มีที่ใดที่แสดงให้เห็นถึงการลดเวลาพหุโนเมียจากปัญหา NP-complete อีกอย่างหนึ่งอย่างง่ายยังไม่มีข้อความยังไม่มีข้อความN อย่างไรก็ตามการลดลงทุกครั้งที่ฉันนึกได้ก็คือเอ็กซ์โพเนนเชียล (โดยหรือตามขนาดของซีรี่ส์) ในเวลาทำงาน บางทีมันสามารถแสดงให้เห็นว่ามันลดลงถึง SAT?ยังไม่มีข้อความยังไม่มีข้อความN

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