อัลกอริทึมในการไล่ล่าเป้าหมายที่กำลังเคลื่อนที่


20

สมมติว่าเรามีกล่องดำfซึ่งเราสามารถสอบถามและรีเซ็ต เมื่อเราตั้งค่าfรัฐfSของfถูกตั้งค่าเป็นองค์ประกอบได้รับการแต่งตั้งอย่างสม่ำเสมอโดยการสุ่มจากชุดที่

{0,1,...,n−1}
ที่nได้รับการแก้ไขและรู้จักการให้Ffในแบบสอบถามf , องค์ประกอบx (เดา) จาก
{0,1,...,n−1}
ให้บริการและความคุ้มค่าที่ส่งกลับเป็นn นอกจากนี้สถานะของถูกกำหนดเป็นค่าโดยที่ถูกเลือกแบบสุ่มโดยสุ่มจาก(fS−x)modnfSffS′=fS±kk
{0,1,2,...,⌊n/2⌋−((fS−x)modn)}

โดยการคาดเดาสุ่มเหมือนกันกับแต่ละแบบสอบถามคาดว่าจะต้องให้คาดเดาก่อนที่จะเดินทางกับความแปรปรวน (ตามที่ระบุไว้โดยไม่ต้องพิสูจน์)nfS=xn2−n

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

การแก้ปัญหาที่มีประสิทธิภาพสำหรับปัญหานี้อาจมีผลกระทบต่อการประหยัดต้นทุนที่สำคัญสำหรับการถ่ายภาพที่กระต่าย


ฉันไม่แน่ใจว่าการถ่ายกระต่ายเป็นวิทยาการคอมพิวเตอร์หรือไม่
— Dave Clarke

6
@DaveClarke แต่ถ้าคุณสามารถยิงกระต่ายคุณได้แก้ปัญหาการหยุดสำหรับกระต่าย
— Patrick87

@DaveClarke ไม่ยิงดาวเทียมขึ้นสู่อวกาศ แต่การคำนวณตำแหน่งดาวเทียมนั้น คำถามนี้ไม่เหมือนสิ้นเชิงกับการเข้ารหัส
— Gilles 'หยุดความชั่วร้าย'

คำตอบ:


13

ก่อนอื่นเลยฉันจะสันนิษฐานไว้ก่อนว่า

นอกจากนี้รัฐของฉถูกกำหนดเป็นค่าF ' S = ฉS ± kที่kจะถูกเลือกอย่างสม่ำเสมอโดยการสุ่มจาก{ 0 , 1 , 2 , . . , ⌊ n / 2 ⌋ - ( ( f S - x )fSffS′=fS±kk

{0,1,2,...,⌊n/2⌋−((fS−x)modn)}

คุณหมายถึงจริง

นอกจากนี้สถานะของfถูกกำหนดเป็นค่าf ′ S = f S + kfSfโดยที่ kถูกสุ่มเลือกอย่างสม่ำเสมอจาก { - | ⌊ nfS′=fS+kmodnk

{−|⌊n2⌋−((fS−x)modn)|,…,−1,0,1,2,…,|⌊n2⌋−((fS−x)modn)|}

มิฉะนั้นจะไม่ได้ทั้งหมดที่ชัดเจนว่าเสมอถือและวิธีการว่าฉS ± kพฤติกรรมfS∈{0,...,n−1}fS±k

การใช้สิ่งนี้ปัญหาโดยทั่วไปมาลงที่ "คิดถึงมากที่สุด" สังเกตว่ายิ่งเรายิงกระต่ายมากเท่าไหร่ก็ยิ่งกระโดดได้มากขึ้นเท่านั้น ในกรณีที่รุนแรงเรามีfS−x=±1modn−(⌊n/2⌋±1)(⌊n/2⌋±1)fS−xmodn=⌊n/2⌋

เราถูกทิ้งให้อยู่กับการค้นหาขั้นตอนการขาดหายไปในแต่ละช็อต ฉันเสนอ "การค้นหาแบบไบนารี" อย่างง่าย (ฉันจะละเว้นการปัดเศษ) จะดำเนินการอย่างคร่าว ๆ ดังนี้:

  1. (fS−xmodn)∈{14n,...,34n}.
  2. fS14nfS′∈{(fS−14n)modn,...,fS,...,(fS+14n)modn}
  3. fS−n/2modn1/2fS′{fS−18n,...,fS,...,fS+18n}1/2fS′−xmodn=fS′−fS+n/2modn∈{12n−14n,...,12n+14n}

2=O(1)O(log⁡n)

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