SSS * - SSS* - Wikipedia

SSS * Бұл іздеу алгоритмі, Джордж Стокман 1979 жылы енгізген, а мемлекеттік кеңістікті іздеу жүру а ойын ағашы ішінде жақсы-бірінші сол сияқты сән A * іздеу алгоритмі.

SSS * деген ұғымға негізделген ағаштар. Бейресми түрде шешім ағашын кез-келген ерікті ойын ағашынан әрқайсысында бұтақтардың санын кесу арқылы жасауға болады MAX түйін біреуіне. Мұндай ағаш MAX-тің толық стратегиясын білдіреді, өйткені ол қарсылас жасаған кез-келген ықтимал қадамдар үшін дәл бір MAX әрекетін көрсетеді. Ойын ағашын ескере отырып, SSS * ішінара шешім ағаштарының кеңістігін іздейді, біртіндеп үлкенірек және кіші ағаштарды талдай отырып, түпнұсқа ойын ағашымен бірдей түбірі мен минимакс мәні бар жалғыз шешім ағашын шығарады. SSS * түйінді ешқашан тексермейді альфа-бета кесу альфа-бета алмайтын кейбір тармақтарды кесіп тастайды, мүмкін. Стокман SSS * альфа-бетадан гөрі жақсы жалпы алгоритм болуы мүмкін деп болжады. Алайда, Игорь Ройзен және Иудея інжу-маржаны көрсетті[1] SSS * альфа / бета-ға қатысты бағаланатын позициялар санындағы үнемдеу шектеулі және әдетте басқа ресурстардың өсуін өтеуге жеткіліксіз (мысалы, тораптар тізімін сақтау және сұрыптау алгоритмнің табиғаты). Алайда, Aske Plaat, Джонатан Шеффер, Wim Pijls және Arie de Bruin альфа-бета-ны қолданған кезде нөлдік терезедегі альфа-бета қоңыраулар тізбегі SSS * эквивалентіне ие екенін көрсетті (яғни, сол түйіндерді бірдей тәртіппен кеңейтеді). транспозиция кестесі, шахмат, дойбы және т.с.с. үшін барлық ойын ойнау бағдарламаларында сияқты, енді АШЫҚ тізімді сақтау және сұрыптау қажет болмады. Бұл турнирдің сапалы ойын бағдарламаларында (баламалы алгоритм) SSS * енгізуге мүмкіндік берді. Тәжірибелер көрсеткендей, ол шынымен де қарағанда жақсы нәтиже көрсеткен Альфа-бета іс жүзінде, бірақ ол жеңе алмады NegaScout.[2]

Алғашқы ең жақсы алгоритмді тереңдікке шақырудың кезектілігі ретінде қайта құру нөлдік терезенің альфа-бета алгоритмдерінің классын құруға түрткі болды, оның ішінде MTD-f ең жақсы белгілі мысал.

Алгоритм

Бар кезек кезегі Штаттарды сақтайтын АШЫҚ немесе түйіндер, қайда - түйін идентификаторы (Дьюидің жазбасы түйіндерді анықтау үшін қолданылады, бұл тамыр), - түйін күйі (L - түйін тірі, демек ол әлі шешілмеген, ал S - түйін шешілген), - шешілген түйіннің мәні. OPEN кезегіндегі элементтер олардың кемуімен сұрыпталады мәні. Егер бірнеше түйіннің мәні бірдей болса , ағашта ең сол жақтағы түйін таңдалды.

АШЫҚ: = {(e, L, inf)}уақыт шын істеу   // тоқтағанша қайталаңыз б=(Дж, с, сағ) АШЫҚ кезектің басынан егер Дж = e және с = S содан кейін        Алгоритмді тоқтатып, нәтижесінде h қайтарыңыз басқа        үшін гамма операторын қолдану б

үшін оператор келесі жолмен анықталады:

егер с = L содан кейін    егер Дж терминал түйіні болып табылады содан кейін        (1.) қосу (Дж, S, мин (сағ, мәні (Дж))) ашу басқаша болса Дж бұл MIN түйіні содан кейін        (2.) қосу (J.1, L, сағ) ашу басқа        (3.) үшін j= 1..балалардың_ саны (Дж) қосу (J.j, L, сағ) ашубасқа    егер Дж бұл MIN түйіні содан кейін        (4.) қосу (ата-ана (Дж), S, сағАШУ үшін OPEN-ден ата-анасының балаларымен байланысты барлық жағдайларды алып тастаңыз (J) басқаша болса is_last_child (Дж) содан кейін   // егер J ата-ананың соңғы баласы болса (J) (5.) add (parent (Дж), S, сағ) ашу басқа        (6.) қосу (ата-ана (Дж).(к+1), L, сағ) OPEN-ге // ата-анасының (J) келесі баласымен байланысты күйді OPEN-ге қосыңыз

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

  1. ^ Ройзен, Игорь; Иудея Перл (1983 ж. Наурыз). «Альфа-бетадан гөрі минимакс алгоритмі ?: Ия және Жоқ». Жасанды интеллект. 21 (1–2): 199–220. дои:10.1016 / s0004-3702 (83) 80010-1.
  2. ^ Плат, Аске; Джонатан Шеффер; Wim Pijls; Ари де Брюин (қараша 1996). «Үздік минимакс алгоритмдері бойынша тіркелген тереңдік». Жасанды интеллект. 87 (1–2): 255–293. дои:10.1016/0004-3702(95)00126-3.

Сыртқы сілтемелер