У меня есть неориентированный граф со всеми вершинами четной степени. На этом графике есть набор ребер, которые должны быть покрыты ровно один раз, и множество ребер, которые не должны быть покрыты вообще, если это абсолютно необходимо. Мне нужно найти набор из одного или нескольких путей через граф, так что все требуемые ребра будут покрыты ровно один раз, а количество пересеченных нежелательных кромок минимизировано. Никакой требуемый край не может пересекаться более чем одним путем, но нежелательные края могут пересекаться любым количеством путей. Это не совсем эйлеровский путь, потому что есть дополнительные края.Алгоритм обхода края графа, некоторые необходимые края, некоторые необязательные
Длина каждого отдельного пути ограничена максимальным количеством требуемых краев, которые он может покрыть, хотя путь может охватывать любое количество нежелательных краев.
Начальные и конечные пункты не обязательно должны быть одинаковыми, но существует множество возможных исходных точек.
Некоторые из нежелательных ребер совпадают с требуемыми ребрами - то есть пара вершин может иметь как обязательный край, так и нежелательный край между ними (хотя никогда не будет более одного края каждого типа между заданная пара вершин).
Для чего нужен хороший алгоритм? По сути, я ищу алгоритм, который может найти путь, который пересекает требуемые края ровно один раз и позволяет избежать нежелательных краев, когда это возможно (но может пересекать их более одного раза, если необходимо). Я могу опираться на это, чтобы сделать все остальное.
Прочитать Cormen, Leiserson, Rivest - Введение в алгоритмы для подробного введения в алгоритмы графа. – linello
Спасибо за рекомендацию; Я нашел копию в местном книжном магазине. –