<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_B%2A</id>
	<title>Алгоритм поиска B* - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_B%2A"/>
	<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_B*&amp;action=history"/>
	<updated>2026-05-21T08:09:15Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_B*&amp;diff=4681&amp;oldid=prev</id>
		<title>Patarakin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_B*&amp;diff=4681&amp;oldid=prev"/>
		<updated>2022-10-19T17:55:03Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 20:55, 19 октября 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key digida:diff:1.41:old-4680:rev-4681 --&gt;
&lt;/table&gt;</summary>
		<author><name>Patarakin</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_B*&amp;diff=4680&amp;oldid=prev</id>
		<title>ru_wikipedia&gt;MagnusFit: Перевод из Английской Википедии</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_B*&amp;diff=4680&amp;oldid=prev"/>
		<updated>2021-09-07T22:50:35Z</updated>

		<summary type="html">&lt;p&gt;Перевод из Английской Википедии&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{О|алгоритме поиска по графу|варианте [[B-дерево]]|B*-дерево}}&lt;br /&gt;
В [[Информатика|информатике]] &amp;#039;&amp;#039;&amp;#039;B*&amp;#039;&amp;#039;&amp;#039; (произносится как &amp;#039;&amp;#039;&amp;quot;Би стар&amp;quot;&amp;#039;&amp;#039;) — это {{нп5|Поиск по графу|алгоритм поиска по графу|uk|Пошук по графу}}, использующий [[поиск по первому наилучшему совпадению]], который находит наименее затратный путь от заданного начального [[Вершина (теория графов)|узла]] до любого &amp;#039;&amp;#039;целевого узла&amp;#039;&amp;#039; (из одной или нескольких возможных целей). Впервые опубликованный [[Берлинер, Ханс|Хансом Берлинером]] в 1979 году, он связан с [[A*|алгоритм поиска A*]].&lt;br /&gt;
&lt;br /&gt;
== Резюме ==&lt;br /&gt;
Алгоритм сохраняет интервалы для узлов [[дерево (теория графов)|дерева]] в отличие от однозначных оценок. Затем листовые узлы дерева можно искать до тех пор, пока один из узлов верхнего уровня не будет иметь интервал, который явно &amp;#039;&amp;#039;лучший&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Подробности ==&lt;br /&gt;
=== Интервалы скорее, чем оценки ===&lt;br /&gt;
Конечным узлам &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;B*-дерева&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; даются оценки, которые являются интервалами, а не отдельными числами. Предполагается, что интервал содержит истинное значение этого узла. Если все интервалы, прикреплённые к листовым узлам, удовлетворяют этому свойству, то &amp;#039;&amp;#039;&amp;#039;B*&amp;#039;&amp;#039;&amp;#039; определит оптимальный путь к состоянию цели.&lt;br /&gt;
&lt;br /&gt;
=== Процесс резервного копирования ===&lt;br /&gt;
Для резервного копирования интервалов в дереве верхняя граница предка устанавливается равной максимуму верхних границ потомков. Нижняя граница предка устанавливается равной максимуму нижней границы потомков. Обратите внимание, что эти границы могут быть предоставлены разными потомками.&lt;br /&gt;
&lt;br /&gt;
=== Прекращение поиска ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;B*&amp;#039;&amp;#039;&amp;#039; систематически расширяет узлы, чтобы создать &amp;#039;&amp;#039;разделение&amp;#039;&amp;#039;, которое происходит, когда нижняя граница прямого потомка корня не меньше верхней границы любого другого прямого потомка корня. Дерево, которое создаёт разделение в корне, содержит доказательство того, что лучший потомок по крайней мере так же хорош, как и любой другой потомок.&lt;br /&gt;
&lt;br /&gt;
На практике сложные поиски могут не завершиться в рамках практических ограничений ресурсов. Таким образом, алгоритм обычно дополняется критериями искусственного завершения, такими как ограничения по времени или памяти. Когда достигнут искусственный предел, надо сделать эвристическое суждение о том, какой ход выбрать. Обычно дерево предоставляет обширные доказательства, такие как интервалы корневых узлов.&lt;br /&gt;
&lt;br /&gt;
=== Расширение ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;B*&amp;#039;&amp;#039;&amp;#039; — это процесс &amp;#039;&amp;#039;поиска по первому наилучшему совпадению&amp;#039;&amp;#039;, что означает, что он очень эффективен при обходе дерева, многократно опускаясь вниз, чтобы найти лист, который нужно раскрыть. В этом разделе описывается, как выбрать узел для раскрытия. (&amp;#039;&amp;#039;&amp;#039;Примечание&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;Является ли дерево резидентным в памяти, зависит от общей эффективности реализации, включая то, как оно может отображаться и/или управляться через реальную или виртуальную память&amp;#039;&amp;#039;.)&lt;br /&gt;
&lt;br /&gt;
В корне дерева алгоритм применяет одну из двух стратегий: &amp;#039;&amp;#039;доказать наилучшее&amp;#039;&amp;#039; и &amp;#039;&amp;#039;опровергнуть остальное&amp;#039;&amp;#039;. В стратегии &amp;#039;&amp;#039;доказать наилучшее&amp;#039;&amp;#039; алгоритм выбирает узел, связанный с наивысшей верхней границей. Есть надежда, что расширение этого узла поднимет его нижнюю границу выше, чем верхнюю границу любого другого узла.&lt;br /&gt;
&lt;br /&gt;
Стратегия &amp;#039;&amp;#039;опровергнуть остальное&amp;#039;&amp;#039; выбирает потомка корня, который имеет вторую по высоте верхнюю границу. Есть надежда, что, расширив этот узел, можно уменьшить верхнюю границу до значения, которое меньше, чем нижняя граница лучшего потомка.&lt;br /&gt;
&lt;br /&gt;
==== Выбор стратегии ====&lt;br /&gt;
Следует заметить, что применение стратегии &amp;#039;&amp;#039;опровержения остального&amp;#039;&amp;#039; бессмысленно до тех пор, пока нижняя граница узла-потомка, имеющего наивысшую верхнюю границу, не станет самой высокой среди всех нижних границ.&lt;br /&gt;
&lt;br /&gt;
В исходном описании алгоритма не было никаких дополнительных указаний относительно того, какую стратегию выбрать. Есть несколько разумных альтернатив, например, расширение выбора с меньшим деревом.&lt;br /&gt;
&lt;br /&gt;
==== Выбор стратегии на некорневых узлах ====&lt;br /&gt;
После того, как был выбран потомок корня (с использованием метода &amp;#039;&amp;#039;доказательства наилучшего&amp;#039;&amp;#039; или &amp;#039;&amp;#039;опровержения остального&amp;#039;&amp;#039;), алгоритм спускается к конечному узлу, многократно выбирая потомка, который имеет наивысшую верхнюю границу.&lt;br /&gt;
&lt;br /&gt;
Когда достигается листовой узел, алгоритм генерирует все последующие узлы и назначает им интервалы, используя функцию оценки. Затем необходимо выполнить резервное копирование интервалов всех узлов с помощью операции резервного копирования.&lt;br /&gt;
&lt;br /&gt;
Когда транспозиции возможны, тогда может потребоваться операция резервного копирования для изменения значений узлов, которые не лежали на пути выбора. В этом случае алгоритму нужны указатели от потомков на всех предков, чтобы изменения могли быть распространены. Следует заметить, что распространение может прекратиться, если операция резервного копирования не изменяет интервал, связанный с узлом.&lt;br /&gt;
&lt;br /&gt;
=== Надёжность ===&lt;br /&gt;
Если интервалы неверны (в том смысле, что теоретико-игровое значение узла не содержится в интервале), то &amp;#039;&amp;#039;&amp;#039;B*&amp;#039;&amp;#039;&amp;#039; может быть не в состоянии определить правильный путь. Однако на практике алгоритм довольно устойчив к ошибкам.&lt;br /&gt;
&lt;br /&gt;
В программе &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Maven&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; есть нововведение, которое повышает надежность &amp;#039;&amp;#039;&amp;#039;B*&amp;#039;&amp;#039;&amp;#039;, когда возможны ошибки оценки. Если поиск прекращается из-за разделения, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Maven&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; перезапускает поиск после небольшого расширения всех интервалов оценки. Эта политика постепенно расширяет дерево, в конечном итоге стирая все ошибки.&lt;br /&gt;
&lt;br /&gt;
=== Расширение для игр с двумя игроками ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Алгоритм B*&amp;#039;&amp;#039;&amp;#039; применяется к детерминированным играм с нулевой суммой для двух игроков. Фактически, единственное изменение — это интерпретация &amp;#039;&amp;#039;наилучшего&amp;#039;&amp;#039; по отношению к стороне, движущейся в этом узле. Таким образом, вы должны взять максимум, если ваша сторона движется, и минимум, если движется противник. Точно так же вы можете представить все интервалы с точки зрения стороны, которую нужно переместить, а затем инвертировать значения во время операции резервного копирования.&lt;br /&gt;
&lt;br /&gt;
=== Приложения ===&lt;br /&gt;
Эндрю Палай применил &amp;#039;&amp;#039;&amp;#039;B*&amp;#039;&amp;#039;&amp;#039; к [[Шахматы|шахматам]]. Оценки конечных точек были назначены путём выполнения поиска с нулевым перемещением. Нет отчёта о том, насколько хорошо эта система работала по сравнению с поисковыми системами [[Альфа-бета-отсечение|альфа-бета-отсечения]], работающими на том же оборудовании.&lt;br /&gt;
&lt;br /&gt;
Программа &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Maven&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; применила поиск &amp;#039;&amp;#039;&amp;#039;B*&amp;#039;&amp;#039;&amp;#039; к [[Эндшпиль|эндшпилю]]. Оценки конечных точек были назначены с использованием системы эвристического планирования.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Алгоритм поиска B*&amp;#039;&amp;#039;&amp;#039; использовался для вычисления оптимальной стратегии в игре с суммой набора комбинаторных игр.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод ветвей и границ]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* {{cite journal|author=[[Берлинер, Ханс|Ханс Берлинер]]|title=Алгоритм поиска по дереву B*. Процедура наилучшего первого доказательства.&lt;br /&gt;
|journal={{нп5|Искусственный интеллект (журнал)|Искусственный интеллект||Artificial Intelligence (journal)}}|volume=12|issue=1|pages=23–40|year=1979&lt;br /&gt;
|doi=10.1016/0004-3702(79)90003-1|url=http://www.dtic.mil/get-tr-doc/pdf?AD=ADA059391}}&lt;br /&gt;
* {{cite journal|author=[[Рассел, Стюарт|Стюарт Джонатан Рассел]], [[Норвиг, Питер|Питер Норвиг]]|title={{нп5|Искусственный интеллект: Современный подход|||Artificial Intelligence: A Modern Approach}}|year=2003|pages=188|isbn=0-13-790395-2|publisher=[[Prentice Hall]]|location=Upper Saddle River, N.J.}}&lt;br /&gt;
* {{cite journal|author=Брайан Шеппард|title=Мировой чемпионат по игре в [[скрэббл]].|journal=Искусственный интеллект|volume=134|issue=1-2|pages=241–275&lt;br /&gt;
|year=2002|doi=10.1016/S0004-3702(01)00166-7|doi-access=free}}&lt;br /&gt;
&lt;br /&gt;
{{Алгоритмы поиска на графах}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы на графах]]&lt;br /&gt;
[[Категория:Алгоритмы маршрутизации]]&lt;br /&gt;
[[Категория:Алгоритмы поиска]]&lt;br /&gt;
[[Категория:Комбинаторная оптимизация]]&lt;br /&gt;
[[Категория:Игровой искусственный интеллект]]&lt;/div&gt;</summary>
		<author><name>ru_wikipedia&gt;MagnusFit</name></author>
	</entry>
</feed>