โครงสร้างทั่วไปส่วนใหญ่ที่การตรวจสอบผลิตภัณฑ์เมทริกซ์สามารถทำได้ในเวลา


18

ในปี 1979 Freivaldsแสดงให้เห็นว่าการตรวจสอบผลิตภัณฑ์แมทริกซ์ที่สนามใด ๆ ที่สามารถทำได้ในการสุ่มเวลา เพิ่มเติมอย่างเป็นทางการให้สามเมทริกซ์ A, B และ C กับรายการจากสนาม F, ปัญหาของการตรวจสอบว่า AB = C มีอัลกอริทึมเวลาO ( n 2 )แบบสุ่มO(n2)O(n2)

สิ่งนี้น่าสนใจเพราะอัลกอริทึมที่รู้จักกันเร็วที่สุดสำหรับเมทริกซ์การคูณนั้นช้ากว่านี้ดังนั้นการตรวจสอบว่า AB = C นั้นเร็วกว่าการคำนวณหรือไม่

ฉันต้องการที่จะรู้ว่าอะไรคือโครงสร้างพีชคณิตทั่วไปที่สุดที่การตรวจสอบผลิตภัณฑ์เมทริกซ์ยังคงมีอัลกอริทึมเวลา (สุ่ม) เนื่องจากอัลกอริทึมดั้งเดิมทำงานได้กับทุกฟิลด์ฉันจึงเดาได้ว่ามันทำงานได้ดีบนโดเมนรวมทั้งหมดO(n2)

คำตอบที่ดีที่สุดที่ฉันสามารถหาได้สำหรับคำถามนี้คือSubcubic Equivalences ระหว่าง Path, Matrix และ Triangle Problemsโดยที่พวกเขาพูดว่า "การตรวจสอบผลิตภัณฑ์เมทริกซ์บนวงแหวนสามารถทำได้ในเวลาสุ่ม [BK95]" ([BK95]: M. Blum และ S. Kannan การออกแบบโปรแกรมที่ตรวจสอบงานของพวกเขา J. ACM, 42 (1): 269–291, 1995. )O(n2)

อย่างแรกคือโครงสร้างที่เป็นวงแหวนที่สุดของปัญหานี้มีอัลกอริธึมแบบสุ่มหรือไม่? ประการที่สองฉันไม่เห็นว่าผลลัพธ์ของ [BK95] แสดงอัลกอริธึมเวลาO ( n 2 )ผ่านวงแหวนทั้งหมดอย่างไร บางคนสามารถอธิบายวิธีการใช้งานได้อย่างไรO(n2)O(n2)


คำถามที่งี่เง่า: เห็นได้ชัดหรือไม่ว่าการยืนยันที่กำหนดขึ้นนั้นยากพอ ๆ กับการคูณ จะทำอย่างไรถ้าคุณได้รับไม่ใช่เพียง A, B และ C แต่ยังเป็นใบรับรองแบบย่อ มันช่วยอะไรได้บ้าง
Jukka Suomela

@ Jukka: ฉันเชื่อว่าอัลกอริทึมที่ดีที่สุดที่กำหนดไว้สำหรับปัญหานี้คือไม่เร็วกว่าการคูณเมทริกซ์ แต่ฉันไม่รู้ว่ามีเหตุผลว่าทำไมควรเป็นกรณีนี้ เกี่ยวกับคำถามที่สองหาก AB ไม่เท่ากับ C ดังนั้นจะมีใบรับรองสั้น ๆ ที่ใช้งานได้: รายการของ C ที่ไม่ถูกต้องและแถวที่เกี่ยวข้องของ A และคอลัมน์ของ B.
Robin Kothari

คำตอบ:


14

นี่คือข้อโต้แย้งสั้น ๆ ว่าทำไมมันถึงใช้งานได้กับวงแหวน การฝึกอบรมได้รับ, B , C , เราตรวจสอบB = Cโดยการเลือกสุ่มบิตเวกเตอร์โวลต์แล้วตรวจสอบว่าB V = Cวี สิ่งนี้จะผ่านอย่างชัดเจนหากA B = CABCAB=CvABv=CvAB=C C

สมมติว่าB CและB V = Cวี Let D = B - C Dเป็นเมทริกซ์มากเลขที่D V = 0 ความน่าจะเป็นที่เกิดขึ้นคืออะไร? ให้D [ i , j ]เป็นรายการที่ไม่ใช่ศูนย์ โดยการสันนิษฐานj D [ i , j ] v [ j ] = 0ABCABv=CvD=ABCDDv=0D[i,j]jD[i,j]v[j]=0 ]ด้วยความน่าจะเป็น ,วี[ J ' ] = 1ดังนั้นเราจึงมี1/2v[j]=1

0D[i,j]+jjD[i,j]v[j]=0

แหวนใด ๆ ภายใต้การดำเนินงานนอกจากนี้มันเป็นกลุ่มสารเติมแต่งเพื่อให้มีความเป็นเอกลักษณ์ของผกผันคือ- D [ ฉัน' , J ' ] ตอนนี้น่าจะเป็นของเหตุการณ์ที่ไม่ดี- D [ ฉัน' , J ' ] = Σ เจJ ' D [ ฉัน' , J ] V [ J ]เป็นอย่างมากที่สุด1 / 2D[i,j]D[i,j]D[i,j]=jjD[i,j]v[j]1/2. (วิธีหนึ่งที่จะเห็นสิ่งนี้คือ "หลักการของการตัดสินใจรอการตัดบัญชี": เพื่อให้ผลรวมเท่ากัน , อย่างน้อยหนึ่งDอื่น ๆ[ i , j ]ต้องไม่ใช่ศูนย์ดังนั้นให้พิจารณาv [ j ]สอดคล้องกับรายการอื่น ๆ ที่ไม่ใช่ศูนย์แม้ว่าเราจะตั้งค่าทั้งหมดของv [ j ]เหล่านี้ยกเว้นรายการใดรายการหนึ่ง อย่างเหมาะสมแต่ก็มีความน่าจะเป็นเท่ากับสำหรับรายการสุดท้ายที่เป็น0หรือ1D[i,j]D[i,j]v[j]v[j]01แต่ยังมีเพียงหนึ่งใน ค่าเหล่านี้สามารถทำให้ผลรวมสุดท้ายเท่ากับ ) ดังนั้นด้วยความน่าจะเป็นอย่างน้อย. 1 / 4เราประสบความสำเร็จพบว่า D วี0เมื่อ Dไม่ใช่ศูนย์ (หมายเหตุ v [ j ]และ v [ j ]ได้รับเลือกอย่างอิสระสำหรับ j j )D[i,j]1/4Dv0Dv[j]v[j]jj

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


ขอบคุณมาก ฉันเห็นประเด็นของคุณเกี่ยวกับความเป็นไปได้ที่จะลดข้อ จำกัด ในโครงสร้างทวีคูณ สำหรับข้อมูลของฉันนี่ไม่ใช่อัลกอริทึมแบบเดียวกันกับในเอกสารต้นฉบับของ Freivalds ใช่ไหม
Robin Kothari

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