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


20

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

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

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

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

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


ฉันไม่แน่ใจว่าการถ่ายกระต่ายเป็นวิทยาการคอมพิวเตอร์หรือไม่
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((fSx)modn)}

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

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

{|n2((fSx)modn)|,,1,0,1,2,,|n2((fSx)modn)|}

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

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

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

  1. (fSxmodn){14n,...,34n}.
  2. fS14nfS{(fS14n)modn,...,fS,...,(fS+14n)modn}
  3. fSn/2modn1/2fS{fS18n,...,fS,...,fS+18n}1/2fSxmodn=fSfS+n/2modn{12n14n,...,12n+14n}

2=O(1)O(logn)

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