ทำไมต้อง Miller-Rabin แทนการทดสอบแบบดั้งเดิมของแฟร์มาต์?


10

จากการพิสูจน์ของมิลเลอร์ - ราบินหากตัวเลขผ่านการทดสอบแบบดั้งเดิมของแฟร์มาต์มันจะต้องผ่านการทดสอบมิลเลอร์ - ราบินด้วยฐานเดียวกัน (ตัวแปรในการพิสูจน์) และความซับซ้อนในการคำนวณก็เหมือนกันa

ต่อไปนี้มาจากการทดสอบแบบดั้งเดิมของแฟร์มาต์ :

ในขณะที่ตัวเลขร์ไมเคิลเป็นอย่างมากที่ทำได้ยากยิ่งกว่าตัวเลขที่สำคัญ, 1มีเพียงพอของพวกเขาว่าการทดสอบ primality แฟร์มาต์มักจะไม่ได้ใช้ในรูปแบบดังกล่าวข้างต้น แต่ส่วนขยายที่มีประสิทธิภาพมากขึ้นอื่น ๆของการทดสอบแฟร์มาต์เช่นเบลลี-PSW, มิลเลอร์ราบินและ Solovay Strassen-มีการใช้กันอย่างแพร่หลาย

ประโยชน์ของ Miller-Rabin คืออะไรและเหตุใดจึงกล่าวได้ว่ามีประสิทธิภาพมากกว่าการทดสอบแบบดั้งเดิมของแฟร์มาต์?

คำตอบ:


7

อัลกอริทึมของ Rabin-Miller ยังทำการทดสอบด้วยตัวเลขว่ามีรากที่ไม่สำคัญของ Unity หรือไม่Z nnZn

หมายเลขคาร์ไมเคิผ่านการทดสอบแฟร์มาต์ (ทุกพื้นฐาน) แต่สำหรับทุกจำนวนคาร์ไมเคิมีอยู่จำนวนหลายดังกล่าวว่าการทดสอบสำหรับรากความสามัคคีล้มเหลวใน(นั่นคือลำดับในที่สุดก็แสดงรากของความสามัคคี)n , 2 , . . , 2 r aanaaa,2a,...,2ra

ดังนั้นเรามีดังต่อไปนี้:

สำหรับการทดสอบของแฟร์มาต์ถ้าจำนวนคอมโพสิตไม่ได้เป็นคาร์ไมเคิแล้วน่าจะเป็นที่การทดสอบจะตรวจสอบ compositeness อย่างน้อย1/2อย่างไรก็ตามการทดสอบจะล้มเหลวหมายเลข Carmichael ทั้งหมด1 / 2n1/2

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


คุณหมายถึง Carmichael number n สามารถประสบความสำเร็จในการทดสอบของแฟร์มาต์ แต่ล้มเหลวใน Rabin-Miller โดยใช้ฐานเดียวกันaหรือไม่?
ZijingWu

หมายเลขคาร์ไมเคิผ่านการทดสอบของแฟร์มาต์ทุกแต่สำหรับบาง's มันจะล้มเหลวการทดสอบราบินมิลเลอร์ (เฉพาะรากของการทดสอบความสามัคคี) aa
Shaull

แต่คาร์ไมเคิจะไม่ผ่านการทดสอบของแฟร์มาต์ทุกถูกต้องหรือไม่ ยกตัวอย่างเช่นจำนวนคาร์ไมเคิแรก 561 = 3 * 11 * 17 จะไม่ผ่านการทดสอบของแฟร์มาต์สำหรับ= 3 หรือ 11 หรือ 17aa
ZijingWu

เมื่อเราพูดว่า "ผ่าน" เราหมายถึงว่าพวกเขาจะไม่ถูกตรวจพบว่าเป็นตัวเลขประกอบ ดังนั้นตัวเลขร์ไมเคิลจะผ่านการทดสอบทุก ฉันคิดว่าเราหมายถึงสิ่งเดียวกัน ในตัวอย่างนี้ 561 จะผ่านการทดสอบของแฟร์มาต์หมายเลขทุก aa
Shaull

1
จุดของการทดสอบที่ "ซับซ้อนมากขึ้น" ก็คือเศษส่วนของฐานซึ่งอยู่ (กล่าวว่าอาจเป็นจำนวนเฉพาะเมื่อไม่มี) มีขีด จำกัด การรับประกันน้อยกว่า 1 เช่นใน Miller-Rabin ก็สามารถแสดงให้เห็นว่า ไม่เกิน 1/4 โกหก (IIRC และขอบเขตค่อนข้างเป็นแง่ร้าย)
vonbrand

0

ฉันเชื่อว่าคำพูดของคุณตรงข้ามกับสิ่งที่เกิดขึ้น ผ่านการทดสอบ Miller-Rabin สำหรับฐานที่กำหนดหมายความว่ามันจะผ่านการทดสอบแฟร์มาต์สำหรับฐานเดียวกัน ในทางตรงกันข้ามมีหลายคอมโพสิตที่จะผ่านการทดสอบแฟร์มาต์สำหรับฐานที่กำหนด แต่จะล้มเหลวในการทดสอบมิลเลอร์ - ราบินสำหรับฐานเดียวกัน

ดูตัวอย่างกระดาษโดย Pomerance / Selfridge / Wagstaff ในหน้า Wikipedia Miller-Rabin:

https://math.dartmouth.edu/~carlp/PDF/paper25.pdf

ที่ซึ่งเราเห็นไดอะแกรมในหน้า 2 ที่แสดงให้เห็นว่าออยเลอร์หลอกเทียมเป็นเซตย่อยของเฟอมาเลียนและปลอมที่แข็งแกร่งเป็นเซตย่อยของพวกนั้น ดังนั้นการทดสอบ Solovay-Strassen จึงฉลาดกว่าการทดสอบแฟร์มาต์และการทดสอบ Miller-Rabin มากกว่าอย่างใดอย่างหนึ่ง พวกเขาทั้งคู่หลีกเลี่ยงปัญหาที่สำคัญของตัวเลข Carmichael พวกเขามีประสิทธิภาพที่เหมือนกันดังนั้นเราจึงต้องการใช้การทดสอบ Miller-Rabin


0

มันควรจะชัดเจนว่า Miller-Rabin ดีกว่าแฟร์มาต์

ด้วยการทดสอบแฟร์มาต์เราตรวจสอบว่า = 1 (modulo p) หรือไม่ap1

กับการทดสอบมิลเลอร์ราบินในการคำนวณเราพบ k และแปลก s เช่นว่า k จากนั้นเราคำนวณโมดูโล p และคำนวณ k คูณสแควร์โมดูโล p ซึ่งเป็นวิธีที่เห็นได้ชัดสวยในการคำนวณ{p-1} p - 1 = s · 2 k a s a p - 1ap1p1=s·2kasap1

ถ้าผลลัพธ์ไม่ใช่ 1 (modulo p) p จะคอมโพสิต แต่ถ้าผลลัพธ์เป็น 1 modulo p เราจะตรวจสอบว่าเราได้ 1 นั้นด้วยกำลังสองของผลกลางที่ไม่ใช่ +1 หรือ -1 และในกรณีนั้น x ก็พิสูจน์แล้วว่าเป็นคอมโพสิต

ดังนั้นเราจะทำงานในปริมาณเท่ากัน แต่มีวิธีการมากมายที่จะพิสูจน์ว่า x ประกอบกัน

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