Редактирование: Алгоритм Кока-Янгера-Касами, модификация для произвольной грамматики

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

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 37: Строка 37:
 
<code>
 
<code>
 
  '''CYK_Modified'''(S, Г): <font color = darkgreen>// S {{---}} строка длины n, Г {{---}} КС-грамматика </font color = darkgreen>
 
  '''CYK_Modified'''(S, Г): <font color = darkgreen>// S {{---}} строка длины n, Г {{---}} КС-грамматика </font color = darkgreen>
       '''for''' i = 1..n
+
       '''for''' i = 1 \ldots n
 
       '''for''' Rj -> alpha <font color = darkgreen>// перебор состояний </font color = darkgreen>
 
       '''for''' Rj -> alpha <font color = darkgreen>// перебор состояний </font color = darkgreen>
 
         '''if'''( A -> w[i] in Г) a[A, i, i+1] = true <font color = darkgreen>// если в грамматике Г присутствует правило A -> w[i] </font color = darkgreen>
 
         '''if'''( A -> w[i] in Г) a[A, i, i+1] = true <font color = darkgreen>// если в грамматике Г присутствует правило A -> w[i] </font color = darkgreen>
Строка 44: Строка 44:
 
         '''else''' a[A, i, i] = false
 
         '''else''' a[A, i, i] = false
 
         h[A->alpha, i, i, 0] = true
 
         h[A->alpha, i, i, 0] = true
       '''for''' m = 1..n
+
       '''for''' m = 1 \ldots n
       '''for''' i = 1..n
+
       '''for''' i = 1 \ldots n
 
           j = i+m
 
           j = i+m
         '''for''' k = 1..M
+
         '''for''' k = 1 \ldots M
 
         '''for''' Rj -> alpha <font color = darkgreen>// перебор состояний </font color = darkgreen>
 
         '''for''' Rj -> alpha <font color = darkgreen>// перебор состояний </font color = darkgreen>
           h[A->alpha, i, j+1, k] = OR( for r = i..j+1) (h[A->alpha, i, r, k-1] & a[alpha[k],r,j+1])
+
           h[A->alpha, i, j+1, k] = OR( for r = i \ldots j+1) (h[A->alpha, i, r, k-1] & a[alpha[k],r,j+1])
       '''for''' i = 1..n
+
       '''for''' i = 1 \ldots n
         '''for''' j = 1..n
+
         '''for''' j = 1 \ldots n
 
           '''for''' Rj -> alpha
 
           '''for''' Rj -> alpha
 
           a[A, i, j] = OR( for A->alpha) h[A->alpha, i, j, |alpha|] <font color = darkgreen>// где |alpha| {{---}} размер правой части правила</font color = darkgreen>
 
           a[A, i, j] = OR( for A->alpha) h[A->alpha, i, j, |alpha|] <font color = darkgreen>// где |alpha| {{---}} размер правой части правила</font color = darkgreen>

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблоны, используемые на этой странице: