ความหมายของเลขชี้กำลังการคูณเมทริกซ์


15

เรียกขานนิยามของเมทริกซ์การคูณเลขยกกำลังωเป็นค่าที่น้อยที่สุดที่มีเป็นที่รู้จักกันnωขั้นตอนวิธีการคูณเมทริกซ์ นี้ไม่ได้เป็นที่ยอมรับว่าเป็นความหมายทางคณิตศาสตร์อย่างเป็นทางการดังนั้นฉันเดาความหมายทางเทคนิคเป็นสิ่งที่ต้องการ infimum มากกว่าทุกtดังกล่าวว่ามีขั้นตอนวิธีการคูณเมทริกซ์ในnt T

ในกรณีนี้เราไม่สามารถพูดมีขั้นตอนวิธีสำหรับเมทริกซ์ในการคูณnωหรือแม้กระทั่งnω+o(1)เพียงว่าทุกϵ>0มีอยู่ขั้นตอนวิธีการในnω+ϵ ε อย่างไรก็ตามบ่อยครั้งที่เอกสารและผลซึ่งใช้เมทริกซ์คูณจะรายงานค่าใช้จ่ายของพวกเขาเป็นเพียงแค่O(nω) )

มีคำจำกัดความอื่นของที่อนุญาตให้ใช้นี้หรือไม่? มีผลลัพธ์ใด ๆ ที่รับประกันได้หรือไม่ว่าจะต้องมีอัลกอริทึมของเวลาn ωหรือn ω + o ( 1 ) ? หรือการใช้O ( n ω ) เป็นเพียงเลอะเทอะ?ωnωnω+o(1)O(nω)


2
หากคุณต้องการใช้การคูณเมทริกซ์เป็นกล่องดำวิธีที่ง่ายที่สุดคือการพูดว่า "ให้เป็นเช่นนั้นได้เราจะคูณn × n -เมทริกซ์ด้วยO ( n ω ) การคำนวณทางคณิตศาสตร์" แน่นอนωไม่ได้เป็นตัวแทนของการคูณเมทริกซ์แล้ว แต่สามารถพลใกล้ หากคุณต้องการระบุเลขชี้กำลังของการวิ่งครั้งสุดท้ายของคุณด้วยการแสดงทศนิยมขณะนี้คุณต้องปัดเศษเนื่องจากการประมาณที่ไม่น่าสนใจทั้งหมดสำหรับωที่ฉันรู้ว่าเป็นจำนวนอตรรกยะหรือลำดับไม่สิ้นสุด ωn×nO(nω)ωω
Markus Bläser

2
มักจะถูกกำหนดให้เป็น infimum มากกว่าทุก reals kสำหรับ nจะดังกล่าวว่ามีความเป็น O ( n k )อัลกอริทึมเวลานั้นคูณสอง n × nเมทริกซ์ (ที่เวลาที่มีจำนวนเพิ่มการคูณและหน่วยงานในการ ข้อมูลพื้นฐาน) นี่ก็หมายความว่าในทางเทคนิคเราควรเขียน n ω + o ( 1 ) เสมอแต่มันก็ยุ่งเหยิงดังนั้นเมื่อคุณเห็น O ( n ω )คุณควรคิดถึง O ( M ( n)ωknO(nk)n×nnω+o(1)O(nω)โดยที่ M ( n )เป็นไทม์ของอัลกอริทึมการคูณเมทริกซ์ O(M(n))M(n)
virgi

คำตอบ:


20

เมทริกซ์การคูณเลขยกกำลังเป็นไม่ได้รับประกันว่ามีขั้นตอนวิธีที่วิ่งในเวลาO ( n ω )แต่เพียงว่าสำหรับแต่ละε > 0มีอัลกอริทึมที่วิ่งในO ( n ω + ε ) อันที่จริงถ้าคุณสามารถหาอัลกอริทึมที่วิ่งในเวลาO ( n 2 P o L Y L o กรัม ( n ) )แล้วนี้แสดงให้เห็นว่าω = 2ωO(nω)ϵ>0O(nω+ϵ)O(n2polylog(n))ω=2

คุณสามารถค้นหาคำจำกัดความที่เป็นทางการในหนังสือพีชคณิตเชิงซ้อนเชิงทฤษฎีโดย Peter Bürgisser, Michael Clausen, Amin Shokrollahi


7

ความคิดเห็นเล็กน้อยที่ยาวเกินกว่าจะแสดงความคิดเห็นได้:

บางครั้งเมื่อคุณมีปัญหาซึ่งมีขั้นตอนวิธีกับการทำงานเวลาสำหรับทุกε > 0มีอัลกอริทึมที่มีเวลาทำงานn k + o ( 1 )O(nk+ϵ)ϵ>0nk+o(1)

ตัวอย่างเช่นบางครั้งคุณจะได้อัลกอริธึมที่เหมือนกับสำหรับฟังก์ชันที่กำลังเติบโตอย่างรวดเร็วf (เช่น2 2 1 / ϵ ) หากคุณตั้ง( 1 / ε )ถึง (พูด) เข้าสู่ระบบnแล้วεจะ o (1) ในตัวอย่างที่มีf ( 1 / ϵ )เป็น2 2 1 / ϵคุณสามารถเลือก1 / ϵf(1/ϵ)nk+ϵf221/ϵf(1/ϵ)lognϵf(1/ϵ)221/ϵ1/ϵที่จะซึ่งจะช่วยให้ε = 1 / ( เข้าสู่ระบบเข้าสู่ระบบเข้าสู่ระบบn )ซึ่งเป็น o (1) ดังนั้นเวลาทำงานสุดท้ายของขั้นตอนวิธีการนี้จะเป็นn k + o ( 1 )ตั้งแต่บันทึกnยังเป็นn o ( 1 )logloglognϵ=1/(logloglogn)nk+o(1)lognno(1)


ฉันจินตนาการว่าอัลกอริทึม Coppersmith-Winograd ตกอยู่ในหมวดหมู่นี้หรือไม่
David Harris

2
@DavidHarris: ไม่รู้เกี่ยวกับสิ่งนั้น บางทีใครบางคนที่เข้าใจอัลกอริทึมอาจสามารถทำให้เข้าใจได้ ฉันแค่ตั้งใจจะบอกว่าบ่อยครั้งที่ไม่ได้เลวร้ายอย่างที่เห็น O(nk+ϵ)
Robin Kothari

5

เป็นที่ทราบกันดีว่าผลลัพธ์ของ Coppersmith และ Winograd นั้น - เวลาไม่สามารถรับรู้ได้โดยอัลกอริทึมเดียว แต่ฉันได้อ่านแล้วว่าพวกเขา จำกัด เฉพาะอัลกอริทึมที่ยึดตามตัวตนของ bilinear ที่คล้ายสตาร์เซนดังนั้นฉันจึงไม่ทราบแน่ชัดว่ากระดาษอยู่เบื้องหลังการจ่ายเงินเดือนO(nω)


3

ผมไม่เห็นด้วยกับคำสั่งของคุณได้ในคำถามที่จะไม่ดีที่กำหนดโดย "ค่าที่น้อยที่สุดที่มีความเป็นที่รู้จักกันn ωอัลกอริทึมเมทริกซ์คูณ." เมื่อคนใช้ค่าคงที่นี้มันเป็นเพราะอัลกอริทึมของพวกเขาอาศัยการคูณเมทริกซ์และโดยความซับซ้อนn ωพวกเขาหมายถึง "ความซับซ้อนที่ดีที่สุดของอัลกอริทึมของเราได้รับจากอัลกอริทึมที่ดีที่สุดสำหรับการคูณเมทริกซ์"ωnωnω

ฉันไม่ได้บอกว่ามันเป็นไปไม่ได้ที่จะนิยามอย่างอื่น (เช่นบอกว่าωเป็นความซับซ้อนที่ทำได้ดีที่สุด)ωω

Btw ขอบเขตบนที่รู้จักกันดีที่สุดสำหรับการคูณเมทริกซ์ได้รับการปรับปรุงเป็นถ้าฉันไม่ผิด 2.3737


3
ฉันไม่เห็นว่าความรู้ของมนุษย์สามารถเป็นส่วนหนึ่งของคำจำกัดความทางคณิตศาสตร์ได้อย่างไร
David Harris

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