roboforum.ru

Технический форум по робототехнике.
Текущее время: 19 апр 2025, 02:35

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 91 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 20:57 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
В исходной - да.
Классический коммивояжер.
Насколько я понимаю, решения кроме перебора нет,
(эвристики есть, но не гарантируют _оптимальный_ результат, за число операций меньшее, чем перебор)


Последний раз редактировалось Michael_K 25 дек 2009, 20:59, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 20:59 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А последняя задача суть - выбрать в ориентированном взвешенном графе часть ребер так, чтобы вес был минимален, и в каждую вершину было минимум 1 входящее и 1 исходящее ребро.

Добавлено спустя 1 минуту:
Michael_K писал(а):
Классический коммивояжер.
Насколько я понимаю, решения кроме перебора нет

Скажем так - науке неизвестно решение за полиномиальное время, по крайней мере без применения всяких волшебных квантовых компьютеров :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:00 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Ну, блин... :)
...длинные слова меня только расстраивают (с)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:07 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ну если с матрицами проще... я просто с графами больше работал в таком ключе :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:11 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Изначальная постановка задачи была неверной. Правильная - с измененным условием 3.

Короче, вытянули. Вот оригинальная постановка задачи.

Строится химзавод, для производства некоего продукта. Для его производства необходимо ровно n исходных компонентов. Имеется возможность закупить машины, которые из одного компонента делают другой. Не факт, что для любой пары i,j (0<=i<n, 0<=j<n, i<>j) существует машина, которая из i делает j. Стоимость компонентов и эксплуатации машин ничтожно мала, сами машины очень дороги. Необходимо определить, какие машины следует закупить, чтобы их суммарная стоимость была минимальна, и чтобы завод мог функционировать независимо от того, какие исходные компоненты имеются в наличии.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:16 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
по крайней мере без применения всяких волшебных квантовых компьютеров :)

А разве волшебный квантовый компьютер что-то вообще может гарантировать? :wink:
Он же вероятностный по сути.

Ну, раз сводится к коммивояджеру, то быстрые эвристики без гарантии оптимума можно тупо в инете поискать...

Условие "не факт, что для любой пары" просто прореживает матрицу или граф...
(или цена этой ветки заведомо огромна)... и есть вероятность, что решение вообще невозможно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:17 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Андрей, так и с измененным условием 3 задача не верна, где требование связности?

Тебе нужно реально в ориентированном графе найти подмножество ребер обеспечивающее полную связность или как она там называется (т.е. из любой вершины по оставшимся ребрам с учетом их направленности можно пройти в любую другую) и вес ребер не отрицательный.

Ну и ты и запутал задачу :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:18 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Цитата:
есть вероятность, что решение вообще невозможно?

Нет.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:24 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
где требование связности?

действительно

Добавлено спустя 4 минуты 17 секунд:
Выбирать из графа все ребра с минимальными весами, пока он не "свяжется",
потом исключить ребра с максимальными весами, так чтобы свяность не потерялась.

Добавлено спустя 22 секунды:
А, нет...
Не факт, что оптимум


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:24 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
=DeaD= писал(а):
Андрей, так и с измененным условием 3 задача не верна, где требование связности?

Нету :oops:

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:25 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Объединять вершины, с минимальными весами ребер, пока не свяжется. Вот так правильно.
(пока все вершины не объединятся в одну)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:27 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Для неориентированного графа эта задача называется поиском минимального остова, решается алгоритмом Прима-Краскала, для ориентированных сейчас гляну.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:31 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
не... не слушайте меня - это я тороплюсь.
Реально сделать из нефти парафин может быть сложнее, чем из парафина - нефть...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:32 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Michael_K писал(а):
Объединять вершины, с минимальными весами ребер, пока не свяжется. Вот так правильно.
(пока все вершины не объединятся в одну)

Это алгоритм Прима, только для неориентированных графов

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка
СообщениеДобавлено: 25 дек 2009, 21:32 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
... для неориентированного графа... ...для ориентированных... алгоритм Прима-Краскала

Ага... вот именно эти самые слова :(


Последний раз редактировалось Michael_K 25 дек 2009, 21:33, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 91 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Часовой пояс: UTC + 4 часа


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

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO