อัลกอริทึมใดที่มีช่องว่างขนาดใหญ่ระหว่างการวิเคราะห์เชิงทฤษฎีและความเป็นจริง?


52

สองวิธีในการวิเคราะห์ประสิทธิภาพของอัลกอริทึมคือ

  1. เพื่อใส่ขอบเขตบนเชิงเส้นกำกับบนรันไทม์และ
  2. เพื่อเรียกใช้และรวบรวมข้อมูลการทดลอง

ฉันสงสัยว่ามีหลายกรณีที่ทราบว่ามีช่องว่างที่สำคัญระหว่าง (1) และ (2) หรือไม่ จากนี้ฉันหมายถึงว่า (a) ข้อมูลการทดลองแสดงให้เห็นว่า asymptotic ที่เข้มงวดมากขึ้นหรือ (b) มีอัลกอริธึม X และ Y ซึ่งการวิเคราะห์เชิงทฤษฎีแสดงให้เห็นว่า X ดีกว่า Y มากและข้อมูลการทดลองแสดงว่า Y นั้นดีกว่า เอ็กซ์

เนื่องจากการทดลองมักจะเปิดเผยพฤติกรรมกรณีโดยเฉลี่ยฉันคาดหวังคำตอบที่น่าสนใจที่สุดในการอ้างถึงขอบเขตบนของกรณีโดยเฉลี่ย อย่างไรก็ตามฉันไม่ต้องการแยกแยะคำตอบที่น่าสนใจซึ่งพูดถึงขอบเขตที่ต่างกันเช่นคำตอบของ Noam เกี่ยวกับ Simplex

รวมถึงโครงสร้างข้อมูล โปรดใส่หนึ่งอัลโก / ds ต่อคำตอบ


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

ในกรณีนั้นฉันคิดว่ามีคำถามสองข้อที่ควรถามแยกต่างหาก: หนึ่งเรื่องเกี่ยวกับช่องว่างระหว่างความซับซ้อนของกรณีที่แย่ที่สุดและความซับซ้อนเฉลี่ยกรณี / ราบเรียบและหนึ่งเกี่ยวกับช่องว่างระหว่างความซับซ้อนเฉลี่ยกรณี / ซับซ้อนเรียบและผลการทดลองเชิงปฏิบัติ แก้ไข: คุณทำข้อแก้ไขที่อยู่นี้ในขณะที่ผมเขียนความคิดเห็นของฉัน :)
คิงเจมส์

คำตอบ:


37

ตัวอย่างที่เห็นได้ชัดที่สุดคือวิธี Simplex ที่ทำงานได้อย่างรวดเร็วในทางปฏิบัติแนะนำโพลี - timeness แต่ใช้เวลาชี้แจงในทฤษฎี Dan Spielman เพิ่งได้รับรางวัล Nevanlinna ในระดับสูงสำหรับการอธิบายความลึกลับนี้

โดยทั่วไปแล้วอินสแตนซ์จำนวนมากของการเขียนโปรแกรมจำนวนเต็มสามารถแก้ไขได้ค่อนข้างดีด้วยการใช้ IP-solvers มาตรฐานเช่นการประมูลแบบ combinatorial สำหรับการแจกแจงส่วนใหญ่ที่พยายามป้อนขนาดที่สำคัญสามารถแก้ไขได้ - http://www.cis.upenn.edu/~mkearns /teaching/cgt/combinatorial-auctions-survey.pdf


3
เคยมีครอบครัวของโปรแกรมเชิงเส้นที่ชัดเจนซึ่ง simplex ใช้เวลาเอ็กซ์โพเนนเชียลไหม
เลือก

1
เท่าที่ฉันเข้าใจมีหลายครอบครัวที่ชัดเจนที่ต้องใช้เวลาชี้แจง (เช่นผึ้งแรกที่ได้รับจาก Klee และมิ้นต์: "อัลกอริทึมซิมเพล็กซ์ดีแค่ไหน?", 1972) อย่างไรก็ตามตัวเลือกของกฎเดือยเกี่ยวข้องกับผลลัพธ์เหล่านี้ ฉันเดาว่าการอ้างอิงถึงผลลัพธ์เหล่านี้ส่วนใหญ่สามารถพบได้ในกระดาษของ Spielman และ Teng ( arxiv.org/abs/cs/0111050 )
MRA

2
@Sid: ใช่ ลูกบาศก์ Klee-Minty: glossary.computing.society.informs.org/notes/Klee-Minty.pdf

มีขอบเขตที่ต่ำลงสำหรับกฎการหมุนรอบที่เฉพาะเจาะจงในบทความนี้cs.au.dk/~tdh/papers/random_edge.pdf
Igor Shinkar

26

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


ค่าเฉลี่ย / ที่คาดหวังภายใต้การกระจายแบบใด ผมคิดว่าแม้กระทั่งการกำหนดเวลาทำงานคาดว่าเป็นเรื่องยากสำหรับปัญหาเกี่ยวกับพีชคณิต ...
โจชัว Grochow

1
ฉันไม่ทราบว่ากรณีถูกแก้ไขอย่างรวดเร็วโดยวิธี F4 และ F5 แต่มันค่อนข้างง่ายในการสร้างระบบของพหุนามที่มีหลายตัวแปรและระดับต่ำซึ่งเข้ารหัสอินสแตนซ์ SAT ในกรณีเช่นนี้ฉันไม่ทราบว่าอัลกอริทึมมีประสิทธิภาพสูงกว่า DPLL / DPLL + ฉันอยากรู้เพิ่มเติมเกี่ยวกับผลการทดลองในสิ่งเหล่านี้!
MassimoLauria

@Joshua: ณ จุดนี้การแจกจ่ายใด ๆ ที่อนุญาตผลลัพธ์ ... @Massimo: การเข้ารหัสปัญหา X เป็นตัวอย่างของ Y แทบไม่เคยเต้นอัลกอริธึมพิเศษสำหรับ X! แต่ GB และ DPLL นั้นเทียบเท่ากันดังนั้นฉันจะแปลกใจเป็นพิเศษเมื่อเห็นความแตกต่างที่มีประสิทธิภาพ
Jacques Carette

1
@Massimo: ใช่การคำนวณ GB คือ NP-Hard ขึ้นอยู่กับสูตร ในความเป็นจริงคำถามส่วนใหญ่ (เสร็จสิ้นการเป็นสมาชิกในอุดมคติเขตข้อมูลปิดพีชคณิตเทียบกับบูลีน) เป็น PSPACE สมบูรณ์หรือแย่กว่านั้น (สมบูรณ์ EXPSPACE) ซึ่งก็คือการคำนวณว่า GB นั้นคาดว่าจะหนักกว่าปัญหาที่เกิดจากปัญหาที่สมบูรณ์แบบมาก (และแม้กระทั่งกรณี avg อัลกอริทึมใด ๆ สำหรับพวกเขาเช่น F5 น่าจะไม่ดีกว่า DPLL)
Mitch

22

O(2((nlogn)))

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


1
O(2nlogn)

2
Oh! บางทีคุณอาจคิดว่า Babai-Kucera ซึ่งให้อัลกอริทึมค่าเฉลี่ยเชิงเส้นสำหรับ GI: doi.ieeecomputersociety.org/10.1109/SFCS.1979.8
Joshua Grochow

ใช่แล้ว Babai-Kucera เป็นหนึ่งเดียว! ขอบคุณสำหรับการอ้างอิง
Anand Kulkarni

20

จากเดวิดจอห์นสัน, ความแตกต่างในอัตราส่วนเทียบกับประมาณทดลองทฤษฎี: ปัญหาพนักงานขายที่เดินทาง: กรณีศึกษาในการเพิ่มประสิทธิภาพท้องถิ่น DS จอห์นสันและ LA McGeoch ในบทความนี้พวกเขาให้หลักฐานการทดลองของ asymptotics (ตั้งแต่การทดลองวิ่งขึ้นไปที่ขนาด N = 10,000,000!) ที่ท้าทายทฤษฎีเชิง asymptotics: อัลกอริทึม "โลภ" หรือ "Multi-Fragment" ของจอนเบนท์ลีย์ loglogN) เต้นแทรกที่ใกล้ที่สุดและ Double MST ซึ่งทั้งสองมีอัตราส่วนประมาณกรณีที่เลวร้ายที่สุดของ 2


20

อีกตัวอย่างที่ไม่เข้าใจกันมานานจนกระทั่งเมื่อไม่นานมานี้คือช่วงเวลาทำงานของอัลกอริทึม k-mean ของลอยด์ซึ่ง (จากมุมมองเชิงปฏิบัติ) เป็นอัลกอริทึมการจัดกลุ่มที่เลือกมานานกว่า 50 ปี เมื่อเร็ว ๆ นี้ในปี 2009 มันได้รับการพิสูจน์แล้ว (โดยVattani ) ว่าในกรณีที่เลวร้ายที่สุดอัลกอริธึมของ Lloyd ต้องมีการวนซ้ำจำนวนหนึ่งซึ่งอธิบายได้ในจำนวนจุดเข้า ในขณะเดียวกันการวิเคราะห์ที่ราบรื่น (โดยArthur, Manthey และRöglin ) ได้พิสูจน์ว่าจำนวนการวนซ้ำที่ราบรื่นเป็นเพียงพหุนามซึ่งอธิบายประสิทธิภาพเชิงประจักษ์


10

Traversal, deque และ split corollaries ของการคาดคะเน optimality แบบไดนามิกสำหรับต้นไม้ splay เป็นตัวอย่างของช่องว่างดังกล่าว การทดลองสำรองข้อมูลการอ้างสิทธิ์สำหรับเวลาเชิงเส้น แต่ไม่มีข้อพิสูจน์ที่เป็นที่รู้จัก


3
Seth Pettie พิสูจน์แล้วว่าการดำเนินการ n deque ใช้เวลาไม่เกิน O (n alpha * (n)) โดยที่ "alpha *" เป็นฟังก์ชัน Invermann แบบผกผันแบบซ้ำซึ่งเป็นช่องว่างที่ค่อนข้างเล็ก
jbapple

9

มีปัญหาเล็กน้อยกับคำถามนี้ ในความเป็นจริงมีมากกว่าสองวิธีในการวิเคราะห์อัลกอริทึมและหนึ่งในวิธีการทางทฤษฎีที่ถูกทอดทิ้งคือเวลาทำงานที่คาดหวังมากกว่าเวลาทำงานที่เลวร้ายที่สุด จริงๆแล้วมันเป็นพฤติกรรมโดยเฉลี่ยที่เกี่ยวข้องกับการทำการทดลอง นี่คือตัวอย่างง่ายๆ: ลองจินตนาการว่าคุณมีอัลกอริทึมสำหรับการป้อนข้อมูลขนาด n ซึ่งต้องใช้เวลา n สำหรับการป้อนข้อมูลที่เป็นไปได้ของแต่ละขนาดที่เป็นไปได้ n ยกเว้นการป้อนข้อมูลเฉพาะหนึ่งความยาวแต่ละอัน ฟังว่าเวลารันไทม์ของกรณีที่เลวร้ายที่สุดคือเลขชี้กำลัง แต่กรณีทั่วไปคือ [(2 ^ n -1) n + (2 ^ n) 1] / (2 ^ n) = n - (n-1) / 2 ^ n ซึ่ง ข้อ จำกัด ถึง n เห็นได้ชัดว่าการวิเคราะห์ทั้งสองประเภทให้คำตอบที่แตกต่างกันมาก แต่นี่เป็นสิ่งที่เราคาดหวังเนื่องจากเรากำลังคำนวณปริมาณที่แตกต่างกัน

ด้วยการรันการทดสอบหลายครั้งแม้ว่าเราจะใช้เวลารันนานที่สุดสำหรับตัวอย่างเรายังคงทำการสุ่มตัวอย่างเพียงส่วนเล็ก ๆ ของพื้นที่ของอินพุตที่เป็นไปได้และดังนั้นหากอินสแตนซ์ที่ยากนั้นหายากเราก็จะพลาดมัน .

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


ฉันตอบไปแล้ว James King ด้านบนว่าฉันคาดหวังคำตอบที่น่าสนใจที่สุดจะเกี่ยวกับ runtime ที่คาดไว้ ฉันจะแก้ไขคำถามเพื่อให้มองเห็นได้ชัดเจนยิ่งขึ้น
Radu GRIGore

9

การอนุมานประเภท Damas-Milner นั้นได้รับการพิสูจน์แล้วว่าสมบูรณ์แบบสำหรับเวลาแบบเอ็กซ์โพเนนเชียล อย่างไรก็ตามสำหรับปัจจัยการผลิตในโลกแห่งความเป็นจริงส่วนใหญ่มันจะทำงานในลักษณะเชิงเส้นอย่างมีประสิทธิภาพ


มีการอ้างอิงที่คุณอยากจะแนะนำสำหรับผลลัพธ์นี้หรือไม่? ฉันต้องการอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้
Radu GRIGore

1
ฉันไม่ได้อ่านด้วยตัวเอง แต่กระดาษที่ถูกอ้างถึงบ่อยที่สุดคือ Harry G. Mairson "การตัดสินใจพิมพ์ ML เสร็จสมบูรณ์สำหรับเวลาที่กำหนดไว้อย่างแน่นอน" การประชุมวิชาการครั้งที่ 17 เรื่องหลักการของภาษาโปรแกรม (1990)
sclv

9

PTAS สำหรับต้นไม้ Steiner ในกราฟระนาบมีการพึ่งพา epsilon ที่ไร้สาระ อย่างไรก็ตามมีการใช้งานที่แสดงให้เห็นถึงประสิทธิภาพที่ดีอย่างน่าประหลาดใจในทางปฏิบัติ


8

การจับคู่ฮีปจาก [1] - พวกเขาใช้ฮีปที่การแทรกและการรวมมีความซับซ้อนของการตัดทอน O (log n) แต่จะถือว่าเป็น O (1) ในทางปฏิบัติมันมีประสิทธิภาพมากโดยเฉพาะอย่างยิ่งสำหรับผู้ใช้ที่ผสาน

ฉันเพิ่งค้นพบพวกเขาในวันนี้ขณะที่อ่าน Sec 5.5 ของหนังสือของ C. Okasaki "โครงสร้างข้อมูลที่ใช้งานได้จริง" ดังนั้นฉันคิดว่าฉันควรแบ่งปันข้อมูลเกี่ยวกับพวกเขา

[1] Fredman, ML, Sedgewick, R. , Sleator, DD และ Tarjan, RE 1986 กองการจับคู่: รูปแบบใหม่ของกองที่ปรับตัวเอง อัลกอริทึม 1, 1 (ม.ค. 1986), 111-129 DOI = http://dx.doi.org/10.1007/BF01840439


มีความก้าวหน้ามาตั้งแต่ Okasaki และขณะนี้มีการจับคู่ heap (จำเป็น) กับ O (0) รวม, O (1) แทรกและ findMin, O (lg lg n) ลดลงคีย์และ O (lg n) deleteMin: arxiv org ฮีปนี้ใช้กลไกการจับคู่ที่แตกต่างจากกองการจับคู่เดิมของ Fredman และคณะ
jbapple

7

ที่เกี่ยวข้องกับคำพูดของ ilyaraz เกี่ยวกับสาขาและขอบเขตPataki และคณะ แสดงให้เห็นว่าการลดขนาดสาขาและการผูกข้อมูลรวมกับการขัดแตะสามารถแก้ปัญหา IP แบบสุ่มเกือบทั้งหมดได้ใน polytime


6

การแก้ปัญหาหลิน - เคอร์นิมันสำหรับ TSP ("การแก้ปัญหาที่มีประสิทธิภาพสำหรับปัญหาพนักงานขายการเดินทาง", การวิจัยปฏิบัติการ 21: 489–516, 2516) ประสบความสำเร็จอย่างมากในทางปฏิบัติ แต่ยังขาดการวิเคราะห์โดยเฉลี่ย . ตรงกันข้ามมีการวิเคราะห์ฮิวริสติกแบบเลือกได้ 2 รายการสำหรับ TSP โดย Matthias Englert, Heiko Röglinและ Berthold Vöcking (อัลกอริทึมเพื่อให้ปรากฏ)


5

มีหลายอย่างรวดเร็วและมีประสิทธิภาพในสาขาการปฏิบัติและอัลกอริทึมที่ถูกผูกไว้สำหรับปัญหา NP-hard ที่แตกต่างกันที่เราไม่สามารถวิเคราะห์อย่างจริงจัง: TSP, ต้นไม้ Steiner, บรรจุถังขยะและอื่น ๆ

Ω(nm)


คุณหมายถึง O (mn) หรือฉันสับสน?
Radu GRIGore

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