Когда вы выбираете лучшие пути в своем коде, вы не хотите проводить различие между [1, _] и [1], так как оба соответствуют одному и тому же префиксу [1].
Если у вас есть например:
[1], [1, _], [1,2]
, тогда вы хотите, чтобы вероятность [1] и [1, _] оба имели сумму из двух.
вероятность ([1]) = вероятность ([1]) + вероятность ([1, _])
вероятность ([1, _]) = вероятность ([ 1]) + вероятность ([1, _])
И после сортировки с этими вероятностями вы можете захотеть сохранить так много, что число истинных префиксов будет beam_size.
Например, у вас есть [1], [1, _], [2], [3].
Из которых вероятности: 0,1, 0,08, 0,11, 0,15
Тогда вероятности, с которыми вы хочу отсортировать их:
0,18, 0,18, 0,11, 0,15 соответственно (0,18 = 0,1 + 0,08)
отсортировано: [1]: 0,18, [1, _]: 0,18, [3]: 0,15, [2]: 0,11
А если у вас есть, например, beam_size 2, вы можете оставить
[1], [1, _] и [3], чтобы в вашем луче было 2 префикса, поскольку [1] и [1, _] считаются одним и тем же префиксом.