ขั้นตอนวิธีพีลบหนึ่งของพอลลาร์ด

ขั้นตอนวิธีพีลบหนึ่งของพอลลาร์ด () เป็นขั้นตอนวิธีในการหาตัวประกอบของจำนวนเต็มโดยใช้แนวคิดทางทฤษฎีจำนวนเป็นพื้นฐาน ขั้นตอนวิธีดังกล่าว จอห์น พอลลาร์ด (John Pollard) นำเสนอขึ้นในปี 1974

แนวคิดพื้นฐาน 
ขั้นตอนวิธีพีลบหนึ่งของพอลลาร์ดมีพื้นฐานอยู่บนทฤษฎีบทเล็กของแฟร์มาต์ สำหรับจำนวนเต็ม a ซึ่งเป็นจำนวนเฉพาะสัมพัทธ์กับ p และสำหรับจำนวนเต็มบวก K แล้ว

 

ถ้า x เป็นสมภาคกับ 1 มอดุโลด้วยตัวประกอบหนึ่งของ n เมื่อ n คือจำนวนเต็มที่ต้องการหาตัวประกอบ แล้วตัวประกอบนั้นๆ ย่อมต้องหารตัวหารร่วมมากของ x - 1 และ n ได้ลงตัว
ในการเลือกเต็มบวก K นั้นเพื่อนำไปหาร p - 1 นั้น มันจะให้ K เกิดผลคูณของเลขยกกำลังของจำนวนเฉพาะหลายๆ ตัว โดยมากแล้วมักจะเลือกจำนวนเฉพาะที่จะมาใช้เป็นตัวประกอบนั้นไม่ให้มีค่าเกินค่าๆ หนึ่ง (ในที่นี้จะขอเรียกว่า B) เริ่มจากการสุ่มตัวเลข x มาหนึ่งตัว แล้วแทนค่าของ x ด้วย  เมื่อ w แทนจำนวนเฉพาะที่ใช้เป็นเลขยกกำลัง ซึ่งขั้นตอนวิธีจะหาตัวประกอบของจำนวนเต็ม n ได้ก็ต่อเมื่อตัวหารร่วมมากของ x - 1 และ n ไม่เท่ากับ 1

ขั้นตอนวิธี และอัตราการเติบโต 
 ข้อมูลขาเข้า: จำนวนประกอบ n
 ข้อมูลขาออก: ตัวประกอบของ n หรือข้อผิดพลาด (ในกรณีที่หาตัวประกอบไม่พบ)
 เลือกขอบเขตบน B ของจำนวนเฉพาะที่จะนำมาใช้เป็นตัวประกอบของจำนวนเต็ม' K
 
 สุ่มเลือก a ซึ่งเป็นจำนวนเฉพาะสัมพัทธ์กับ p (ข้อสังเกต: อย่างไรก็ตาม สามารถกำหนดค่าของ a ได้เองเลย เนื่องจากการสุ่มเลือกในขั้นตอนนี้ยังไม่จำเป็นเท่าไรนัก)
  (โดยระหว่างการคำนวณ  ให้ทำการมอดุโลด้วย n ควบคู่ไปด้วย)
 ถ้า 1 < g < n นั่นคือพบตัวประกอบแล้ว ให้คืนค่า g
 ถ้า g = 1 หรือ g = n ให้กลับไปเลือกค่า B ใหม่ที่มากกว่าเดิม แล้วย้อนกลับไปทำขั้นตอนที่ 2 อีกครั้ง หรือแสดงข้อผิดพลาดว่าหาไม่พบ

อัตราการเติบโตของขั้นตอนวิธีนี้คือ O(B × log B × log2n) โดยยิ่ง B มีค่ามาก ยิ่งทำให้ทำงานช้า แต่ทำให้โอกาสที่จะหาตัวประกอบพบนั้นเพิ่มมากขึ้น

ตัวอย่างการหาตัวประกอบ 
ต้องการหาตัวประกอบของ n = 2987 โดยให้ a = 2 และ M = 7! (ในที่นี้จะขอเลือก M = 7 เพื่อความสะดวกในการแสดงตัวอย่างการคำนวณ)
ด้วยขั้นตอนวิธีพีลบหนึ่งของพอลลาร์ด จึงต้องคำนวณหา  ซึ่งคำนวณได้จาก

 

ซึ่งจะได้ลำดับของการคำนวณ ดังนี้

 
 
 
 
 
 

จากนั้น นำค่า 755 ที่ได้ไปลบออกหนึ่ง แล้วคำนวณหาตัวหารร่วมมากระหว่าง 755 -1 กับ n จะได้ว่า

 
นั่นคือ 29 เป็นตัวประกอบหนึ่งของ 2987 นั่นเอง

อ้างอิง

แหล่งข้อมูลอื่น 
 

ขั้นตอนวิธีการแยกตัวประกอบจำนวนเต็ม