Алгоритм обхода всех ребер в графе

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

Более простой алгоритм > кратчайшая последовательность.

Я огляделся и нашел множество алгоритмов, но не смог найти ни одного/комбинации, которая работала бы для меня. Было бы здорово, если бы кто-нибудь мог указать мне правильное направление или дать мне несколько советов о том, как это сделать.

Моя реализация графа выглядит так:

graph = {
    A : {'IDLE': 't8', 'B': 't2', 'C': 't4'},
    B : {'A': 't3', 'C': 't4', 'IDLE': 't6'},
    C : {'A': 't5', 'IDLE': 't7', 'B': 't2'},
    IDLE : {'A': 't1'}
}

graph

6
задан kristus 6 April 2012 в 11:49
поделиться