Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Гамильтонов цикл



Дан граф G c n вершинами. Существует ли в графе простой цикл, проходящий через все вершины графа? Простым называет­ся цикл, в котором вершины не повторяются. Таким образом, гамильтонов цикл — это последовательность вершин и дуг (ребер) графа, содержащая все вершины графа G по одному разу, но, мо­жет быть, содержащая не все дуги.

Задача коммивояжера.

Дан граф G с п вершинами. Каждому ребру графа приписано положительное целое число d i, задающее длину ребра. Кроме этого, задано некоторое положительное целое число L. Требует­ся ответить на вопрос: найдется ли в графе G маршрут, проходя­щий через все вершины графа G, такой, что его длина не превы­шает L?

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

Кроме класса NP-полных проблем рассматривают еще и класс NP-трудных проблем.

Проблема Т называется NP-трудной, если она удовлетворяет условию: Если R Î NP, то R сводится к T за полиномиальное вре­мя.

Заметим, что это условие совпадает со вторым условием для NP-полных проблем. Следовательно, NP-полная проблема — это NР-трудная задача, принадлежащая классу NP.

Для того чтобы уяснить себе возможное различие между классами Р и NP, продолжим анализ проблемы выполнимости логического выражения.

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

Задача о k-выполнимости — это задача о выполнимости для выражений, в которых длины дизъюнктов не превосходят вели­чины k.

Разумеется задача о k-выполнимости проще задачи о (k + 1)-выполнимости, и проще общей задачи о выполнимости для лю­бого конечного k. Самая простая — задача об 1-выполнимости. В этом случае любой дизъюнкт состоит только из одной пере­менной или ее отрицания, т. е. Если все переменные в записанной конъюнкции различны, то выражение выполнимо, а если одна и та же переменная встречается два раза, в одном случае с показателем 1, а в другом случае с пока­зателем 0, то в соответствии с известным тождеством х 1 &х° = 0 выражение тождественно равно нулю, т. е. не выполнимо. Про­верка этого требует времени, линейного по отношению к длине выражения.

Вывод: задача об 1-выполнимости принадлежит классу Р.

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

1. Проблема эквивалентности алгоритмов: по двум произвольным заданным алгоритмам (представленным, например, в виде программ для машины Тьюринга или на языке программирования Pascal) определить, будут ли они выдавать одинаковые выходные результаты на любых исходных данных.

2. Проблема эквивалентности грамматик: по двум произвольным грамматикам, представленными в виде наборов синтаксических диаграмм, определить, совпадают ли определяемые ими языки.

3. Проблема тотальности: по произвольному заданному алгоритму определить, будет ли он завершаться (останавливаться) на всех возможных входных наборах.

4. Десятая проблема Гильберта: «Найти алгоритм, который по заданному многочлену P (x1,…,xn) с целыми коэффициентами определяет, имеет ли уравнение P=0 решение в целых числах». Ю.В.Матиясевич показал, что такого алгоритма не существует.





Дата публикования: 2015-03-26; Прочитано: 336 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...