DFA сравнение

Я пытаюсь написать программу сравнения DFA. Но я не знаю, как создать результирующий массив.

Мой код:

$alphabet = array(0,1,2,3,4,5,6,7,8,9);

$states1 = array('A','B');

$automata1[0]['A'] = 'B';
$automata1[0]['B'] = 'B';
$automata1[1]['A'] = 'A';
$automata1[1]['B'] = 'A';
$automata1[2]['A'] = 'B';
$automata1[2]['B'] = 'B';
$automata1[3]['A'] = 'A';
$automata1[3]['B'] = 'A';
$automata1[4]['A'] = 'B';
$automata1[4]['B'] = 'B';
$automata1[5]['A'] = 'A';
$automata1[5]['B'] = 'A';
$automata1[6]['A'] = 'B';
$automata1[6]['B'] = 'B';
$automata1[7]['A'] = 'A';
$automata1[7]['B'] = 'A';
$automata1[8]['A'] = 'B';
$automata1[8]['B'] = 'B';
$automata1[9]['A'] = 'A';
$automata1[9]['B'] = 'A';

$acceptation1 = array('B');

$start1 = 'A';

$sates2 = array(0,1,2);

$automaat2[0][0] = 0;
$automata2[0][1] = 1;
$automata2[0][2] = 2;
$automata2[1][0] = 1;
$automata2[1][1] = 2;
$automata2[1][2] = 0;
$automata2[2][0] = 2;
$automata2[2][1] = 0;
$automata2[2][2] = 1;
$automata2[3][0] = 0;
$automata2[3][1] = 0;
$automata2[3][2] = 2;
$automata2[4][0] = 1;
$automata2[4][1] = 2;
$automata2[4][2] = 0;
$automata2[5][0] = 2;
$automata2[5][1] = 0;
$automata2[5][2] = 1;
$automata2[6][0] = 0;
$automata2[6][1] = 1;
$automata2[6][2] = 2;
$automata2[7][0] = 1;
$automata2[7][1] = 2;
$automata2[7][2] = 0;
$automata2[8][0] = 2;
$automata2[8][1] = 0;
$automata2[8][2] = 1;
$automata2[9][0] = 0;
$automata2[9][1] = 1;
$automata2[9][2] = 2;

$acceptation2 = array(2);

$start2 = 1;

foreach ($alphabet as $sign) {
$result[$sing][$start1.'x'.$start2] = $automata1[$sign][$start1].'x'.$automata2[$sign][$start2];
}

На первом проходе строка будет принимать значение начальных состояний обоих графиков. На последующих итерациях строки таблицы должны быть заполнены уникальными значениями, которые будут заполнены следующей строкой.

Пример:
введите описание изображения здесь
Как вы пишете цикл, который будет создавать массив состояний?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …