Изменения

Перейти к: навигация, поиск

Алгоритм Эрли

845 байт добавлено, 01:57, 15 января 2011
Нет описания правки
Строим <tex>I_0</tex><br>
<i>Шаг 1.</i> Если <tex>S \rightarrow \alpha</tex> {{---}} правило из <tex>P</tex>, включить <tex>[S \rightarrow \cdot \alpha, 0]</tex> в <tex>I_0</tex>.<br>
Выполняем шаги 2 и 3 до тех пор, пока можем включать новые ситуациив <tex>I_0</tex>.<br>
<i>Шаг 2.</i> Если <tex>[B \rightarrow \gamma \cdot, 0] \in I_0</tex>, включить в <tex>I_0</tex> ситуацию <tex>[A \rightarrow \alpha B \cdot \beta, 0]</tex> для всех <tex>[A \rightarrow \alpha \cdot B \beta, 0]</tex>, уже принадлежащих <tex>I_0</tex>.<br>
<i>Шаг 3.</i> Допустим, что <tex>[A \rightarrow \alpha \cdot B \beta, 0] \in I_0</tex>. Для каждого правила из <tex>P</tex> вида <tex>B \rightarrow \gamma</tex> включить в <tex>I_0</tex> ситуацию <tex>[B \rightarrow \cdot \gamma, 0]</tex> (если она еще не там).<br>
Построение <tex>I_j</tex> по <tex>I_0, I_1, ..., I_{j-1}</tex>. <br>
<i>Шаг 4.</i> Для каждой ситуации <tex>[B \rightarrow \alpha \cdot a \beta, i] \in I_{j-1}</tex>, для которой <tex>a = a_j</tex> включить в <tex>I_j</tex> ситуацию <tex>[B \rightarrow \alpha a \cdot \beta, i] </tex>.<br>
Выполняем шаги 5 и 6 до тех пор, пока можем включать новые ситуации в <tex>I_j</tex>.<br>
38
правок

Навигация