Я ищу вычисления сложности моего кода. Это просто DFS (поиск по глубине в DFS). DFS работает на графике (конечный автомат) от конца до начала (обратный поиск). Всякий раз, когда он достигает начала, он накапливает строку, которая заставляла ее запускаться, и пытается эту строку на другом графике с другой DFS, чтобы проверить, достигает ли она и начало состояния на другом графике с той же строкой.DFS в DFS, DFS с известной строкой
Внешняя сложность DFS определенно O (Vo + Eo), где Vo: число вершин во внешнем графе и Eo: количество ребер во внешнем графе. Но какова сложность внутри DFS, когда известна строка, которая будет следовать?
И если возможно, можете ли вы также ответить на всю сложность алгоритма?
Я не уверен, является ли это O ((Ео + Vo) + (Ei + Vi)) или O ((Ео + Vo) (Ei + Vi)) или smtg .else
Спасибо advance,
O (| строка | (Eo + Vo)) .. где | строка | это размер строки –
благодаря Халеду. это то, что я сначала подумал, но как насчет путей во второй DFS, которые искали и не заканчивались в начальном состоянии? Не должно быть кумулятивного термина вместо просто | string | ? –
Это потому, что вы используете график для разбора конечного состояния машины, если он детерминирован, тогда это O ((Eo + Vo) + | string |), если он стохастичен, тогда это O ((Eo + Vo) * | string |) –