Алгоритм Кока-Янгера-Касами разбора грамматики в НФХ — различия между версиями
Kabanov (обсуждение | вклад) (→Пример работы) |
Kabanov (обсуждение | вклад) (→Пример работы) |
||
| Строка 38: | Строка 38: | ||
<tex>\begin{array}{l l} | <tex>\begin{array}{l l} | ||
| − | + | A \rightarrow \varepsilon|BB|CD\\ | |
| − | + | B \rightarrow BB|CD\\ | |
| − | + | C \rightarrow (\\ | |
| − | + | D \rightarrow BE|)\\ | |
| − | + | E \rightarrow )\\ | |
\end{array}</tex> | \end{array}</tex> | ||
| Строка 129: | Строка 129: | ||
|- | |- | ||
! 1 | ! 1 | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 149: | Строка 149: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 159: | Строка 159: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 194: | Строка 194: | ||
|- | |- | ||
! 1 | ! 1 | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 204: | Строка 204: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 214: | Строка 214: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 224: | Строка 224: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 234: | Строка 234: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| Строка 244: | Строка 244: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|} | |} | ||
| Строка 269: | Строка 269: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 299: | Строка 299: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| Строка 309: | Строка 309: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|} | |} | ||
| Строка 377: | Строка 377: | ||
|} | |} | ||
| − | |||
{| clear="both" |} | {| clear="both" |} | ||
| Строка 464: | Строка 463: | ||
|- | |- | ||
! 1 | ! 1 | ||
| + | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| | | | ||
| Строка 484: | Строка 483: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 491: | Строка 490: | ||
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| Строка 529: | Строка 528: | ||
|- | |- | ||
! 1 | ! 1 | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 539: | Строка 538: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 549: | Строка 548: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 559: | Строка 558: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 569: | Строка 568: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| Строка 579: | Строка 578: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|} | |} | ||
| Строка 595: | Строка 594: | ||
! 1 | ! 1 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 604: | Строка 603: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 625: | Строка 624: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| Строка 634: | Строка 633: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| Строка 644: | Строка 643: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|} | |} | ||
| Строка 794: | Строка 793: | ||
|- | |- | ||
! 1 | ! 1 | ||
| + | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| | | | ||
| Строка 814: | Строка 813: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 821: | Строка 820: | ||
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| Строка 859: | Строка 858: | ||
|- | |- | ||
! 1 | ! 1 | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 869: | Строка 868: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 879: | Строка 878: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 889: | Строка 888: | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
| Строка 899: | Строка 898: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| Строка 909: | Строка 908: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|} | |} | ||
| Строка 925: | Строка 924: | ||
! 1 | ! 1 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 934: | Строка 933: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 951: | Строка 950: | ||
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| Строка 956: | Строка 956: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
| Строка 964: | Строка 963: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| Строка 974: | Строка 973: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|} | |} | ||
| Строка 1124: | Строка 1123: | ||
|- | |- | ||
! 1 | ! 1 | ||
| + | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| | | | ||
| Строка 1144: | Строка 1143: | ||
| | | | ||
| | | | ||
| − | |||
| | | | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| Строка 1189: | Строка 1188: | ||
|- | |- | ||
! 1 | ! 1 | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1199: | Строка 1198: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 1209: | Строка 1208: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1219: | Строка 1218: | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
| Строка 1229: | Строка 1228: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| Строка 1239: | Строка 1238: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|} | |} | ||
| Строка 1255: | Строка 1254: | ||
! 1 | ! 1 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 1264: | Строка 1263: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1277: | Строка 1276: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| Строка 1286: | Строка 1286: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
| Строка 1294: | Строка 1293: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| Строка 1304: | Строка 1303: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|} | |} | ||
| Строка 1454: | Строка 1453: | ||
|- | |- | ||
! 1 | ! 1 | ||
| + | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| | | | ||
| Строка 1474: | Строка 1473: | ||
| | | | ||
| | | | ||
| − | |||
| | | | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| Строка 1519: | Строка 1518: | ||
|- | |- | ||
! 1 | ! 1 | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1529: | Строка 1528: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 1539: | Строка 1538: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1549: | Строка 1548: | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
| Строка 1559: | Строка 1558: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| Строка 1569: | Строка 1568: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|} | |} | ||
| Строка 1585: | Строка 1584: | ||
! 1 | ! 1 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 1594: | Строка 1593: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1607: | Строка 1606: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| Строка 1616: | Строка 1616: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
| Строка 1624: | Строка 1623: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| Строка 1634: | Строка 1633: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|} | |} | ||
| Строка 1724: | Строка 1723: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|- | |- | ||
| Строка 1784: | Строка 1783: | ||
|- | |- | ||
! 1 | ! 1 | ||
| + | | | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| − | | | ||
|- | |- | ||
| Строка 1804: | Строка 1803: | ||
| | | | ||
| | | | ||
| − | |||
| | | | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| Строка 1849: | Строка 1848: | ||
|- | |- | ||
! 1 | ! 1 | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1859: | Строка 1858: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 1869: | Строка 1868: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1879: | Строка 1878: | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
| Строка 1889: | Строка 1888: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| Строка 1899: | Строка 1898: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|} | |} | ||
| Строка 1915: | Строка 1914: | ||
! 1 | ! 1 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 1924: | Строка 1923: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 1937: | Строка 1936: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| Строка 1946: | Строка 1946: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
| Строка 1954: | Строка 1953: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| Строка 1964: | Строка 1963: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|} | |} | ||
| Строка 2054: | Строка 2053: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|- | |- | ||
| Строка 2114: | Строка 2113: | ||
|- | |- | ||
! 1 | ! 1 | ||
| + | | | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| − | | | ||
|- | |- | ||
| Строка 2134: | Строка 2133: | ||
| | | | ||
| | | | ||
| − | |||
| | | | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| | | | ||
| Строка 2179: | Строка 2178: | ||
|- | |- | ||
! 1 | ! 1 | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 2189: | Строка 2188: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 2199: | Строка 2198: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 2209: | Строка 2208: | ||
| | | | ||
| | | | ||
| + | | align="center"| ● | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
| Строка 2219: | Строка 2218: | ||
| | | | ||
| | | | ||
| − | | | + | | |
| | | | ||
| Строка 2229: | Строка 2228: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|} | |} | ||
| Строка 2245: | Строка 2244: | ||
! 1 | ! 1 | ||
| | | | ||
| − | | | + | | |
| | | | ||
| | | | ||
| Строка 2254: | Строка 2253: | ||
! 2 | ! 2 | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| | | | ||
| Строка 2267: | Строка 2266: | ||
| | | | ||
| | | | ||
| − | | | + | | |
|- | |- | ||
! 4 | ! 4 | ||
| + | | | ||
| | | | ||
| | | | ||
| Строка 2276: | Строка 2276: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
| Строка 2284: | Строка 2283: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
| | | | ||
| Строка 2294: | Строка 2293: | ||
| | | | ||
| | | | ||
| − | | | + | | align="center"| ● |
|} | |} | ||
Версия 02:25, 5 ноября 2014
| Задача: |
| Пусть дана контекстно-свободная грамматика в нормальной форме Хомского и слово . Требуется выяснить, выводится ли это слово в данной грамматике. |
Содержание
Алгоритм
Алгоритм Кока-Янгера-Касами (англ. Cocke-Younger-Kasami algorithm, англ. CYK - алгоритм) — универсальный алгоритм, позволяющий по слову узнать, выводимо ли оно в заданной КС-грамматике в нормальной форме Хомского. Будем решать задачу динамическим программированием. Дана строка размером . Заведем для неё трехмерный массив размером , состоящий из логических значений, и тогда и только тогда, когда из нетерминала правилами грамматики можно вывести подстроку .
Рассмотрим все пары , где — константа и .
- . Инициализируем массив для всех нетерминалов, из которых выводится какой-либо символ строки . В таком случае , если в грамматике присутствует правило . Иначе .
- . Значения для всех нетерминалов и пар уже вычислены, поэтому . То есть, подстроку можно вывести из нетерминала , если существует продукция вида и такое , что подстрока выводима из , а подстрока выводится из .
После окончания работы значение содержит ответ на вопрос, выводима ли данная строка в данной грамматике, где — начальный символ грамматики.
Модификации
Количество способов вывести слово
Если массив будет хранить целые числа, а формулу заменить на , то — количество способов получить подстроку из нетерминала .
Минимальная стоимость вывода слова
Пусть — стоимость вывода по правилу . Тогда, если использовать формулу , то — минимальная стоимость вывода подстроки из нетерминала .
Таким образом, задача о выводе в КС-грамматике в нормальной форме Хомского является обобщением задачи динамического программирования на подотрезке.
Асимптотика
Обработка правил вида в шаге 1 выполняется за .
Проход по всем подстрокам в шаге 2 выполняется за . В обработке одной подстроки присутствует цикл по всем правилам вывода и по всем разбиениям на две подстроки, следовательно обработка работает за . В итоге получаем конечную сложность .
Следовательно, общее время работы алгоритма — . Кроме того, алгоритму требуется память (на массив ) объемом , где — количество нетерминалов грамматики.
Пример работы
Дана грамматика правильных скобочных последовательностей :
Дано слово .
| A | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ||||||
| 3 | ||||||
| 4 | ||||||
| 5 | ||||||
| 6 | ||||||
| B | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ||||||
| 3 | ||||||
| 4 | ||||||
| 5 | ||||||
| 6 | ||||||
| C | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| D | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||
| E | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||
| A | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| B | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| C | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| D | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||
| E | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||
| A | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| B | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| C | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| D | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ● | |||||
| 6 | ● | |||||
| E | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||
| A | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| B | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| C | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| D | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ● | |||||
| 6 | ● | |||||
| E | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||
| A | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| B | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| C | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| D | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ● | |||||
| 6 | ● | |||||
| E | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||
| A | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | ● | ||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| B | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | ● | ||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| C | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| D | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ● | |||||
| 6 | ● | |||||
| E | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||
| A | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | ● | ||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| B | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | ● | ||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| C | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ● | |||||
| 2 | ||||||
| 3 | ● | |||||
| 4 | ● | |||||
| 5 | ||||||
| 6 | ||||||
| D | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ● | |||||
| 5 | ● | |||||
| 6 | ● | |||||
| E | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 1 | ||||||
| 2 | ● | |||||
| 3 | ||||||
| 4 | ||||||
| 5 | ● | |||||
| 6 | ● | |||||