2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

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

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

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



Начать новую тему Ответить на тему
 
 Количество решений в задаче коммивояжёра
Сообщение27.08.2012, 16:18 


04/09/11
149
Пусть заданы $N$ городов и коммивояжёру нужно посетить их все и вернуться в исходный город. Я хочу посчитать общее количество возможных решений. Насколько я понимаю, выбираем сначала город, в котором начнётся маршрут - $N$ вариантов, затем один из оставшихся - и так далее, и так далее - получим $N!$.

Но это неверный ответ, так как "чистый" факториал получается только в ассиметричном случае - и то не $N!$, а $(N-1)!$. Почему так? И почему в симметричном случае это число делится пополам?

Заранее благодарен.

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение27.08.2012, 16:29 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Что Вы считаете (т.е. что называется решением) и что такое симметричный случай?

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение27.08.2012, 18:42 


26/01/10
959
В первую очередь обратите внимание на то обстоятельство, что по Вашему алгоритму каждое решение будет посчитано N раз. А после этого приглядитесь, чтобы увидеть, что каждый маршрут в симметричном случае (если я правильно понял, т. е. вес ребра туда и обратно одинаковый), вы посчитаете дважды. И всё.

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение27.08.2012, 19:06 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории

(Оффтоп)

Zealint, ну ёлки, ну можно же было попробовать добиться от клиента хотя бы минимальных собственных усилий?!
Как-то так:
- А не считаешь ли ты решением, дорогой товарищ, замкнутый цикл на полном графе без учёта начала и направления?
- Да...

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение27.08.2012, 19:11 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
ИСН в сообщении #611329 писал(а):
замкнутый цикл на полном графе без учёта начала и направления?

Если б Вы не сказали, я бы сам не додумался :-(

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение27.08.2012, 19:52 


26/01/10
959
ИСН, да Вы правы. Я просто только что с допроса...

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение28.08.2012, 01:10 


04/09/11
149
ИСН в сообщении #611232 писал(а):
Что Вы считаете (т.е. что называется решением) и что такое симметричный случай?

"Решение" - любой маршрут, удовлетворяющий условию:
1. каждый город посещён хотя бы один раз;
2. коммивояжёр возвращается в исходный город;
Симметричный случай - когда связи между городами задаются неориентированным графом.
Извиняюсь за то, что я также забыл указать, что все города связаны друг с другом (простейший вариант задачи).

Zealint в сообщении #611314 писал(а):
В первую очередь обратите внимание на то обстоятельство, что по Вашему алгоритму каждое решение будет посчитано $N$ раз.

Насколько я понимаю, это в силу того, что маршрут замкнутый?
То есть, если $n(1)-n(2)-...-n(k-1)-n(k)$ - текущий маршрут (поскольку все рёбра связаны друг с другам концовку $n(k)-n(1)$ я не указываю), то маршруты
$n(2)-...-n(k-1)-n(k)-n(1)$
...
$n(k)-n(1)-n(2)-...-n(k-1)$
совпадают с ним.
Поэтому общее число перестановок $N!$ (каждая из которых соответствует некоторому маршруту) делим на $N$.

Zealint в сообщении #611314 писал(а):
А после этого приглядитесь, чтобы увидеть, что каждый маршрут в симметричном случае (если я правильно понял, т. е. вес ребра туда и обратно одинаковый), вы посчитаете дважды. И всё.

Верно ли следующее обоснование? Поскольку все города связаны друг с другом, то обязательно найдутся два "противоположных" маршрута, проходящих одни и те же рёбра, но в противоположных направлениях.
Если $n(i)$ - $i$-ое ребро текущего маршрута, то соответствующими маршрутами будут следующие:
$n(1)-n(2)-n(3)-n(4)-...-n(k-1)-n(k)$
$n(2)-n(1)-n(k)-n(k-1)-...-n(4)-n(3)$
А поскольку рёбра $n(i)-n(j)$ и $n(j)-n(i)$ равнозначный, то два указанные маршрута соответствуют одному решению, поэтому $(N-1)!$ делим ещё на два. Верно ли такое рассуждение?

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение28.08.2012, 06:40 


26/01/10
959
Asker Tasker в сообщении #611562 писал(а):
Насколько я понимаю, это в силу того, что маршрут замкнутый?

Одной замкнутости не достаточно. Бывает, что маршруты замкнуты, а делить на $N$ всё равно не нужно (в похожих задачах). Например, представьте, будто в задаче Вам важно, начинать с первого города или со второго (от этого, например, зарплата коммивояжёра будет разной, можно придумать такие условия).

Цитата:
Верно ли следующее обоснование? Поскольку все города связаны друг с другом, то обязательно найдутся два "противоположных" маршрута, проходящих одни и те же рёбра, но в противоположных направлениях.

А если не все города связаны? Значить "противоположных" маршрутов нет?
Цитата:
Если $n(i)$ - $i$-ое ребро текущего маршрута, то соответствующими маршрутами будут следующие:
$n(1)-n(2)-n(3)-n(4)-...-n(k-1)-n(k)$
$n(2)-n(1)-n(k)-n(k-1)-...-n(4)-n(3)$
А поскольку рёбра $n(i)-n(j)$ и $n(j)-n(i)$ равнозначный, то два указанные маршрута соответствуют одному решению, поэтому $(N-1)!$ делим ещё на два. Верно ли такое рассуждение?

Ну можно и так сказать, но больно коряво, как-то по-гуманитарному. Вы слишком много выдумываете своих слов: "противоположные маршруты", "соответствующие маршруты", "равнозначные рёбра". Кроме того, если у Вас "два маршрута соответствуют решению", а решение - это любой маршрут, то вообще чушь получается.

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение28.08.2012, 14:25 


04/09/11
149
Asker Tasker в сообщении #611562 писал(а):
Если $n(i)$ - $i$-ое ребро текущего маршрута, то соответствующими маршрутами будут следующие:

Извиняюсь, я имел в виду "вершина", а не "ребро".

Zealint в сообщении #611601 писал(а):
Одной замкнутости не достаточно.

Zealint в сообщении #611601 писал(а):
А если не все города связаны?

Я исхожу из поставленного условия - "все города связаны друг с другом". Если есть несвязанные, то... Даже не знаю. Может ведь так оказаться, что формула вообще станет неприменимой. Если, например, дано $N$ городов и они связаны последовательно друг с другом, причём $N$-ый связан с первым - тогда решение единственное и никаких факториалов. А в случае, когда все города связаны, замкнутость маршрута (насколько я понимаю) как раз позволяет делить на $N$.

Zealint в сообщении #611601 писал(а):
Ну можно и так сказать, но больно коряво, как-то по-гуманитарному.

Допустим, что я и есть гумманитарий.
Уже без допущений утверждаю, что с терминами у меня тяжко. Я хотел сказать, что "маршрутов" может быть несколько, соответствующих одному "решению": например, для случая трёх городов $(0, 1, 2)$ имеем шесть возможных маршрутов:
$0-1-2-0$
$0-2-1-0$
$1-0-2-1$
$1-2-0-1$
$2-0-1-2$
$2-1-0-2$
Но решение всего одно (это видно даже из картинки, без каких-либо вычислений).

Zealint в сообщении #611601 писал(а):
"равнозначные рёбра"

Если есть рёбра $n(1)-n(2)$ и $n(2)-n(1)$, имеющие одинаковый вес, то как их называть? Ведь вес у них может быть и разный, и это существенное влияет на поставленную задачу. Наверняка есть соответствующий термин - вот только я его, к сожалению, не знаю.

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение28.08.2012, 14:40 


26/01/10
959
Цитата:
А в случае, когда все города связаны, замкнутость маршрута (насколько я понимаю) как раз позволяет делить на $N$.

Не только замкнутость позволяет делить на $N$. А ещё тот факт, что по условию Вам всё равно, с какого города начинать движение по любому маршруту. Поэтому удобно в качестве первого города всегда брать номер один. Поэтому второй город выбирается $N-1$ способом и т. д. Получается $(N-1)!$.

В целом Вы всё правильно делаете, но просто говорю, что коряво, я бы не засчитал ответ на экзамене.

Цитата:
Я хотел сказать, что "маршрутов" может быть несколько, соответствующих одному "решению"

Дайте сначала правильные определения маршруту и решению, потом можно будет обсуждать. У Вас сейчас решение - это маршрут. А тогда получается, что цитируемая фраза выглядит так: "маршрутов может быть несколько, соответствующих одному маршруту". Это ерунда.

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение28.08.2012, 17:46 


04/09/11
149
Как хорошо, что экзамен мне по этому сдавать не нужно)
Насколько я знаком с терминами теории графов, вот точное определение "решения":
ИСН в сообщении #611329 писал(а):
цикл на полном графе без учёта начала и направления?

"Маршрут" в таком случае - произвольный цикл на полном графе (соответственно с учётом начала и направления). В таком виде действительно несколько маршрутов могут соответствовать одному решению и словесного бардака вроде поменьше, чем у меня было.

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение28.08.2012, 18:04 


26/01/10
959
Определения могут быть какими угодно, лишь бы они согласовывались. Разные авторы учебников дают разные определения одному и тому же. Главное разобраться в задаче, что Вы и сделали.

 Профиль  
                  
 
 Re: Количество решений в задаче коммивояжёра
Сообщение01.09.2012, 19:20 


04/09/11
149
Спасибо за помощь!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group