การสุ่มจะเร่งความเร็วอัลกอริธึมเมื่อใดและจะ“ ไม่ควร”


39

ข้อพิสูจน์ของ Adleman ว่ามีอยู่ในP / p o l yแสดงให้เห็นว่าหากมีอัลกอริทึมแบบสุ่มสำหรับปัญหาที่ทำงานในเวลาt ( n )ในอินพุตของขนาดnจากนั้นยังมีอัลกอริทึมที่กำหนดขึ้นสำหรับปัญหา ที่รันในเวลาΘ ( t ( n ) n )บนอินพุตของขนาดn [อัลกอริทึมรันอัลกอริทึมแบบสุ่มบนΘ ( n )BPPP/polyt(n)nΘ(t(n)n)nΘ(n)สตริงการสุ่มแบบอิสระ จะต้องมีการสุ่มสำหรับอัลกอริทึมซ้ำที่ดีสำหรับอินพุตเป็นไปได้ทั้งหมด] อัลกอริธึมที่กำหนดขึ้นนั้นไม่เหมือนกัน - มันอาจทำงานแตกต่างกันไปตามขนาดอินพุตที่แตกต่างกัน ดังนั้นการโต้แย้งของ Adleman แสดงให้เห็นว่า - หากไม่มีใครสนใจเรื่องความเหมือนกัน - การสุ่มสามารถเร่งความเร็วอัลกอริธึมด้วยปัจจัยที่เป็นเชิงเส้นในขนาดอินพุต2n

มีตัวอย่างที่เป็นรูปธรรมใดบ้างที่การสุ่มแบบเร่งความเร็วในการคำนวณ (เพื่อความรู้ที่ดีที่สุดของเรา)

ตัวอย่างหนึ่งคือการทดสอบเอกลักษณ์พหุนาม ที่นี่อินพุตคือวงจรคำนวณขนาด n คำนวณพหุนาม m-variate บนสนามและภารกิจคือค้นหาว่าพหุนามเป็นศูนย์เหมือนกันหรือไม่ อัลกอริทึมแบบสุ่มสามารถประเมินพหุนามในจุดสุ่มในขณะที่อัลกอริทึมที่ดีที่สุดที่เรารู้จัก (และอาจดีที่สุดที่มีอยู่) ประเมินพหุนามในหลาย ๆ จุด

ตัวอย่างหนึ่งคือขั้นต่ำต้นไม้ที่อัลกอริทึมแบบสุ่มที่ดีที่สุดโดย Karger-Klein-Tarjan เป็นเส้นเวลาทอด (และน่าจะเป็นข้อผิดพลาดที่มีขนาดเล็กชี้แจง!) ในขณะที่ขั้นตอนวิธีการกำหนดที่ดีที่สุดโดย Chazelle ทำงานในเวลา ( αเป็นฟังก์ชัน Ackermann ผกผันดังนั้นการเร่งความเร็วการสุ่มจึงมีขนาดเล็กมาก) สิ่งที่น่าสนใจคือมันถูกพิสูจน์โดย Pettie และ Ramachandran ว่าหากมีอัลกอริธึมเชิงเส้นเชิงเวลาที่ไม่สม่ำเสมอสำหรับต้นไม้ที่ทอดยาวขั้นต่ำO(mα(m,n))α

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


5
มีความเกี่ยวข้องอย่างใกล้ชิด: ปัญหาใน BPP ไม่เป็นที่รู้จักใน P
usul

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

1
ภายใต้สมมติฐานความแข็งที่สมเหตุสมผลคุณสามารถป้อนการสุ่มอัลกอริธึมจากเครื่องกำเนิดไฟฟ้าเทียมเทียมอย่างไรก็ตามเพื่อให้ได้อัลกอริธึมที่กำหนดขึ้นจริงจากนั้นคุณต้องรันอัลกอริทึมบนเมล็ดที่เป็นไปได้ทั้งหมด สิ่งนี้ทำให้เสียเวลาทำงาน!
Dana Moshkovitz

นอกจากประเด็นของ Dana แล้วฉันคิดว่าการแยกแยะความแตกต่างของ BPP นั้น PRG จำเป็นต้องใช้เวลามากกว่าอัลกอริธึมดั้งเดิม (แม้ว่าฉันจะไม่รู้ว่าช่องว่างนั้นจะเป็นอย่างไร) นอกจากนี้อาจจะแสดงให้เห็นถึง (พื้นฐาน?) ช่องว่างระหว่างความเชื่อมั่นและความมั่นใจชี้แจงสูง: มันพอเพียงที่จะทำซ้ำแบบสุ่มอัลกอริทึมครั้ง (สำหรับค่าคงที่ใด ๆ ) เพื่อให้ได้ความถูกต้องน่าจะเป็น2 - O ( )แต่ความต้องการรุ่นที่กำหนด เพื่อตรวจสอบเมล็ดที่มีพหุนามทั้งหมด cc2O(c)
usul

@DanaMoshkovitz มันขึ้นอยู่กับว่าคุณเข้าหาสิ่งนี้จากมุมมองทางทฤษฎีหรือมุมมองของผู้ประกอบการ จากมุมมองของผู้ประกอบการไม่คุณไม่จำเป็นต้องทำเช่นนั้น ดูการก่อสร้างฉันร่างในcs.stackexchange.com/a/41723/755ซึ่งเรียกใช้อัลกอริทึมในเมล็ดเท่านั้น ภายใต้โมเดลออราเคิลแบบสุ่มสามารถแสดงให้เห็นว่าไม่มีการเพิ่มขึ้นของรันไทม์แบบซีมโทติคและไม่มีฝ่ายตรงข้ามที่มีขอบเขต จำกัด การคำนวณมีแนวโน้มว่าจะสามารถค้นหาอินพุตใด ๆ นี่อาจจะดีพอสำหรับการใช้งานจริงทั้งหมด O(1)
DW

คำตอบ:


28

ฉันไม่รู้ว่าการสุ่ม "ควร" หรือ "ไม่ควร" ช่วยได้อย่างไรการทดสอบแบบจำนวนเต็มสามารถทำได้ในเวลาโดยใช้การสุ่ม Miller-Rabin ในขณะที่เท่าที่ฉันรู้ดีที่สุด อัลกอริธึมที่กำหนดขึ้นคือ˜ O ( n 4 )สมมติว่า GRH (กำหนดมิลเลอร์ - ราบิน) หรือ˜ O ( n 6 )โดยไม่มีเงื่อนไข (ตัวแปรของ AKS)O~(n2)O~(n4)O~(n6)


แม้ว่าจะมีเหตุผลที่เชื่อได้ว่าพยานที่มีขนาดเล็กที่สุดสำหรับเป็นของบันทึกคำสั่งซื้อN log log Nซึ่งจะให้อัลกอริทึม˜ O ( n 3 ) แต่สิ่งนี้ยังไม่ได้รับการพิสูจน์แม้จะอยู่ภายใต้การคาดคะเนจำนวนเชิงทฤษฎีเช่นสายพันธุ์ของ RH NlogNloglogNO~(n3)
Emil Jeřábekสนับสนุน Monica

ปัญหาในหลอดเลือดดำที่คล้ายกันคือการทดสอบพหุนามลบล้างไม่ได้ในสนาม จำกัด ซึ่งอัลกอริธึมที่กำหนดขึ้นมาอีกครั้งนั้นมีขอบเขตแย่กว่าอัลกอริธึมแบบสุ่ม แต่ฉันจำรายละเอียดไม่ได้
Emil Jeřábekสนับสนุน Monica

19

1+ϵ

ตัวอย่างแรกของกลยุทธ์แบบสุ่มคือ Dyer, Frieze และ Kannan และผลลัพธ์ความแข็งสำหรับอัลกอริธึมที่กำหนดขึ้นโดยBárányและFüredi อลิสแตซินแคลมีเอกสารประกอบการบรรยายที่ดีเกี่ยวกับเรื่องนี้

ฉันไม่แน่ใจว่าฉันเข้าใจส่วน "และไม่ควร" ส่วนหนึ่งของคำถามดังนั้นฉันไม่แน่ใจว่าสิ่งนี้เหมาะกับการเรียกเก็บเงิน


1
[n/logn]n

9

ฉันไม่รู้ว่าสิ่งนี้จะตอบคำถามของคุณ (หรืออย่างน้อยก็ส่วนหนึ่ง) แต่สำหรับตัวอย่างจริงของโลกที่สุ่มสามารถให้ความเร็วสูงขึ้นอยู่ในปัญหาการเพิ่มประสิทธิภาพและความสัมพันธ์กับอาหารกลางวันไม่มีฟรี ( NFL ) ทฤษฎีบท

มีกระดาษ"อาจไม่ใช่อาหารกลางวันฟรี แต่อย่างน้อยอาหารเรียกน้ำย่อยฟรี"ซึ่งแสดงให้เห็นว่าการสุ่มใช้อัลกอริทึม (การเพิ่มประสิทธิภาพ) สามารถมีประสิทธิภาพที่ดีขึ้น

บทคัดย่อ:

f:XYXYเป็นเซต จำกัด ผลลัพธ์นี้ถูกเรียกว่า [ไม่มี] ทฤษฎีบทอาหารกลางวันฟรี มีการนำเสนอสถานการณ์การเพิ่มประสิทธิภาพที่แตกต่างกันที่นี่ มันเป็นที่ถกเถียงกันอยู่ว่าทำไมภาพจำลองที่ไม่มีทฤษฎีอาหารกลางวันแบบอิสระไม่ได้จำลองแบบการเพิ่มประสิทธิภาพชีวิตจริง สำหรับสถานการณ์ที่สมจริงยิ่งขึ้นมันเป็นเหตุผลว่าทำไมเทคนิคการปรับให้เหมาะสมนั้นแตกต่างกันในประสิทธิภาพของพวกเขา ตัวอย่างเล็ก ๆ การอ้างสิทธิ์นี้พิสูจน์แล้ว

อ้างอิง:

  1. ไม่มีทฤษฎีอาหารกลางวันฟรีสำหรับการปรับให้เหมาะสม ( ทฤษฎีบทของNFLดั้งเดิมสำหรับการปรับให้เหมาะสม)
  2. อาจไม่ใช่อาหารกลางวันฟรี แต่อย่างน้อยอาหารเรียกน้ำย่อยฟรี
  3. FF
  4. ในชั้นเรียนของฟังก์ชั่นที่ไม่มีผลลัพธ์อาหารกลางวันฟรีถือ (มันพิสูจน์แล้วว่าเศษของส่วนย่อยที่เป็นถ้วยมีขนาดเล็กเลินเล่อ)
  5. ฟังก์ชั่นกว้างสองคลาสที่ไม่มีผลลัพธ์อาหารกลางวันฟรีไม่ถือ (แสดงว่าผลNFLไม่ได้ใช้กับชุดของฟังก์ชั่นเมื่อความยาวคำอธิบายของฟังก์ชันมีขอบเขตเพียงพอ)
  6. อาหารกลางวันต่อเนื่องฟรีและการออกแบบขั้นตอนวิธีการปรับให้เหมาะสมที่เหมาะสมที่สุด (แสดงให้เห็นว่าสำหรับโดเมนต่อเนื่อง [รุ่นอย่างเป็นทางการของ] NFLไม่ได้ถือทฤษฎีบทอาหารกลางวันฟรีนี้มีพื้นฐานมาจากแนวคิดของฟังก์ชันการออกกำลังกายแบบสุ่ม )
  7. นอกเหนือไม่มีอาหารกลางวันฟรี: อัลกอริทึมที่สมจริงเรียนตามอำเภอใจปัญหา (แสดงให้เห็นว่า ".. [เป็น] LL ละเมิดไม่มีอาหารกลางวันฟรีทฤษฎีบทสามารถแสดงเป็นกระจายไม่ใช่บล็อกสม่ำเสมอทั่วย่อยปัญหาที่มีถ้วย ")
  8. อัลกอริธึมเกี่ยวกับการวิเคราะห์แบบจับกลุ่มและทฤษฎีแบบไม่มีอาหารกลางวัน ("[..t]) ดังนั้นผลลัพธ์สำหรับการทำซ้ำตามเวลาที่ไม่ต้องมีการทบทวนอาจไม่เป็นจริงสำหรับกรณีของการทบทวนคดีถ้วยที่จำเป็นสำหรับการพิสูจน์ทฤษฎีบทของ NFL (มาร์แชลล์และฮินตัน, 2010) ")
  9. ไม่มีอาหารกลางวันและอัลกอริทึมแบบสุ่มฟรี
  10. ไม่มีอาหารกลางวันและเกณฑ์มาตรฐานฟรี (ชุดทฤษฎี - มันเป็นหลักเกณฑ์ทั่วไปที่ไม่เฉพาะเจาะจงกับถ้วย - แต่ยังตั้งข้อสังเกตว่า (ไม่ใช่เรื่องไม่สำคัญ) - อัลกอริธึมแบบสุ่มสามารถทำได้ดีกว่าอัลกอริธึมกำหนดโดยเฉลี่ย "[.. ] ความน่าจะเป็นไม่เพียงพอที่จะยืนยันผลข้อ จำกัด ของเอ็นเอฟแอลในกรณีทั่วไป [.. ] บทความนี้ทิ้งความน่าจะเป็นไปได้เลือกกรอบการตั้งค่าเชิงทฤษฎีที่ จำกัด ข้อ จำกัด ทางทฤษฎีของการวัด

สรุปเกี่ยวกับอาหารกลางวันฟรี (และอาหารกลางวันฟรี) โดย David H. Wolpert อาหารค่ำราคาเท่าไหร่? ( โปรดทราบว่าทฤษฎีบทประเภท NFLไม่เคยระบุ " ราคา " จริงเนื่องจากการพิสูจน์ชนิด)

specificaly สำหรับการปรับให้เหมาะสมทั่วไป (GO):

  1. XZXZ

  2. f:XZ

  3. mf

    dm={dm(1),dm(2),...,dm(m)}
    t
    dm(t)={dmX(t),dmZ(t)}
    dmZ(t)f[dmX(t)]
  4. a={dtdmX(t):t=0..m}

  5. C(f,dm)

  6. C(.,.)

CfCfC(f,dm)f=f

ในที่สุดคำพูดที่เรียบง่าย (และไม่ใช่เรื่องง่าย) ทำไมการสุ่ม (ในรูปแบบใดรูปแบบหนึ่ง) อาจให้ประสิทธิภาพที่เหนือกว่าผ่านอัลกอริธึมที่กำหนดอย่างเคร่งครัด

  1. ในบริบทของการปรับให้เหมาะสม (แม้ว่าจะไม่ถูก จำกัด ในเรื่องนี้) ขั้นตอนการค้นหาแบบสุ่มสามารถหลบหลีก extrema โดยเฉลี่ยได้ ดีกว่าการค้นหาที่กำหนดขึ้นและเข้าถึง global-extrema
  2. 2AAAAA

1

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


-5

หากคุณมีอัลกอริทึมที่ใช้การสุ่มคุณสามารถแทนที่ด้วยอัลกอริทึมที่กำหนดโดยใช้ตัวเลขหลอกแบบสุ่ม: ใช้คำอธิบายของปัญหาคำนวณรหัสแฮชใช้รหัสแฮชนั้นเป็นเมล็ดสำหรับเครื่องกำเนิดเลขสุ่มที่ดี . ในทางปฏิบัติจริง ๆ แล้วเป็นสิ่งที่น่าจะเกิดขึ้นเมื่อมีคนใช้อัลกอริทึมโดยใช้การสุ่ม

หากเราไม่ใส่รหัสแฮชความแตกต่างระหว่างอัลกอริทึมนี้และอัลกอริธึมที่ใช้การสุ่มอย่างแท้จริงคือฉันสามารถทำนายลำดับของการสุ่มตัวเลขที่สร้างขึ้นและฉันสามารถสร้างปัญหาได้เช่นกัน ทำให้การตัดสินใจที่เลวร้ายที่สุดที่เป็นไปได้ ตัวอย่างเช่นสำหรับ Quicksort ที่มี pivot แบบสุ่มหลอกฉันสามารถสร้างอาร์เรย์อินพุตที่ pivot แบบสุ่มหลอกจะค้นหาค่าที่เป็นไปได้ที่ใหญ่ที่สุดในอาร์เรย์ ด้วยการสุ่มอย่างแท้จริงที่เป็นไปไม่ได้

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


ฉันใหม่กับ cstheory.SE ดังนั้นผู้ลงคะแนนเสียง - มีอะไรผิดปกติกับคำตอบนี้?
galdre

3
มีสองสิ่งที่ไม่ถูกต้อง: (1) เราไม่รู้วิธีสร้างตัวเลขหลอกเทียมโดยทั่วไป (2) แม้ว่าเราจะรู้วิธีสร้างตัวเลขเหล่านั้น ตัวเลขสุ่มหลอกที่ใช้ในทางปฏิบัติไม่ได้รับประกันว่าจะทำงานได้ในทางทฤษฎี สิ่งที่เรารู้ก็คือพวกมันดูเหมือนจะทำงานสังเกตุ (อันที่จริง PRNG ส่วนใหญ่ที่ใช้งานจริงสามารถใช้งานไม่ได้ดังนั้นจึงไม่ปลอดภัยสำหรับการใช้งานโดยทั่วไปเฉพาะเมื่อคุณไม่ได้พยายามทำลายมันโดยเฉพาะ)
Yuval Filmus

2
cstheory.se เป็นเรื่องเกี่ยวกับวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี * ไม่ใช่การฝึกฝนของการเขียนโปรแกรม ชอบหรือไม่ทั้งสองพื้นที่ค่อนข้างแยกจากกัน
Yuval Filmus

2
@YuvalFilmus: ตัวสร้างสเต็ปสลับที่คิดค้นโดย C. Gunther ย้อนกลับไปในปี 1987 ยังไม่ได้ถูกทำลาย (ยังไม่มีการแบ่งสาธารณะและฉันสงสัย NSA ได้ทำลายมันด้วย) ยี่สิบแปดปีเป็นเวลานานที่จะไม่แตกสลายฉันประหลาดใจที่เครื่องกำเนิดไฟฟ้าเรียบง่าย (ประตู LFSR สามประตูและประตู XOR หนึ่งประตูประตูเรียบง่ายแค่ไหน?) ยังไม่พังและยังไม่ได้ใช้บ่อยขึ้น
วิลเลียม Hird

2
@ WilliamHird: ขึ้นอยู่กับคำจำกัดความของ "แตกหัก" ดูเหมือนว่าจะถูกทำลายจริง ๆ (มากกว่าหรือน้อยกว่าในระดับเดียวกันกับครอบครัว A5 / x ที่เกี่ยวข้องมีประสิทธิภาพมากขึ้นและใช้กันอย่างแพร่หลาย) ดู crypto.stackexchange.com/a/342
Emil Jeřábekสนับสนุน Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.