Имя: Пароль:
1C
1С v8
Задача коммивояжера в 1С
,
0 romba
 
23.10.13
14:26
Народ, скажите кто-нибудь сталкивался с решением задачи коммивояжера в 1С? Надо решать такую задачу на 20 точках, полным перебором 1С не вывезет. Может кто подскажет другие способы?
1 Fragster
 
модератор
23.10.13
14:30
если не получается перенести готовые алгоритмы на 1с, то ИМХО нужно подумать о смене профессии. Если не получается найти готовые алгоритмы в поисквике - тоже.
2 mikecool
 
23.10.13
14:36
(0) а задача о коммивояжере решается полным перебором?
3 Dmitry1c
 
23.10.13
14:39
(0) решается генетическим алгоритмом, довольно просто, и не важно, на каком языке. Только результат не идеальный, а приблизительный.
4 MadHead
 
23.10.13
14:41
Решал задачу генетическим алгоритмом (есть еще из достойных муравьиный) На 1с генетический алгоритм выйдет тормознутым. Я логику генетического алгоритма переносил в ком объект на с#
5 MadHead
 
23.10.13
14:42
Маршрут из скольки точек планируется оптимизировать?
6 Coldboy
 
23.10.13
14:45
(1) почему все такие классные, сразу говорят о смене профессии? Если у человека возникла трудность, зато  в другом бм он хорош.
(0) а в чем проблема ? нет алгоритма или перенести в 1с?
7 MadHead
 
23.10.13
14:47
(6) просто все 1сники гении которых сразу приносят в род дом в желтых коробках с надписью 1с )
8 Coldboy
 
23.10.13
14:49
да я тоже смотрю и с людьми общаюсь, все их ненавидят гениев ...
9 spectre1978
 
23.10.13
14:57
(0) Эх, где мои 17 лет... Задача эта рассматривается на младших курсах ИТ-специальностей. Информации о методах решения в сети - вагон, например можно посмотреть здесь http://habrahabr.ru/post/160077/
10 zak555
 
23.10.13
14:58
(8) иди отчёт доделай по 7ке
11 piter3
 
23.10.13
15:03
(6) может и хорош, но здесь не форум садоводов:)
проблема автора в нежелании искать и чуть думать
12 Fragster
 
модератор
23.10.13
15:03
(6) ну ты бы показал свой вариант на 1с, который осиливает 10 (5, 3, 2 или сколько он там у тебя осиливает), но не осиливает 20 (ну, и указал бы пирчину, почему не осиливает)
13 Diversus
 
23.10.13
15:11
Я делал используя генетический алгоритм. Правда на Delphi, но по сути можно использовать идею и в 1С.
Вот видео того, что получилось:
http://www.youtube.com/watch?v=3cGyfyjUqrc
14 Serginio1
 
23.10.13
15:25
(13) Делай COM DLL и вперед. На 1С вычисление по таким алгоритмам это долго и муторно.
15 MadHead
 
23.10.13
15:26
(12) Ради 10 вообще можно нечего не писать и попросить сделать оптимизацию за вас гугл мэп.
На 1с будет осиливать и 200 точек только другой вопрос, в том что считать будет больше часа.
16 Aleks73
 
23.10.13
15:26
Писал такую программу после института, на квикбейсике. Успешно. Алгоритм придумал сам, как называется не знаю.
Вообще, тема рассматривалась в СССР как занимательная задача для школьников среднего возраста. По крайней мере, я читал такую книжку и даже примерно помню условие.
17 Михаил Козлов
 
23.10.13
15:34
(16) Насчет занимательности для школьников это сильно. Думаю, найдете не одну вполне достойную диссертацию на эту или смежную тему.
18 МойКодУныл
 
23.10.13
15:39
(0) Решали подобную задачу(не в точности) - подбор суммы максимально близко к заданной из большого количества мелких сумм. Взяли метод ветвей и границ, перенесли в 1С - все ок. Так что мат методы нормально переносятся в 1С.
19 be-may
 
23.10.13
15:43
(16) не знаю-не знаю насчет школьников.. это была моя курсовая на 3 курсе.
В 1С делала такое, но очень давно, и на семерке. + там еще была одновременно "задача рюкзака", т.е. надо было не только максимально оптимально проехать маршрут, но и оптимально загрузить газельку под самую "крышечку".
Первая часть решилась успешно (по-моему как раз методом ветвей и границ), вторая на практике оказалась невыполнимой. :(
20 shurikvz
 
23.10.13
15:45
(9) Че эт на младших курсах? У меня диплом по этой теме был. (18) Думаю да, вот так проще будет, чем генетические алгоритмы на 1С реализовывать.
(0) Не известно, что эти 20 точек из себя представляют. Но если граф полный, то можно тупо использовать детерминированный спуск в лучшем направлении. Глобально-оптимальное решение не факт что получите, но даже в 1С хоть на 100 точках просвистит так, что раз не успеете сказать.
21 Михаил Козлов
 
23.10.13
15:50
(18) Это не коммивояжер, а, скорее, рюкзак.
22 Fragster
 
модератор
23.10.13
15:52
(20) диплом на тему "реализация алгоритма" быть не может. максимум - курсовик, и именно на младших курсах. В составе диплома может быть решение такой задачи, но это не тема диплома, а кусочек одного из методов решения.
23 shurikvz
 
23.10.13
16:02
(22) Да естественно, тема диплома не назвалась "Решить задачу коммивояжера". Тема была связана с оптимизацией транспортных перевозок. Название уже забыл.
24 EvgeniuXP
 
23.10.13
19:53
(9) да ладно, в вышках это рассматривают на первых курсах :)
25 EvgeniuXP
 
23.10.13
19:57
(9) и в твои 17-лет компьютеры были еще у единиц и каждый первый не занимался программированием :)
26 CepeLLlka
 
23.10.13
20:58
Что такое Коммивояжер? О_О
27 CepeLLlka
 
23.10.13
21:01
Везёт вам, Ребят.. вы программисты :(
А подскажите пожалуйста.. а можно дистанционно выучиться на программиста сейчас?
28 Torquader
 
23.10.13
21:39
На самом деле, задача по научному называется "задача на экстремум функционала" - вы описываете критерии, по ним строится функционал, а потом ищите его минимум.
Просто, чтобы всё взлетело, нужно правильно описать критерии, особенно, если потом из будут между собой сравнивать.

Если точек мало, то можно простым перебором через стек, как это писалось для школьников - то есть мы просто имеем стек маршрута и в каждой точке перенумерованные направления в другие точки, которые мы будем перебирать по мере возрастания (ну и сразу исключая возвраты назад).
29 Torquader
 
23.10.13
21:42
Если двадцать точек, то перебрать нужно 20! вариантов, а это очень много, но если сразу отбрасывать маршруты с пересечениями, то будет намного меньше.
30 spectre1978
 
23.10.13
23:39
(25) сейчас им занимается еще меньше народу, ибо специальность не престижная. Не набирает наша кафедра абитуру... Но задачки подобные решали. Как курсовая были на 1 курсе, кому не досталось, те разбирали на третьем в теме целочисленного  программирования - метод ветвей и границ излучался как раз там.
31 spectre1978
 
23.10.13
23:40
* изучался
32 Armando
 
24.10.13
02:17
По букве "Я" вторая ссылка
http://infostart.ru/public/168209/
33 opty
 
24.10.13
02:38
Решал методом ближайшего соседа - прост в реализации , быстр ,достаточно точен с точки зрения практического использования , в среднем порядка 8-12 точек на маршруте
34 romba
 
24.10.13
11:04
Капец, из 30 постов один полезный.
spectre1978 - спасибо за ссылку, то что я хотел.
А товарищу  Fragster я бы рыло начистил, жаль нельзя это через интернет сделать.
35 Fragster
 
гуру
24.10.13
11:30
(34) дружище? ты о чем? о том, что в поиске яндекса вторая ссылка - то, что тебе нужно?
36 MadHead
 
25.10.13
00:28
(32) о мой ком объект. Только там в обработке в парсере результата есть ошибка. Сам ком объект работает стабильно
37 romba
 
25.10.13
15:11
(36) Что-то у меня infostart не открывается, можешь обработку еще куда-нибудь выложить или скинуть в romanryt#mail.ru?
38 МихаилМ
 
25.10.13
15:29
капец.
(0) выпускник математического факультета ОмГУ.
39 spectre1978
 
25.10.13
15:44
(34) да не за что, дружище. Мне яндекс открыть пока еще не влом :)