Изменения

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

Участник:Shovkoplyas Grigory

328 байт добавлено, 19:41, 16 января 2016
Нет описания правки
Для простоты добавим новый стартовый вспомогательный нетерминал <tex>S'</tex> и правило <tex>(S' \rightarrow S)</tex>.
<font color=green> // Инициализация </font>
D[0] = {[S' &#x27f6; &middot;<tex>\rightarrow</tex> <tex>\cdot</tex>S, 0]}
'''for''' i = 1 '''to''' len(w) - 1
D[i] = <tex>\varnothing </tex>
<font color=green> // Основная часть </font>
'''for''' j = 0 '''to''' len(w) -1
scan(D, j)
'''while''' D[j] изменяется
'''if''' j = 0
'''return'''
'''for''' [A &#x27f6; &<tex>\rightarrow</tex> <tex>\alpha;&middot;</tex><tex>\cdot</tex>a&<tex>\beta;</tex>, i] &isin; <tex>\in</tex> D[j - 1]
'''if''' a = w[j - 1]
D[j] &cup;= {[A &#x27f6; &<tex>\rightarrow</tex> <tex>\alpha;</tex>a&middot;&<tex>\cdot</tex><tex>\beta;</tex>, i]}
<font color=green> // Второе правило </font>
'''function''' predict(D, j)
'''for''' [A &#x27f6; &<tex>\rightarrow</tex> <tex>\alpha;&middot;</tex><tex>\cdot</tex>B&<tex>\beta;</tex>, i] &isin; <tex>\in</tex> D[j] '''for''' [B &#x27f6; <tex>\rightarrow</tex> &eta;] &isin; <tex>\in</tex> P D[j] &cup;= {[B &#x27f6; &middot;<tex>\rightarrow</tex> <tex>\cdot</tex>&eta;]} 
<font color=green> // Третье правило </font>
'''function''' complete(D, j)
'''for''' [B &#x27f6; <tex>\rightarrow</tex> &eta;&middot;<tex>\cdot</tex>, i] &isin; <tex>\in</tex> D[j] '''for''' [A &#x27f6; &<tex>\rightarrow</tex> <tex>\alpha;&middot;</tex><tex>\cdot</tex>B&<tex>\beta;</tex>, k] &isin; <tex>\in</tex> D[i] D[j] &cup;= {[A &#x27f6; &<tex>\rightarrow</tex> <tex>\alpha;&middot;</tex><tex>\cdot</tex>B&<tex>\beta;</tex>, k]}
==Корректность алгоритма==
69
правок

Навигация