ปัญหาที่แก้ไขได้ในทางปฏิบัติตอบโต้สังหรณ์?


21

เมื่อไม่นานมานี้ฉันได้รับประสบการณ์ที่สนุกสนานอย่างเจ็บปวดจากการอธิบายแนวคิดของความซับซ้อนในการคำนวณให้กับโปรแกรมเมอร์ที่สอนด้วยตนเองที่มีความสามารถอายุน้อยซึ่งไม่เคยเรียนหลักสูตรทางการในอัลกอริธึมหรือความซับซ้อนมาก่อน ไม่น่าแปลกใจมากของความคิดที่ดูเหมือนแปลกในตอนแรก แต่ทำให้ความรู้สึกกับบางตัวอย่าง(PTIME, intractability, uncomputability)ขณะที่คนอื่นดูเหมือนจะมาเป็นธรรมชาติมากขึ้น(การจัดหมวดหมู่ปัญหาผ่านการลดเวลาและพื้นที่ที่เป็นแหล่งข้อมูลการวิเคราะห์เชิง) ทุกอย่างกำลังดีจนกระทั่งฉันยอมรับSATโดยไม่ตั้งใจสามารถแก้ไขได้อย่างมีประสิทธิภาพ * ในทางปฏิบัติ ... และเช่นเดียวกับที่ฉันทำมันหายไป มันไม่สำคัญว่าฉันจะพยายามโต้เถียงในทางทฤษฎีอย่างไรเด็กคนนั้นเชื่อว่ามันเป็นคณิตศาสตร์อึที่เขาไม่ควรสนใจ ดี...

¯ \ _ (ツ) _ / ¯

ไม่ฉันไม่ได้ใจสลายหรือฉันไม่สนใจจริงๆเกี่ยวกับสิ่งที่เขาคิดนั่นไม่ใช่ประเด็นของคำถามนี้ การสนทนาของเราทำให้ฉันคิดคำถามอื่น

ฉันรู้มากแค่ไหนเกี่ยวกับปัญหาที่ยากลำบากในทางทฤษฎี (ความซับซ้อนของเวลาแบบโพลิโพโนเมียลชั้นสูง) แต่สามารถแก้ไขได้จริง (ผ่านทางฮิวริสติก, การประมาณค่า, ตัวแก้ SAT ฯลฯ )?

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

TL: DR: ปัญหาอะไรบ้างที่สามารถแก้ไขได้ในทางปฏิบัติโดยวิธีตอบโต้ มีทรัพยากร (อัพเดท) เพื่ออ่านเพิ่มเติมหรือไม่ เรามีลักษณะเฉพาะของพวกเขาหรือไม่? และในที่สุดตามคำถามการอภิปรายทั่วไปเราควรหรือไม่

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

[1] Spielman, Daniel A. และ Shang-Hua Teng "การวิเคราะห์อัลกอริธึมราบรื่น: ทำไมอัลกอริธึมเริมมักใช้เวลาพหุนาม" วารสาร ACM (JACM) 51 หมายเลข 3 (2004): 385-463


6
คุณหมายถึงอะไรโดยระบุว่า SAT สามารถแก้ไขได้อย่างมีประสิทธิภาพในทางปฏิบัติ ทำไมเพื่อนของคุณเชื่อมั่นในความปลอดภัยบนอินเทอร์เน็ต สมมุติว่าไม่มีปัญหายากในทางปฏิบัติ? ความทนทานเป็นหนึ่งในข้อได้เปรียบหลักของการแก้ปัญหาโพลีเวลา / ที่มีประสิทธิภาพ
จันทรา Chekuri

6
กราฟมอร์ฟิซึ่มเป็นตัวเลือกที่เป็นธรรมชาติ
DW

2
เฮ้ @ChandraChekuri สิ่งที่ฉันหมายถึงคือนักแก้ปัญหา SAT จริงสามารถตอบอินสแตนซ์ของ SAT ด้วยตัวแปรและประโยคนับล้าน หรืออย่างน้อยนั่นคือสิ่งที่ฉันคิดว่าเป็นกรณี ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณหมายถึงเกี่ยวกับ "ความปลอดภัยบนอินเทอร์เน็ต"? ฉันไม่เถียงกับพิธีการฉันสนใจในปัญหาที่อยู่ในทฤษฎีที่ดื้อดึง แต่สำหรับการปฏิบัติตามวัตถุประสงค์ทั้งหมด (อาจเป็นเพราะการประมาณที่เหมาะสมอาจเป็นเพราะโครงสร้างพิเศษของอินสแตนซ์โลกแห่งความเป็นจริง ฯลฯ ) ได้รับการพิจารณา " ซูฮก"
Konstantinos Koiliaris

1
@ KonstantinosKoiliaris ฉันคิดว่าประเด็นคือความปลอดภัยของโปรโตคอลการเข้ารหัสทุกรูปแบบอาศัย (มักจะมีบางสิ่งที่แข็งแกร่งกว่า) และเป็นตัวอย่างที่ดีของปัญหาจากการฝึกประจำวันซึ่งยากมากสำหรับนักแก้ปัญหา SAT ( หรือเราหวังเป็นอย่างยิ่ง) PNP
Emil Jeřábekสนับสนุน Monica

2
ในหลอดเลือดดำนี้อาจเป็นการดีที่จะตรวจสอบความซับซ้อนทั่วไป ในความเป็นจริงมันกลับกลายเป็นว่าปัญหาการหยุดชะงักนั้นมักจะแก้ไขได้ในเวลาพหุนามเช่นเช่น SAT (อันที่จริง SAT มีการรับประกันที่ดีกว่า) สิ่งที่มีความหมายโดย“ เกือบตลอดเวลา” คือปัญหายอมรับว่าอัลกอริทึมดังกล่าวนั้นสัดส่วนของอินพุตที่อัลกอริทึมหยุดทำงาน (และส่งคำตอบที่ถูกต้องแน่นอน) ในเวลาพหุนามเท่ากับ 1 เมื่อความยาวของอินพุตเพิ่มขึ้น
Guillermo Angeris

คำตอบ:


17
  • อินสแตนซ์ SAT ที่มีโครงสร้างสูง (แม้จะมีตัวแปรนับล้าน) สามารถแก้ไขได้ในทางปฏิบัติ อย่างไรก็ตามอินสแตนซ์ SAT แบบสุ่มที่อยู่ใกล้กับเกณฑ์ความพึงพอใจที่มีตัวแปรไม่กี่ร้อยตัวยังคงเปิดอยู่ (ความหมายแม้ในทางปฏิบัติหากคุณสร้างสิ่งเช่นนี้คุณอาจไม่เคยรู้มาก่อนเลยในช่วงชีวิตของจักรวาล ใช้ตัวแก้ SAT ปัจจุบัน) คุณอาจสนใจคำถามที่เกี่ยวข้องนี้และคำตอบ

  • กลุ่มผู้ค้นหายังดีอย่างน่าตกใจ "ในทางปฏิบัติ"

    • ด้วยความเคารพต่อกลุ่มผู้ค้นหากลุ่ม (ส่วนหนึ่งของ) คำอธิบายนั้นได้มาจากการวิเคราะห์กรณีเฉลี่ยของอัลกอริธึมที่เป็นปัญหา

      ดูhttps://www.sciencedirect.com/science/article/pii/S0166218X18300167?via%3Dihub

  • การเขียนโปรแกรมจำนวนเต็มและการเขียนโปรแกรมเชิงเส้นจำนวนเต็มแบบผสม (ด้วยเหตุผลบางอย่างและตัวแปรจำนวนเต็มบางส่วน) เป็นจุดสนใจของแผนกวิจัยการดำเนินงานทั้งหมดและสามารถแก้ไขได้ในทางปฏิบัติบ่อยครั้ง (แต่ไม่เสมอไป)

  • จากสิ่งที่ฉันเข้าใจหลายปัญหาที่สมบูรณ์ที่เกิดขึ้นในการตรวจสอบมักจะสามารถแก้ไขได้ในทางปฏิบัติ แต่ "ในทางปฏิบัติ" มักจะหมายถึง "ในกรณีที่มีโครงสร้างสูง" (ในทางตรงกันข้ามเรายังไม่ทราบว่าใครจะชนะสำหรับอินสแตนซ์ขนาดเล็กสวยของเกมไปซึ่งเป็นอีกหนึ่งP S P C Eปัญหาที่สมบูรณ์.)PSPACEPSPACE

  • ปัญหามากมายในการคำนวณเชิงพีชคณิตเรขาคณิตสามารถแก้ไขได้ในทางปฏิบัติในกรณีเล็ก ๆ โดยใช้ Grobner ฐาน แต่สิ่งเหล่านี้ล้มเหลวอย่างน่าสังเวชในกรณีที่มีขนาดใหญ่หรือแม้แต่กรณีเล็ก ๆ ที่มี "ความซับซ้อน" สูง (วัดโดย Castelnuovo-Mumford และปัญหาเหล่านี้ก็คือสมบูรณ์!EXPSPACE

  • ตามที่ระบุไว้แล้วในความคิดเห็นโดย DW, Isomorphism กราฟสามารถแก้ไขได้ในทางปฏิบัติ มันเป็นเรื่องยากมากที่จะตอซอฟต์แวร์ GI ที่ทันสมัยเช่น nauty, bliss, saucy เป็นต้น


ขอบคุณโจชัวฉันขอมอบให้คุณสำหรับปัญหาที่น่าสนใจ / กว้างที่สุดที่แนะนำ
Konstantinos Koiliaris

1
ผู้ค้นหากลุ่มก๊กไม่ได้ฝึกฝนในทางที่ดีเสมอไป มันขึ้นอยู่กับกราฟจริงๆ ดูเหมือนว่าลิงก์ของคุณจะพูดถึงเฉพาะกราฟแบบสุ่มเท่านั้น
Peter Shor

ขยายตัวเล็กน้อยเกี่ยวกับ GI: AFAIK นักแก้ปัญหา GI ที่ทันสมัยที่สุดเช่นที่กล่าวถึงใช้วิธีการปรับแต่งรายบุคคลที่ปรับให้เหมาะสม (ซึ่งการปรับแต่งนั้นเป็นการปรับแต่งสี แต่เมื่อเร็ว ๆ นี้Neuen และ Schweitzerแสดงขอบเขตที่ลดลงแบบเอ็กซ์โปเนนเชียลสำหรับวิธีนี้และสร้างอินสแตนซ์ยาก (จริง)
Watercrystal

1
@JoshuaGrochow: ใช่ฉันเห็นด้วยกับคุณในเรื่องนี้ ฉันแค่ต้องการขยายในส่วน "ตอบโต้" ของคำถามเนื่องจาก OP กล่าวโดยเฉพาะว่า Simplex ทำงานได้เป็นอย่างดีแม้ว่าจะรู้จักขอบเขตล่างของเลขชี้กำลังแทนเลขชี้กำลังและเรามีสถานการณ์เดียวกันที่นี่
Watercrystal

1
ฉันเพิ่งมีประสบการณ์กับการคาดคะเนของเคลเลอร์ซึ่งกราฟ (มีขนาดใหญ่เป็นที่ยอมรับ) นิ่งงันอัลกอริทึมการค้นหากลุ่ม
Peter Shor

14

Hindley-มิลเนอร์ระบบการพิมพ์ที่ใช้ในการเขียนโปรแกรมภาษาทำงาน (Haskell, SML, OCaml) อัลกอริธึมการอนุมานแบบเชิงเส้นเกือบจะเป็นแบบเส้นตรงในทางปฏิบัติและทำงานได้ดีอย่างน่าอัศจรรย์ แต่เป็นที่รู้กันว่า DEXPTIME-complete!

ความคิดเห็นทั่วไป: ไม่น่าแปลกใจที่ความซับซ้อนของเวลาที่เลวร้ายที่สุดไม่จำเป็นต้องเป็นการวัดที่ดีมากของประสิทธิภาพการปฏิบัติบนอัลกอริทึม อย่างไรก็ตามการบอกว่าความแตกต่างระหว่างทฤษฎีและการปฏิบัติทำให้ทฤษฎีความซับซ้อนไร้ประโยชน์นั้นเหมือนกับการบอกว่าจำนวนธรรมชาติเป็นของเสียเพราะเราใช้จำนวนที่น้อยที่สุดของจำนวนทั้งหมดที่มีอยู่เท่านั้น นักปรัชญาที่มีชื่อเสียงเคยกล่าวไว้ว่า"ประสบการณ์ที่ปราศจากทฤษฎีเป็นสิ่งที่ตาบอด แต่ทฤษฎีที่ไม่มีประสบการณ์เป็นเพียงการเล่นทางปัญญา"


FPL

6

ตัวอย่างเพิ่มเติมส่วนใหญ่มาจากภาษาการเขียนโปรแกรม:

  1. k-CFA (k-Control Flow Analysis) นั้นสมบูรณ์แบบ EXPTIME (Van Horn & Mairson 2008) แต่คอมไพเลอร์ปรับแต่งโปรแกรมทั้งหมดอย่าง MLton ดำเนินการอยู่แล้ว เวลาในการรวบรวมมีความยาว แต่ไม่ค่อยเกิดภัยพิบัติ
  2. การแก้ไขการโหลดมากเกินไป (ไดนามิก) โดยทั่วไปเป็นปัญหา NP-Complete (Palsberg 2012) แต่มันก็ไม่ค่อยมีปัญหาในโลกแห่งความเป็นจริง
  3. k
  4. การแก้ปัญหา SMT มักจะเป็นปัญหาที่สมบูรณ์ แต่ตัวแก้ปัญหาในเชิงพาณิชย์ของ SMT (เช่น Z3 และ CVC4) มักจะมีประสิทธิภาพดี ฉันไม่ได้ทำงานโดยตรงกับนักแก้ปัญหา SMT แต่ฉันใช้ Z3 ทางอ้อมจาก Liquid Haskell และ Dafny และเวลาตรวจสอบดูเหมือนว่าตกลง
  5. ปัญหาในการตัดสินใจของ Presburger นั้นซับซ้อนมาก (Fischer & Rabin 1974) แต่อัลกอริทึมการตัดสินใจของ Bill Pugh คือ Omega test (Pugh 1991) ซึ่งทำงานโดยทั่วไปในพหุนามต่ำ

Onn


อ้างอิง:

[1] David Van Horn และ Harry G. Mairson 2008. การตัดสินใจ kCFA เสร็จสมบูรณ์สำหรับ EXPTIME ในรายงานการประชุม ACM SIGPLAN ครั้งที่ 13 เรื่องการเขียนโปรแกรมเชิงปฏิบัติ (ICFP '08) พลอากาศเอกนิวยอร์กสหรัฐอเมริกาสหรัฐอเมริกา 275-282

[2] http://web.cs.ucla.edu/~palsberg/paper/dedicated-to-kozen12.pdf

[3] MJ Fischer และ MO Rabin พ.ศ. 2517 (ค.ศ. 1974) ความซับซ้อนเหนือชั้นของอภิสิทธิ์คณิตศาสตร์ล่วงหน้า รายงานทางเทคนิค. สถาบันเทคโนโลยีแมสซาชูเซตส์เคมบริดจ์แมสซาชูเซตส์สหรัฐอเมริกา

[4] วิลเลียมพัคห์ก 2534. การทดสอบโอเมก้า: อัลกอริธึมการเขียนโปรแกรมจำนวนเต็มอย่างรวดเร็วและเป็นประโยชน์สำหรับการวิเคราะห์การพึ่งพา ในรายงานการประชุม ACM / IEEE 1991 เรื่องการประมวลผลแบบ Supercomputing (Supercomputing '91) พลอากาศเอกนิวยอร์กสหรัฐอเมริกาสหรัฐอเมริกา 4-13


1

การฝึกอบรมเครือข่ายประสาทโดยใช้วิธีการไล่ระดับสีโคตรนอกจากนี้ยังมีการพิสูจน์แล้วว่าไม่ดีปัญหา NP-ยากhttps://www.cs.utexas.edu/~klivans/crypto-hs.pdf แต่โดยทั่วไปมักจะแก้ปัญหาในทางปฏิบัติ

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