ГАДДАГ - GADDAG

A ГАДДАГ Бұл мәліметтер құрылымы 1994 жылы Стивен Гордон ұсынды Scrabble және басқа сөз тудыратын ойындар, онда мұндай қимылдар қолданыстағы сөздерге «ілінетін» сөздерді қажет етеді. Бұл көбінесе а-ны қолданатын генерация алгоритмдерінен айырмашылығы бағытталған ациклдік график (DAWG) сияқты пайдаланылады Maven. Әдетте бұл DAWG дәстүрлі алгоритмдерінен екі есе жылдам, бірақ Scrabble сөздіктерін реттеу үшін шамамен 5 есе көп орын алады.[1]

Quackle, көзі ашық Scrabble бағдарламасы қимылдар жасау үшін GADDAG пайдаланады.[2]

Сипаттама

GADDAG атауы DAG үшін шыққан бағытталған ациклдік график, өзінің кері жағымен префикс.[1]

ГАДАДАГ - бұл мамандандырылған а Три, басқа ГАДАГ-тарға мемлекеттер мен тармақтарды қамтиды. Бұл сөздікте әр сөздің барлық кері префикстерін сақтауымен ерекшеленеді. Бұл дегеніміз, әр сөзде әріптер сияқты көптеген ұсыныстар бар; көптеген Scrabble реттеу сөздіктеріндегі орташа сөз 5 әріптен тұратын болғандықтан, бұл GADDAG-ны қарапайым DAWG-ден 5 есе үлкен етеді.

Анықтама

Бос емес префикс арқылы жасалған сөздіктегі кез-келген сөз үшін х және жұрнақ у, GADDAG кез-келген жолға арналған тікелей, детерминирленген жолды қамтиды REV(х)+ж, мұндағы + - біріктіру операторы.

Мысалы, «сөзі үшін»түсіндіріңіз, «GADDAG жолдарға тікелей жолдарды қамтиды

e + xplainxe + plainpxe + lainlpxe + ainalpxe + inialpxe + nnialpxe

Бұл қондырғы кез келген әріпте берілген сөзді іздеуге мүмкіндік береді.

Қозғалыс кезінде қолданыңыз

Кез-келген қозғалыс генерациясы алгоритмі шектеулердің үш түрін ұстануы керек:

  • Кеңестің шектеулері: тақтаның бар әріптеріне «ілмек» арқылы салу, ал бос квадраттарға тек тақтайшалар қоюға болады.
  • Сөреге арналған шектеулер: тек сөреге әріптері бар тақтайшаларды қоюға болады.
  • Сөздік шектеулі: тақтайшаларды орналастырудан туындаған барлық сөздер ойын сөздігінде бар.

DAWG-ге негізделген алгоритмдер екінші және үшінші шектеулердің артықшылығын пайдаланады: DAWG сөздіктің айналасында құрастырылған және сөреде тақтайшалар көмегімен өтеді. Алайда бірінші шектеулерді жою мүмкін болмады: біреу хатқа «ілінгіңіз» келеді P жылы Бақыттыжәне тақтада Р алдында 2 бос орын болса, сөздікте үшінші әріп орналасқан тірек ішіндегі әріптерден тұратын барлық сөздерді іздеу керек P. DAWG арқылы іздеу кезінде бұл тиімсіз, өйткені көптеген іздеулер нәтижесіз болады.

Бұл GADDAG префикстерін сақтау арқылы шешіледі: өту арқылы P GADDAG филиалы а. бар барлық сөздерді көреді P олардың құрамындағы бір жерде және префикстегі сөреде плиткалармен сөз жасау үшін «жоғары қарай жүре» алады. Мысалын қолдану үшін § Анықтама бөлімін іздеу P айналады »pxe + lain«. Арасындағы әріптер P және + белгісін жоғарыдан орналастыруға болады P тақтада, ал қалғаны оның астында (егер тақтада орын болса).

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ а б Гордон, Стивен А. (1994). «Scrabble қозғалыс генерациясының жылдам алгоритмі» (PDF). Бағдарламалық жасақтама: тәжірибе және тәжірибе. 24 (2): 219–232. дои:10.1002 / спе.4380240205.
  2. ^ Джейсон Кац-Браун; Джон О'Лауфлин. «Quackle қалай Scrabble ойнайды». Алынған 2018-07-02.