Алгоритм Кока-Янгера-Касами разбора грамматики в НФХ — различия между версиями
Kabanov (обсуждение | вклад) |
Kabanov (обсуждение | вклад) (→Пример работы) |
||
| Строка 85: | Строка 85: | ||
Дано слово <tex>w = $()(())$</tex>. | Дано слово <tex>w = $()(())$</tex>. | ||
| − | + | ||
Инициализация массива <tex>d</tex>. | Инициализация массива <tex>d</tex>. | ||
| − | + | {| border="1" style="width: 150px; height: 150px; float: left;" | |
| − | {| border="1 | ||
! colspan="7"|A | ! colspan="7"|A | ||
|- | |- | ||
| Строка 108: | Строка 107: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 117: | Строка 115: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 126: | Строка 123: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 135: | Строка 131: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 144: | Строка 139: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 153: | Строка 147: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|B | ! colspan="7"|B | ||
|- | |- | ||
| Строка 173: | Строка 166: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 182: | Строка 174: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 191: | Строка 182: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 200: | Строка 190: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 209: | Строка 198: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 218: | Строка 206: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|C | ! colspan="7"|C | ||
|- | |- | ||
| Строка 238: | Строка 225: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 247: | Строка 233: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 256: | Строка 241: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 265: | Строка 249: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 274: | Строка 257: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 283: | Строка 265: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|D | ! colspan="7"|D | ||
|- | |- | ||
| Строка 303: | Строка 284: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 312: | Строка 292: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 321: | Строка 300: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 330: | Строка 308: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 339: | Строка 316: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 348: | Строка 324: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; " |
! colspan="7"|E | ! colspan="7"|E | ||
|- | |- | ||
| Строка 368: | Строка 343: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 377: | Строка 351: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 386: | Строка 359: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 395: | Строка 367: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 404: | Строка 375: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 413: | Строка 383: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| + | |} | ||
| − | |||
{| clear="both" |} | {| clear="both" |} | ||
| Строка 421: | Строка 391: | ||
{| clear="both" |} | {| clear="both" |} | ||
| − | Итерация | + | Итерация <tex>m = 1</tex>. |
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|A | ! colspan="7"|A | ||
|- | |- | ||
| Строка 442: | Строка 412: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 451: | Строка 420: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 460: | Строка 428: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 469: | Строка 436: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 478: | Строка 444: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 487: | Строка 452: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|B | ! colspan="7"|B | ||
|- | |- | ||
| Строка 507: | Строка 471: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 516: | Строка 479: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 525: | Строка 487: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 534: | Строка 495: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 543: | Строка 503: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 552: | Строка 511: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|C | ! colspan="7"|C | ||
|- | |- | ||
| Строка 572: | Строка 530: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 581: | Строка 538: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 590: | Строка 546: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 599: | Строка 554: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 608: | Строка 562: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 617: | Строка 570: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|D | ! colspan="7"|D | ||
|- | |- | ||
| Строка 637: | Строка 589: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 646: | Строка 597: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 655: | Строка 605: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 664: | Строка 613: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 673: | Строка 621: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 682: | Строка 629: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; " |
! colspan="7"|E | ! colspan="7"|E | ||
|- | |- | ||
| Строка 702: | Строка 648: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 711: | Строка 656: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 720: | Строка 664: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 729: | Строка 672: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 738: | Строка 680: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 747: | Строка 688: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
{| clear="both" |} | {| clear="both" |} | ||
| − | Итерация | + | Итерация <tex>m = 2</tex>. |
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|A | ! colspan="7"|A | ||
|- | |- | ||
| Строка 772: | Строка 712: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 781: | Строка 720: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 790: | Строка 728: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 799: | Строка 736: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 808: | Строка 744: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 817: | Строка 752: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|B | ! colspan="7"|B | ||
|- | |- | ||
| Строка 837: | Строка 771: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 846: | Строка 779: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 855: | Строка 787: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 864: | Строка 795: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 873: | Строка 803: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 882: | Строка 811: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|C | ! colspan="7"|C | ||
|- | |- | ||
| Строка 902: | Строка 830: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 911: | Строка 838: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 920: | Строка 846: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 929: | Строка 854: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 938: | Строка 862: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 947: | Строка 870: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|D | ! colspan="7"|D | ||
|- | |- | ||
| Строка 967: | Строка 889: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 976: | Строка 897: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 985: | Строка 905: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 994: | Строка 913: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1003: | Строка 921: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1012: | Строка 929: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; " |
! colspan="7"|E | ! colspan="7"|E | ||
|- | |- | ||
| Строка 1032: | Строка 948: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1041: | Строка 956: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1050: | Строка 964: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1059: | Строка 972: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1068: | Строка 980: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1077: | Строка 988: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
{| clear="both" |} | {| clear="both" |} | ||
| − | Итерация | + | Итерация <tex>m = 3</tex>. |
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|A | ! colspan="7"|A | ||
|- | |- | ||
| Строка 1102: | Строка 1012: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1111: | Строка 1020: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1120: | Строка 1028: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1129: | Строка 1036: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1138: | Строка 1044: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1147: | Строка 1052: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|B | ! colspan="7"|B | ||
|- | |- | ||
| Строка 1167: | Строка 1071: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1176: | Строка 1079: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1185: | Строка 1087: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1194: | Строка 1095: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1203: | Строка 1103: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1212: | Строка 1111: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|C | ! colspan="7"|C | ||
|- | |- | ||
| Строка 1232: | Строка 1130: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1241: | Строка 1138: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1250: | Строка 1146: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1259: | Строка 1154: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1268: | Строка 1162: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1277: | Строка 1170: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|D | ! colspan="7"|D | ||
|- | |- | ||
| Строка 1297: | Строка 1189: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1306: | Строка 1197: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1315: | Строка 1205: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1324: | Строка 1213: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1333: | Строка 1221: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1342: | Строка 1229: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; " |
! colspan="7"|E | ! colspan="7"|E | ||
|- | |- | ||
| Строка 1362: | Строка 1248: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1371: | Строка 1256: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1380: | Строка 1264: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1389: | Строка 1272: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1398: | Строка 1280: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1407: | Строка 1288: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
{| clear="both" |} | {| clear="both" |} | ||
| − | Итерация | + | Итерация <tex>m = 4</tex>. |
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|A | ! colspan="7"|A | ||
|- | |- | ||
| Строка 1432: | Строка 1312: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1441: | Строка 1320: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1450: | Строка 1328: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1459: | Строка 1336: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1468: | Строка 1344: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1477: | Строка 1352: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|B | ! colspan="7"|B | ||
|- | |- | ||
| Строка 1497: | Строка 1371: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1506: | Строка 1379: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1515: | Строка 1387: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1524: | Строка 1395: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1533: | Строка 1403: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1542: | Строка 1411: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|C | ! colspan="7"|C | ||
|- | |- | ||
| Строка 1562: | Строка 1430: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1571: | Строка 1438: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1580: | Строка 1446: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1589: | Строка 1454: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1598: | Строка 1462: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1607: | Строка 1470: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|D | ! colspan="7"|D | ||
|- | |- | ||
| Строка 1627: | Строка 1489: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1636: | Строка 1497: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1645: | Строка 1505: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1654: | Строка 1513: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1663: | Строка 1521: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1672: | Строка 1529: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; " |
! colspan="7"|E | ! colspan="7"|E | ||
|- | |- | ||
| Строка 1692: | Строка 1548: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 1701: | Строка 1556: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 1710: | Строка 1564: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 1719: | Строка 1572: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 1728: | Строка 1580: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 1737: | Строка 1588: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|} | |} | ||
{| clear="both" |} | {| clear="both" |} | ||
| − | Итерация | + | Итерация <tex>m = 5</tex>. |
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|A | ! colspan="7"|A | ||
|- | |- | ||
| Строка 2092: | Строка 1612: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 2101: | Строка 1620: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 2110: | Строка 1628: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 2119: | Строка 1636: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 2128: | Строка 1644: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 2137: | Строка 1652: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|B | ! colspan="7"|B | ||
|- | |- | ||
| Строка 2157: | Строка 1671: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 2166: | Строка 1679: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 2175: | Строка 1687: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 2184: | Строка 1695: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 2193: | Строка 1703: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 2202: | Строка 1711: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|C | ! colspan="7"|C | ||
|- | |- | ||
| Строка 2222: | Строка 1730: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 2231: | Строка 1738: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 2240: | Строка 1746: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 2249: | Строка 1754: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 2258: | Строка 1762: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 2267: | Строка 1770: | ||
| | | | ||
| | | | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; float: left;" |
! colspan="7"|D | ! colspan="7"|D | ||
|- | |- | ||
| Строка 2287: | Строка 1789: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 2296: | Строка 1797: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 2305: | Строка 1805: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 2314: | Строка 1813: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 2323: | Строка 1821: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 2332: | Строка 1829: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
| − | {| border="1 | + | {| border="1" style="width: 150px; height: 150px; " |
! colspan="7"|E | ! colspan="7"|E | ||
|- | |- | ||
| Строка 2352: | Строка 1848: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 2 | ! 2 | ||
| Строка 2361: | Строка 1856: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 3 | ! 3 | ||
| Строка 2370: | Строка 1864: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 4 | ! 4 | ||
| Строка 2379: | Строка 1872: | ||
| | | | ||
| | | | ||
| − | |||
|- | |- | ||
! 5 | ! 5 | ||
| Строка 2388: | Строка 1880: | ||
| align="center"| ● | | align="center"| ● | ||
| | | | ||
| − | |||
|- | |- | ||
! 6 | ! 6 | ||
| Строка 2397: | Строка 1888: | ||
| | | | ||
| align="center"| ● | | align="center"| ● | ||
| − | |||
|} | |} | ||
{| clear="both" |} | {| clear="both" |} | ||
Версия 20:31, 5 ноября 2014
| Задача: |
| Пусть дана контекстно-свободная грамматика в нормальной форме Хомского и слово . Требуется выяснить, выводится ли это слово в данной грамматике. |
Содержание
Контекстно-свободная грамматика
| Определение: |
| Контекстно-свободная грамматика (КС-грамматика, бесконтекстная грамматика) — способ описания формального языка, представляющий собой четверку
, где:
|
Пример
Терминалы .
Нетерминалы .
Правила вывода :
Данная грамматика задает язык правильных скобочных последовательностей. Например, последовательность может быть выведена следующим образом:
Нормальная форма Хомского
Нормальная форма Хомского - нормальная форма КС-грамматик, в которой все продукции имеют вид:
- A → a, где A - нетерминал, а a - терминал
- A → BC, где A, B, C - нетерминалы, причем B и C не являются начальными нетерминалами
- S → ε, где S - начальный нетерминал и ε - пустая строка (данная продукция необходима, если в языке присуствует пустая строка)
Можно показать, что любую КС-грамматику можно привести к нормальной форме Хомского, поэтому алгоритм является в этом плане универсальным.
Алгоритм
Алгоритм Кока-Янгера-Касами (англ. Cocke-Younger-Kasami algorithm, англ. CYK-алгоритм) — универсальный алгоритм, позволяющий по слову узнать, выводимо ли оно в заданной КС-грамматике в нормальной форме Хомского. Будем решать задачу динамическим программированием. Дана строка размером . Заведем для неё трехмерный массив размером , состоящий из логических значений, и тогда и только тогда, когда из нетерминала правилами грамматики можно вывести подстроку .
Рассмотрим все пары , где — константа и .
- . Инициализируем массив для всех нетерминалов, из которых выводится какой-либо символ строки . В таком случае , если в грамматике присутствует правило . Иначе .
- . Значения для всех нетерминалов и пар уже вычислены, поэтому . То есть, подстроку можно вывести из нетерминала , если существует продукция вида и такое , что подстрока выводима из , а подстрока выводится из .
После окончания работы значение содержит ответ на вопрос, выводима ли данная строка в данной грамматике, где — начальный символ грамматики.
Модификации
Количество способов вывести слово
Если массив будет хранить целые числа, а формулу заменить на , то — количество способов получить подстроку из нетерминала .
Минимальная стоимость вывода слова
Пусть — стоимость вывода по правилу . Тогда, если использовать формулу , то — минимальная стоимость вывода подстроки из нетерминала .
Таким образом, задача о выводе в КС-грамматике в нормальной форме Хомского является частным случаем задачи динамического программирования на подотрезке.
Асимптотика
Обработка правил вида выполняется за .
Проход по всем подстрокам выполняется за . В обработке одной подстроки присутствует цикл по всем правилам вывода и по всем разбиениям на две подстроки, следовательно обработка работает за . В итоге получаем конечную сложность .
Следовательно, общее время работы алгоритма — . Кроме того, алгоритму требуется память на массив объемом , где — количество нетерминалов грамматики.
Пример работы
Дана грамматика правильных скобочных последовательностей в нормальной форме Хомского.
Дано слово .
Инициализация массива .
| 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 | ● | |||||