Parametrik qidirish - Parametric search

Loyihalash va tahlil qilishda algoritmlar uchun kombinatorial optimallashtirish, parametrli qidirish tomonidan ixtiro qilingan texnikadir Nimrod Megiddo  (1983 ) o'zgartirish uchun qaror algoritmi (ushbu optimallashtirish muammosi berilgan chegaradan yaxshiroq sifatli echimga egami?) ga optimallashtirish algoritmi (eng yaxshi echimni toping). U optimallash muammolarini hal qilish uchun tez-tez ishlatiladi hisoblash geometriyasi.

Texnik

Parametrik qidirishning asosiy g'oyasi - bu simulyatsiya sinov algoritmi bu raqamli parametrni kiritadi , go'yo u (noma'lum) optimal echim qiymati bilan ishlayotgandek uning kiritilishi sifatida. Ushbu test algoritmi o'zini tutishi kerak uzluksiz qachon va uning parametrlari bo'yicha ishlash faqat ning oddiy taqqoslashlari bilan boshqa hisoblangan qiymatlar bilan yoki past daraja belgisini sinab ko'rish orqali polinom funktsiyalari ning . Algoritmni simulyatsiya qilish uchun ushbu taqqoslash yoki testlarning har birini simulyatsiya qilish kerak, garchi simulyatsiya qilingan algoritm noma'lum.Har bir taqqoslashni simulyatsiya qilish uchun parametrli qidirish ikkinchi algoritmni qo'llaydi, a qaror algoritmi, bu kirish sifatida boshqa raqamli parametrni oladi , va bu aniqlanadi yuqorida, pastda yoki optimal echim qiymatiga teng .

Qaror algoritmining o'zi uzluksiz ravishda o'zini tutishi sababli , xuddi shu algoritm sinov algoritmi sifatida ham ishlatilishi mumkin. Biroq, ko'plab dasturlarda boshqa sinov algoritmlari qo'llaniladi (ko'pincha, taqqoslashni saralash algoritmlari). Parametrik qidirish texnikasining rivojlangan versiyalarida a parallel algoritm qaror algoritmi asoslarini sonini sezilarli darajada kamaytirish uchun test algoritmi sifatida va taqlid qilish kerak bo'lgan taqqoslashlarni guruhlarga bo'ling.

Ketma-ket test algoritmi

Parametrik qidirish texnikasining eng asosiy shaklida test algoritmi ham, qaror qabul qilish algoritmi ham ketma-ket (parallel bo'lmagan) algoritmlar, ehtimol bir-birlari bilan bir xil algoritmdir. Texnika test algoritmini bosqichma-bosqich simulyatsiya qiladi, chunki uning parametri sifatida (noma'lum) optimal echim qiymati berilganida ishlaydi . Har doim simulyatsiya sinov algoritmi uning parametrini taqqoslaydigan bosqichga yetganda boshqa raqamga , bu qadamni raqamli taqqoslash orqali amalga oshira olmaydi, chunki u nimani bilmaydi bu. Buning o'rniga u qaror algoritmini parametr bilan chaqiradi , va taqqoslash natijasini aniqlash uchun qaror algoritmi natijasidan foydalanadi. Shunday qilib, simulyatsiya vaqti sinov va qaror algoritmlari uchun vaqtlarning ko'payishiga tenglashadi. Sinov algoritmi optimal echim qiymatida uzluksiz harakat qiladi deb taxmin qilinganligi sababli, parametr qiymatlaridan biri bo'lmasa, uni aniq taqlid qilish mumkin emas qaror qabul qilish algoritmiga o'tkazilishi, aslida optimal echim qiymatiga teng. Agar bu sodir bo'lsa, qaror algoritmi tenglikni aniqlay oladi va echimning eng maqbul qiymatini keyinchalik chiqishi uchun tejaydi, agar test algoritmi polinom belgisini bilishi kerak bo'lsa , buni yana o'tish orqali simulyatsiya qilish mumkin polinomning ildizlari echimning noma'lum qiymati ushbu ildizlardan biri ekanligini yoki yo'q bo'lsa, qaysi ikkita ildiz o'rtasida joylashganligini aniqlash uchun qaror algoritmiga.

Ikkalasi tomonidan ko'rib chiqilgan misol Megiddo (1983) va van Oostrum va Veltkamp (2002) toq sonli zarrachalar tizimiga taalluqli bo'lib, ularning barchasi bir chiziq bo'ylab har xil doimiy tezlikda o'ngga qarab harakatlanadi. Zarrachalarning medianasi ham to'g'ri harakatga ega bo'ladi, lekin doimiy tezlikka ega emas, balki qismli chiziqli, chunki har xil zarrachalar har xil vaqtda medianaga aylanadi. Dastlab zarralar va ularning medianasi chap tomonda joylashgan kelib chiqishi chiziqning natijasi, va oxir-oqibat ular va ularning medianlari kelib chiqishi o'ng tomonida bo'ladi. Muammo vaqtni hisoblashda bunda medianing kelib chiqishi aniq yotadi.A chiziqli vaqt qaror algoritmini aniqlash oson: istalgan vaqt uchun , har bir zarrachaning vaqtdagi o'rnini hisoblash mumkin va kelib chiqishning har ikki tomonidagi zarralar sonini hisoblang. Agar chap tomonda o'ngga qaraganda ko'proq zarralar bo'lsa, unda , va agar chap tomonga qaraganda o'ngda ko'proq zarralar bo'lsa, unda . Ushbu qaror algoritmining har bir bosqichi kirish parametrini taqqoslaydi zarralardan biri kelib chiqishini kesib o'tgan vaqtgacha.

Ushbu qaror algoritmidan test algoritmi va parametrli qidiruvning qaror algoritmi sifatida foydalanish maqbul vaqtni topish algoritmiga olib keladi kvadratik umumiy vaqt ichida. Parametr uchun qaror algoritmini taqlid qilish , simulyatsiya har bir zarracha uchun uning kesishish vaqti oldin yoki keyin ekanligini aniqlashi kerak va shuning uchun vaqt kelib chiqishi chap yoki o'ng tomonda bo'ladimi . Bitta zarracha uchun bu savolga javob berish - zarrachaning o'tish vaqtini noma'lum optimal kesishish vaqti bilan taqqoslash - Parametr bilan zarrachani kesib o'tish vaqti bilan bir xil qaror algoritmini ishga tushirish orqali amalga oshirish mumkin, shuning uchun simulyatsiya zarralarni kesib o'tish vaqtining har biri bo'yicha qaror algoritmini bajarishni tugatadi, ulardan biri eng maqbul o'tish vaqti bo'lishi kerak. qaror algoritmi bir marta chiziqli vaqtni oladi, shuning uchun uni har bir o'tish vaqtida alohida bajarish kvadratik vaqtni oladi.

Parallel sinov algoritmi

Sifatida Megiddo (1983) allaqachon kuzatilgan, simulyatsiya qilingan sinov algoritmini samarali bilan almashtirish orqali parametrli qidirish texnikasini sezilarli darajada tezlashtirish mumkin parallel algoritm, masalan parallel tasodifiy kirish mashinasi (PRAM) parallel hisoblash modeli, bu erda protsessorlar to'plami a da sinxronlikda ishlaydi umumiy xotira, barchasi turli xil xotira manzillarida bir xil operatsiyalar ketma-ketligini bajaradi. Agar test algoritmi PRAM algoritmidan foydalanilsa protsessorlar va vaqt talab etadi (anavi, har bir protsessor bitta operatsiyani bajaradigan qadamlar), so'ngra har bir qadam eng ko'p natijalarni aniqlash uchun qaror algoritmi yordamida taqlid qilinishi mumkin. raqamli taqqoslashlar. Baholashi kerak bo'lgan taqqoslashlar to'plamidan o'rtacha yoki o'rtacha qiymatni topib, ushbu yagona qiymatni qaror algoritmiga o'tkazib, qarorning bitta chaqirig'i bilan taqqoslashlarning yarmini yoki deyarli yarmini yo'q qilish mumkin. algoritm. Simulyatsiya talab qiladigan taqqoslashlar to'plamini shu tarzda bir necha marta ikki baravar qisqartirish orqali hech kim qolmaguncha natijalarni taqlid qilish mumkin. faqat raqamli taqqoslashlar qaror algoritmiga chaqiradi. Shunday qilib, bu holda parametrik qidirish uchun umumiy vaqt bo'ladi (simulyatsiyaning o'zi uchun) ortiqcha vaqt qaror algoritmiga chaqiradi (uchun taqqoslash partiyalari, olish har bir partiyaga qo'ng'iroqlar). Ko'pincha, shu tarzda echilishi mumkin bo'lgan muammo uchun PRAM algoritmining vaqtni qayta ishlash mahsuloti ketma-ket qaror algoritmi uchun vaqt bilan taqqoslanadi va parallel vaqt polilogaritmik, faqat polylogarithmic factor tomonidan qaror algoritmidan sekinroq bo'lgan parametrik qidirish uchun umumiy vaqtga olib keladi.

Medianing kesishish vaqtini topish masalasi misolida harakatlanuvchi zarralar, ketma-ket sinov algoritmi parallel bilan almashtirilishi mumkin tartiblash algoritm parametri berilgan vaqtda zarrachalarning pozitsiyalarini saralaydigan, so'ngra median zarrachani aniqlash va joylashish belgisini topish uchun tartiblangan tartibdan foydalanadigan algoritm.Bu algoritm uchun eng yaxshi tanlov (nazariy tahliliga ko'ra, agar amalda emas) bu tarmoqni saralash ning Ajtai, Komlos va Szemeredi  (1983 ). Bu raqam PRAM algoritmi sifatida talqin qilinishi mumkin protsessorlar kirish uzunligiga mutanosib , va parallel qadamlar soni logaritmik bo'ladi. Shunday qilib, ushbu algoritmni ketma-ket simulyatsiya qilish vaqt talab etadi bilan birga simulyatsiya uchun taqqoslash partiyalari, ularning har biri bilan ishlash mumkin chiziqli vaqtdagi qaror algoritmiga qo'ng'iroq qiladi. Ushbu vaqt chegaralarini birlashtirish, beradi parametrik qidirish uchun umumiy vaqt. Bu muammo uchun eng maqbul vaqt emas - xuddi shu muammoni medianing kesishish vaqti zarrachalarning kesishish vaqtining medianiga tengligini kuzatish orqali tezroq hal qilish mumkin - ammo xuddi shu uslub boshqa murakkab optimallashtirishda ham qo'llanilishi mumkin. muammolar va ko'p hollarda ushbu muammolar uchun eng tez ma'lum bo'lgan kuchli polinom algoritmini beradi.

AKS saralash tarmog'ini tahlil qilishda katta doimiy omillar kelib chiqqanligi sababli, ushbu algoritmni sinov algoritmi sifatida ishlatib parametrli qidirish amaliy emas. Buning o'rniga, van Oostrum va Veltkamp (2002) ning parallel shaklidan foydalanishni taklif eting tezkor (kirishni bir necha marta ikkita kichik guruhga ajratib, so'ngra har bir kichik to'plamni rekursiv ravishda saralash algoritmi). Ushbu algoritmda bo'lim bosqichi katta darajada parallel (har bir kirish elementi tanlangan pivot elementi bilan taqqoslanishi kerak) va ikkita rekursiv chaqiruv bir-biriga parallel ravishda amalga oshirilishi mumkin. Olingan parametrli algoritm .da sekinroq eng yomon holat AKS saralash tarmog'iga asoslangan algoritmdan ko'ra. Biroq van Oostrum va Veltkamp ilgari qaror qilingan algoritmlarning natijalari saqlanib qolinsa (faqat shu natijalar bilan hal qilinmagan taqqoslashlar qaror algoritmiga qo'shimcha qo'ng'iroqlarni keltirib chiqaradi) va taqlid qilingan test algoritmi tomonidan sinov qilingan taqqoslash qiymatlari etarlicha teng taqsimlanadi, keyin algoritm o'sib borishi bilan har bir qadamda hosil bo'lgan echilmagan taqqoslashlar soni kichik bo'ladi. Ushbu evristik tahlilga asoslanib va ​​algoritmni amalga oshirish bilan o'tkazilgan eksperimental natijalarga ko'ra, ular tezkor kontsertga asoslangan parametrli qidirish algoritmi eng yomon tahlillardan ko'ra amaliyroq bo'lishini ta'kidlaydilar.

Sinxronlashtirilmagan tartiblash

Koul (1987) test algoritmi taqqoslash tartiblash algoritmi bo'lgan holatlar uchun (masalan, masalan) parametrli qidirish texnikasini yanada optimallashtirdi. AKS saralash tarmog'i va uning o'rnida ishlatilishi mumkin bo'lgan boshqa ba'zi bir saralash algoritmlari uchun Koul simulyatsiya qilingan protsessorlarni bir-biri bilan sinxronlashtirishni davom ettirish zarur emasligini kuzatadi: buning o'rniga ulardan ba'zilari saralash algoritmi orqali uzoqroq yurishga imkon berishi mumkin. boshqalar esa taqqoslash natijalari aniqlanishini kutishadi. Ushbu printsipga asoslanib, Koul saralash algoritmini simulyatsiyasini o'zgartiradi, shunda hammasi hal qilinmagan taqlid qilingan taqqoslashlar to'plamini saqlab qoladi, bu hammasi sinov algoritmining bir xil parallel vaqt qadamidan kelib chiqishi mumkin emas. Parametrik qidiruvning sinxronlashtirilgan parallel versiyasida bo'lgani kabi, o'rtacha taqqoslash qiymatini topish va ushbu qiymat bo'yicha qaror algoritmini chaqirish orqali ushbu taqqoslashlarning yarmini hal qilish mumkin. Keyinchalik, hal qilinmagan taqqoslashlar to'plami bo'sh bo'lgunga qadar ushbu yarmini qisqartirish protsedurasini takrorlash o'rniga, Cole echilgan taqqoslashlarni kutib turgan protsessorlarga, taqqoslash kerak bo'lgan boshqa taqqoslashgacha erishishga imkon beradi. test algoritmi saralanadigan parametrli qidiruv algoritmi, qaror algoritmiga qo'ng'iroqlarning faqat logaritmik soni yordamida bajarilishi mumkin. Megiddoning parametrli qidirishning asl nusxasi tomonidan qilingan qo'ng'iroqlar. AKS saralash tarmog'idan foydalanish o'rniga, ushbu texnikani parallel ravishda birlashtirish ham mumkin birlashtirish algoritmi Koul (1988) Natijada kichikroq doimiy omillarga ega bo'lgan vaqt chegaralari paydo bo'ladi, ammo bu hali amaliy bo'lishi uchun etarli emas. Chegaralangan taqsimlangan hisoblash tarmog'ida hisoblash mumkin bo'lgan har qanday muammo uchun shunga o'xshash tezlikni olish mumkin daraja (AKS saralash tarmog'ida bo'lgani kabi) yoki Cole texnikasi bilan yoki bir nechta hisoblash yo'llarini simulyatsiya qilishning tegishli texnikasi bilan (Fernández-Baca 2001 yil ).

Goodrich va Pszona (2013) Koulning nazariy takomillashtirishini amaliy tezlashtirish bilan birlashtirish van Oostrum va Veltkamp (2002). Van Oostrum va Veltkamp singari parallel quicksort o'rniga, ular tomonidan ishlab chiqilgan quicksort versiyasi - boxsort Reyshuk (1985) unda bo'linish bosqichi kirishni tasodifiy ravishda ajratadi faqat ikkita kichik muammo o'rniga kichikroq kichik muammolar. Koulning texnikasida bo'lgani kabi, ular ham sinxronlashtirilgan parametrli qidiruvdan foydalanadilar, bunda simulyatsiya qilingan parallel saralash algoritmining bajarilishining har bir alohida yo'nalishi boshqa taqqoslash natijasini aniqlash kerak bo'lgunga qadar davom etishiga ruxsat beriladi va bu erda hal qilinmagan taqqoslashlar soni ikkiga bo'linadi. o'rtacha taqqoslash qiymatini topish va shu qiymat bilan qaror algoritmini chaqirish orqali. Ular ko'rsatganidek, natijada olingan randomizatsiyalangan parametrik qidiruv algoritmi Coulning nazariy tahliliga mos keladigan katta ehtimollik bilan qaror qabul qilish algoritmiga faqat logaritmik sonli qo'ng'iroqlarni amalga oshiradi. Ushbu maqolaning kengaytirilgan versiyasi algoritmni amalga oshirish natijalari bo'yicha eksperimental natijalarni o'z ichiga oladi, bu esa ushbu usulning bir nechta tabiiy geometrik optimallashtirish muammolari bo'yicha ishlashning eng yaxshi sinxronlashtirilgan parametrik qidiruv dasturiga o'xshashligini ko'rsatadi (quicksort-ga asoslangan usul van Oostrum va Veltkamp): ba'zi muammolar bo'yicha biroz tezroq, ba'zilari esa biroz sekinroq. Biroq, qaror algoritmiga qo'ng'iroqlar soni sezilarli darajada kam, shuning uchun bu usul qaror algoritmi sekinroq bo'lgan joyda parametrli qidiruv dasturlarida katta foyda keltiradi.

Nuqtani kesib o'tishning o'rtacha vaqtini topish masalasida Coul algoritmi ham, Goodrich va Pszona algoritmi ham ish vaqtini oladi. . Goodrich va Pszona misolida algoritm randomizatsiyalangan bo'lib, bu vaqtni katta ehtimollik bilan oladi.

Ikkilik qidiruv bilan taqqoslash

The ikkiga bo'linish usuli (ikkilik qidirish) qarorni optimallashtirishga aylantirish uchun ham ishlatilishi mumkin. Ushbu usulda an oraliq Qaror algoritmini uning o'rtacha qiymati bo'yicha chaqirish va qo'ng'iroq natijasiga qarab, medianing yuqorisida yoki pastida faqat yarim intervalni ushlab turish orqali intervalni bir necha bor qisqartiradi. Garchi bu usul faqat optimal echim qiymatiga raqamli yaqinlashuvni topishi mumkin bo'lsa-da, qaror algoritmini ushbu yaqinlashuv uchun aniqlik bitlari soniga mutanosib bo'lgan bir qator chaqiriqlarda amalga oshiradi. zaif polinom algoritmlar.

Buning o'rniga, qo'llanilganda, parametrik qidirish juda ko'p polinomli algoritmlarni topadi, ularning ishlash vaqti faqat kirish kattaligining funktsiyasi va raqamli aniqlikka bog'liq emas. Biroq, parametrik qidirish vaqt murakkabligining oshishiga olib keladi (qaror algoritmi bilan taqqoslaganda), logaritmikdan kattaroq bo'lishi mumkin. Parametrik qidirishga asoslangan algoritmlar kuchsiz polinom emas, kuchli bo'lgani uchun nazariy nuqtai nazardan qoniqarli. Amalda, ikkilik qidiruv tez va tez-tez amalga oshirilishi ancha sodda, shuning uchun algoritm muhandisligi parametrik qidiruvni amaliy qilish uchun harakatlar zarur. Shunga qaramay, van Oostrum va Veltkamp (2002) "oddiy ikkilik-qidiruv yondashuvi ko'pincha parametrik qidirishni amaliy almashtirish sifatida ilgari surilgan bo'lsa-da, u bizning [parametrli qidiruv] algoritmimizdan ustunroq" deb ular amalga oshirgan tajribaviy taqqoslashlarda yozing.

Ilovalar

Parametrik qidirish optimallashtirish muammolari uchun samarali algoritmlarni ishlab chiqishda qo'llanilgan, xususan hisoblash geometriyasi (Agarval, Sharir va Toledo 1994 yil Ular quyidagilarni o'z ichiga oladi:

  • A markaziy nuqta a-da o'rnatilgan nuqta Evklid fazosi har qanday nuqta shunday yarim bo'sh joy markaziy nuqtani o'z ichiga olgan kirish nuqtalarining doimiy qismini ham o'z ichiga oladi. Uchun - o'lchovli bo'shliqlar, erishish mumkin bo'lgan optimal fraktsiya har doim kamida bo'ladi . Ikki o'lchovli markaziy nuqtalarni qurish uchun parametr-qidiruvga asoslangan algoritmlar keyinchalik takomillashtirildi chiziqli vaqt boshqa algoritmik usullardan foydalanish. Biroq, bu takomillashtirish yuqori o'lchamlarga taalluqli emas. Uch o'lchovda parametrlarni qidirish markaz nuqtalarini o'z vaqtida topish uchun ishlatilishi mumkin (Koul 1987 yil ).
  • Parametrik qidiruv an uchun asos sifatida ishlatilishi mumkin uchun vaqt algoritmi Theil-Sen taxminchi, usul ishonchli statistika chiziqni sezgir bo'lmagan nuqtalar to'plamiga moslashtirish uchun chetga chiquvchilar dan oddiy chiziqli regressiya (Koul va boshq. 1989 yil ).
  • Yilda kompyuter grafikasi, nurli tortishish muammo (ma'lum bir ko'rish chizig'i yoki yorug'lik nurlari bilan kesishgan sahnadagi birinchi ob'ektni aniqlash) oddiyroq muammo uchun parametrli qidiruvni ma'lumotlar tuzilishi bilan birlashtirib, to'siqlarning biron bir to'plami berilganini to'sib qo'yadimi-yo'qligini sinab ko'rish orqali hal qilinishi mumkin. ray (Agarwal & Matoušek 1993 yil ).
  • The eng katta tayoq muammosi butunlay berilgan ichida joylashgan eng uzun chiziq segmentini topishni o'z ichiga oladi ko'pburchak. Buni o'z vaqtida hal qilish mumkin , uchun - ko'p qirrali va har qanday , parametrik qidiruvga asoslangan algoritmdan foydalanib (Agarval, Sharir va Toledo 1994 yil ).
  • The halqa berilgan nuqta to'plamini o'z ichiga olgan va eng kichik kenglikka ega bo'lgan (ichki va tashqi radiuslar orasidagi farq) o'lchov sifatida ishlatilishi mumkin. yumaloqlik nuqta to'plami. Shunga qaramay, bu muammoni o'z vaqtida hal qilish mumkin , uchun - ko'p qirrali va har qanday , parametrik qidiruvga asoslangan algoritmdan foydalanib (Agarval, Sharir va Toledo 1994 yil ).
  • The Hausdorff masofasi o'rtasida tarjima qiladi masofani minimallashtirish uchun tarjima qilingan ikkita ko'pburchakning vaqtini parametrik qidirish yordamida topish mumkin , qayerda va ko'pburchaklar tomonlarining sonlari (Agarval, Sharir va Toledo 1994 yil ).
  • The Frechet masofasi ikkitasi o'rtasida ko'pburchak zanjirlar parametrli qidiruv yordamida o'z vaqtida hisoblash mumkin , qayerda va egri chiziqlar soni (Alt va Godau 1995 yil ).
  • Uchun Evklid tekisligidagi, doimiy tezlikda harakatlanadigan nuqtalar, nuqtalar eng kichikini olish vaqtidir diametri (va o'sha paytdagi diametrni) Koulning texnikasini vaqt bo'yicha o'zgarishi yordamida topish mumkin . Parametrli qidiruv, shuningdek, harakatlanuvchi nuqtalar to'plamining ba'zi bir o'lchovlari minimal qiymatini olish vaqtini topishda boshqa shunga o'xshash muammolar uchun ham, o'lchamlari, shu jumladan o'lchovlar uchun ham ishlatilishi mumkin. minimal yopiq to'p yoki ning vazni maksimal daraxt daraxti (Fernández-Baca 2001 yil ).

Adabiyotlar