Пусть класс A обозначает все графы размера которые имеют гамильтонов цикл. Из этого класса легко получить случайный граф - возьмите n изолированных узлов, добавьте случайный гамильтонов цикл и затем случайным образом добавьте ребра.
Пусть класс B обозначает все графы размера которых нет гамильтонова цикла. Как мы можем выбрать случайный граф из этого класса? (или сделать что-то близкое к этому)
ds.algorithms
graph-theory
Jagadish
источник
источник
Ответы:
Это невозможно (если только NP = coNP), поскольку, в частности, это подразумевает функцию поли-времени, диапазон которой является негамильтоновыми графами (функция переходит от случайной строки к выходному графу), что, в свою очередь, подразумевает NP-доказательство негамильтоновости (чтобы доказать, что G не имеет гамильтонову цепь, покажите x, отображающий ее.)
источник
источник
Первая задача проста, потому что гамильтоновы графы легко проверяются. Тем не менее, нет известных коротких доказательств, которые можно эффективно проверить, чтобы убедиться, что данный граф не является гамильтоновым.
источник