<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832813</guid>
        <pubDate>Fri, 19 Jun 2020 11:04:23 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832813</link>
        <description><![CDATA[swf: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3832811'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2020-06-19T13:53:47+03:00">19.06.20, 10:53</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3832805'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>swf &#064; <time class="tag-quote__quoted-time" datetime="2020-06-19T09:44:30+00:00">19.06.20, 09:44</time></span><div class='quote '>Если задача включает в себя коммивояжера и размерность задачи 250 (с точки зрения заказчика, это совсем немного), то размерность пространства решений равна 250&#33;, это больше чем число атомов в видимой нами части вселенной.</div></div><br>
Ну это именно теоретический подход с прицелом &quot;на статью&quot;.</div></div><br>
С этого начинается работа математика-постановщика. Вначале определяется класс задачи. <br>
Затем у заказчика запрашивается максимальный размер входных данных и определяется размерность пространства решений.<br>
И после этого сразу отбрасываются те методы, которые не укладываются <s class='tag-s'>в 5 минут</s> в оперативное планирование.]]></description>
        <author>swf</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832811</guid>
        <pubDate>Fri, 19 Jun 2020 10:53:47 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832811</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3832805'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>swf &#064; <time class="tag-quote__quoted-time" datetime="2020-06-19T09:44:30+00:00">19.06.20, 09:44</time></span><div class='quote '>Если задача включает в себя коммивояжера и размерность задачи 250 (с точки зрения заказчика, это совсем немного), то размерность пространства решений равна 250&#33;, это больше чем число атомов в видимой нами части вселенной.</div></div><br>
Ну это именно теоретический подход с прицелом &quot;на статью&quot;. <br>
<br>
А практически из 31 с хвостом тысячи межмагазинных линков после отсеивания заведомо идиотских останется тыща, ну может две, да и те распадаются на десяток-другой кластеров. То есть в реальности, как и сказал <strong class='tag-b'>Маршал</strong>,<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3832801'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Маршал &#064; <time class="tag-quote__quoted-time" datetime="2020-06-19T08:37:07+00:00">19.06.20, 08:37</time></span><div class='quote '>число посещаемых магазинов будет варьироваться от 1 до 7</div></div><br>
То есть программно практически без итераций формируется 99% плана разъездов. И лишь остаток закрывается с использованием всех существующих связей - да и его проще закрыть &quot;ближними перетасовками&quot;, чем одним покрывающим маршрутом. Даже жадный алгоритм, начинающий с дальних узлов, я думаю, отлично справится с задачей - нам же нужно получить план развоза, а не доказательство, что он оптимален...]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832809</guid>
        <pubDate>Fri, 19 Jun 2020 09:56:27 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832809</link>
        <description><![CDATA[Маршал: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Могу написать программу для N магазинов и K грузовиков, каждый из которых M(K) грузоподъемности</div></div><br>
Но пока занят другим проектом, и кроме того коммерческого предложения на разработку этой программы у меня нет. В области реального количества вариантов которые останутся если сначала отбраковать все невозможные, решение не будет занимать много компьютерного времени. В этом я и вижу смысл &quot;не искать лучший математический алгоритм&quot; а &quot;отбраковать все нереальные на ранней стадии&quot;]]></description>
        <author>Маршал</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832805</guid>
        <pubDate>Fri, 19 Jun 2020 09:44:30 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832805</link>
        <description><![CDATA[swf: 5 минут прописывается в техзадании, это требование заказчика.<br>Если задача включает в себя коммивояжера и размерность задачи 250 (с точки зрения заказчика, это совсем немного), то размерность пространства решений равна 250&#33;, это больше чем число атомов в видимой нами части вселенной.<br>Впрочем, заказчика атомы в видимой нами части вселенной не волнуют, он точно знает, что он нажал кнопку и не более чем через 5 минут должен выйти суточный план.]]></description>
        <author>swf</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832803</guid>
        <pubDate>Fri, 19 Jun 2020 09:25:20 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832803</link>
        <description><![CDATA[Маршал: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Эти данные загружаются в программу, нажимают кнопку, через 5(пять) минут должен выйти план.<br>
Поэтому линейное программирование сразу идёт в топку</div></div><br>
А можно пояснить что значит через 5 минут должен выйти план. <br>
Компьютер считает исключительно быстро, (при малом числе вариантов например менее 1000 магазинов) слабым звеном здесь является оператор(диспетчер) который вводит данные тут и 5 и 30 мин может быть ... но при удобном интерфейсе программы и при правильном планировании рабочего времени проблем не вижу.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Далее, предположим, мы написали программу для 20 магазинов</div></div><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Далее, фирма прикупила ещё два транспортных средства, разной ёмкости</div></div><br>
Могу написать программу для N магазинов и K грузовиков, каждый из которых M(K) грузоподъемности, руководствуясь вышеизложенным принципом построения цепочек по грузоподъемности. Но оставлю этот алгоритм для автора, дабы не лишать его удовольствия от создания интересной и полезной программы.]]></description>
        <author>Маршал</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832802</guid>
        <pubDate>Fri, 19 Jun 2020 08:58:12 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832802</link>
        <description><![CDATA[swf: Что такое оперативное планирование производства при горизонте планирования сутки.<br>Утром появляется суточный портфель заказов.<br>Эти данные загружаются в программу, нажимают кнопку, через 5(пять) минут должен выйти план.<br>Поэтому линейное программирование сразу идёт в топку. <br><br>Далее, предположим, мы написали программу для 20 магазинов. А 20 магазинов ещё можно перебрать.<br>А через некоторое время появляются ещё 5 магазинов, уже программа идёт в топку.<br>Магазины, конечно, надо агрегировать и для понижения размерности задачи, и на случай увеличения размерности входных данных.<br>Новые магазины добавляются в группы. а там можно увеличивать количество &quot;ходок&quot; при увеличении объёма товара.<br><br>Далее, фирма прикупила ещё два транспортных средства, разной ёмкости. <br>Программа для одного грузовика идёт в топку.<br>С другой стороны, для разработчика это хорошо, без дела не сидит  :D]]></description>
        <author>swf</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832801</guid>
        <pubDate>Fri, 19 Jun 2020 08:37:07 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832801</link>
        <description><![CDATA[Маршал: Если рассуждать логически из физического смысла задачи, грузовик имеет грузоподъемность (это не почтальон который может носить 100 писем)<br>поэтому число посещаемых магазинов будет варьироваться от 1 до 7 (6/3.2)...(6/0.8).<br>Теперь можно составить списки (цепочки) посещений магазинов которые удовлетворяют условию: Сумма отвозимых товаров не более грузоподъемности.<br>пример<br>вариант 1<br>A(3.0) - B(2.5) - C(0.5)<br>D(2.5) - E(1.5) - F(1.0) - G(0.5)<br>H(1.0) - I(1.0) - J(1.0)<br>вариант 2<br>A(3.0) - D(2.5) - C(0.5)<br>B(2.5) - E(1.5) - F(1.0) - G(0.5)<br>H(1.0) - I(1.0) - J(1.0)<br>и т.д.<br>Простой перебор (вариантов цепочек + перебор внутри цепочек) решает задачу. Критерий для сравнения вариантов суммарный путь грузовика.]]></description>
        <author>Маршал</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832777</guid>
        <pubDate>Fri, 19 Jun 2020 03:19:14 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832777</link>
        <description><![CDATA[Black_Dragon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3832732'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-06-18T07:32:51+00:00">18.06.20, 07:32</time></span><div class='quote '>стопицот миллионов</div></div><br>
Один грузовик не осилит  :lol: <br>
<br>
Есть &quot;главный&quot; вопрос: это теоретическая задача или это будет практическое применение?<br>
<br>
На практике. За достоверность не ручаюсь.<br>
Заказы надо получать утром, это если это продуктовые магазины. Хозяйственные, строительные и т.д. в течении дня или недели.<br>
Один грузовик не будет возить продукты и не продукты (даже по очереди), сан.нормы.<br>
Продукты развозятся или с местных заводов или с центрального склада. В первом случае получается узко специализированная поездка, например, развозка из теплицы огурцов и помидоров, что одним грузовиком можно охватить много магазинов. Хлебобулочные сразу же с пекарни отгружаются в магазины, молочка тоже. У каждого может быть свой грузовик, а возможно общий.<br>
Не продукты так же возможно отгрузка не с центрального склада, а с фабрики/завода и так же будет тематической.<br>
<br>
Мне кажется, что задача, приближенная к реальности, будет решаться проще, с разбивкой на частные случаи или подзадачи. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-06-19T03:36:14+00:00">19.06.20, 03:36</time></span></span><br>
Если чисто теоретически, что за товар не известно, т.е. не делим продукты и не продуты и один склад.<br>
<br>
На вскидку вижу два стартовых шага/направления с повторением цикла:<br>
1) Берем тот продукт, масса которого самая большая, строим для него оптимальный маршрут(ы), может быть с несколькими поездками, в последнем случае с не полной загрузкой, докидываем потребность этих же магазинов другим товаром.<br>
2) Берем такой товар, для которого самый длинный маршрут по длине пути или по количеству магазинов. В случае недогруза, докидываем товарами из объезжаемых магазинов.]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832766</guid>
        <pubDate>Thu, 18 Jun 2020 16:10:17 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832766</link>
        <description><![CDATA[swf: to <strong class='tag-b'>m-ch</strong><br>
Приветствуем нового <s class='tag-s'>рыцаря</s> участника Алгоритмов&#33;<br>
Давно уже к нам специалисты не заглядывали.<br>
<br>
Задача массовая, много раз возникала на моём жизненном пути (то газовые баллоны по частным домам развозят, то хлебобулочные изделия по магазинам несколькими транспортными средствами различной ёмкости).<br>
Не бралась за неё. И сейчас не возьмусь. Просто не удержалась и вставила свои 3 коп.<br>
Нет входных данных. <br>
Все эвристические алгоритмы доводятся до рабочего состояния на входных данных.<br>
То есть вначале надо получить данные хотя бы за полгода (данные - это расписания, которые составлял человек-диспетчер), лучше за год, ещё лучше побеседовать с диспетчером и выяснить, какие ограничения можно нарушать, а чего нарушать крайне нежелательно, потом обязательно писать код и смотреть как это работает на реальных данных, менять алгоритмы.<br>
<br>
Но могу сказать одно, по опыту решения других задач.<br>
Если для подобной, весьма сложной реальной задачи с элементами коммивояжера, для большой размерности сделать эвристический алгоритм, который будет прекрасно (и быстро&#33;) работать, то работать он будет не по науке и статью про это не напишешь.<br>
А вот если делать чем-то модным (неважно чем, лишь бы мейнстрим), например, генетическими алгоритмами, то работать оно будет плохо, зато с публикациями будет полный порядок.<br>
Либо шашечки, либо ехать. Вот такая моя т.н.т.з.  :D]]></description>
        <author>swf</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832732</guid>
        <pubDate>Thu, 18 Jun 2020 07:32:51 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832732</link>
        <description><![CDATA[JoeUser: Есть вот какое предложение ... <br><br>Допустим у нас не 10 магазинов, а стопицот миллионов (пусть это размер N). Полный перебор сразу можно делегировать правнукам. Но задачу же все равно нужно решать. А что если произвести предварительную &quot;подготовку&quot;?<br><br>1) Матрицу NxN разделить на крупные области, ну как в картографии - &quot;квадраты&quot;<br>2) Если квадраты получаются тоже большого размера, каждый квадрат так же разделить на &quot;под-квадраты&quot;<br>3) Итерация п.2 до разумных размеров полученных &quot;под-квадратов&quot;<br>4) Построить матрицы стоимостей путей между квадратами, под-квадратами, под-под- квадратами, но только на своих уровнях<br><br>И теперь получается следующее. Пусть грузовик находится в квадрате A1, и есть варианты куда доставить груз - это квадраты M122, N3, Z14. По предварительно рассчитанным данным мы сразу выбираем нужный квадрат, в нем подквадрат и т.д.<br><br>Предложение мое конечно &quot;сыровато&quot;, но оно призвано уменьшить объемы пересчетов путем отсечения ненужных областей для пересчетов.]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832730</guid>
        <pubDate>Thu, 18 Jun 2020 05:57:36 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832730</link>
        <description><![CDATA[m-ch: <strong class='tag-b'>swf</strong>,<br>
Предложенный мной алгоритм не исключает упрощения и эвристики<br>
Если &quot;магазинов&quot; много, и значение 2^n (где n - количество магазинов) большое, становится не рационально генерировать все комбинации маршрутов<br>
На этапе 1-2 исключаем варианты, в которых расстояние больше определенного, либо, как предложили Вы группируем магазины, в качестве группировки можно использовать алгоритм k-means <br>
Этап 1-2 делается один раз для заданной логистической схемы, поэтому на него можно потрать определенное время<br>
<br>
А задачу &quot;рюкзака&quot; можно решать как переборами, для малых значений заказов, так и динамикой, ну или даже &quot;жадным&quot; алгоритмом, если важна скорость решения.<br>
Все зависит от исходных данных и масштабов модели.<br>
<br>
Думаю, что для небольшой сетки (пару десятков магазинов) можно найти оптимальное решение через линейное программирование, для большего количества, используя эвристики, достаточно близкое к оптимальному за разумное время.]]></description>
        <author>m-ch</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832725</guid>
        <pubDate>Wed, 17 Jun 2020 20:22:38 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832725</link>
        <description><![CDATA[swf: Ну тут сразу надо отказаться от попыток найти оптимальное решение точным алгоритмом.<br>Что-то эвристическое на здравом смысле.<br>А насколько непредсказуемо магазины делают заказы? Заказывают каждый день? раз в неделю? раз в месяц?<br><br>Если заказывают более-менее равномерно по времени. <br>Это всё на плоскости происходит, можно сказать, на карте.<br>Разделить карту на квадранты, сгруппировать магазины по квадрантам.<br>Средняя суммарная потребность одной группы не должна превосходить 6 тонн.<br>В идеальной ситуации грузовик объезжает группу - возвращается, загружается и едет в следующую группу. <br>Если что-то пошло не так. <br>В каких-то группах сегодня недогруз, в каких-то - перегруз.<br>Берём список групп-&quot;ближайших соседей&quot; группы с недогрузом, ищем группу с максимальным &quot;перегрузом&quot; и в заключении маршрута из одной группы с недогрузом переезжаем в группу с перегрузом.<br>Если во всех группах одновременно недогруз или перегруз, значит группы неправильно сформированы.<br><br>Как внутри группы объезжать магазины - водила сам догадается.<br>Остаётся только задача набора заданного веса из заданных слагаемых. <br>Если слагаемых меньше 20, то алгоритмом с возвратом. Больше - динамикой. Сверхбольшой размерности тут, видимо, нет.]]></description>
        <author>swf</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832712</guid>
        <pubDate>Wed, 17 Jun 2020 13:48:26 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3832712</link>
        <description><![CDATA[m-ch: Я бы предложил следующий алгоритм:<br>1. Составить все варианты сочетания магазинов (маршрутов), для 8ми магазинов из #5 получится 2^8-1 = 255 маршрутов<br>2. Решить задачу коммивояжера для каждого маршрута (наименьший путь)<br>3. Исходя из требуемых заказов составить все варианты упаковки груза не превышающий грузоподъемность машины<br>4. Составить линейную модель где требуется минимизировать пробег, выполнив все заказы используя варианты упаковки из п.3 с учетом весов полученных в п.2. для каждого маршрута и решить ее целочисленным линейным программированием]]></description>
        <author>m-ch</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817346</guid>
        <pubDate>Wed, 25 Dec 2019 13:44:31 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817346</link>
        <description><![CDATA[AVA12: Я почитал про транспортную задачу в Википедии - там нет ничего про транспортную сеть. Есть только стоимости доставки из пункта производства a[i] в пункт потребления b[j]. Но у нас другой случай: если имеется плотный кластер магазинов, к которому от хаба ведет длинная дорога, то минимальная стоимость доставки товаров ко всем магазинам кластера будет меньше, чем сумма стоимостей доставки к каждому из них. Свести имеющуюся задачу к транспортной (назначить некоторые магазины временными &quot;пунктами производства&quot;) так просто не получается.]]></description>
        <author>AVA12</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817325</guid>
        <pubDate>Wed, 25 Dec 2019 03:30:22 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817325</link>
        <description><![CDATA[Gonarh: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3817286'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AVA12 &#064; <time class="tag-quote__quoted-time" datetime="2019-12-23T17:59:28+00:00">23.12.19, 17:59</time></span><div class='quote '>Ну, вроде, ясно. Получается самый сложный случай, задача коммивояжера плюс задача о рюкзаке. Разве что принцип &quot;один магазин - одна доставка&quot; слегка утешает. Надо думать.</div></div><br>
Типичная транспортная задача, решается методом симплекса]]></description>
        <author>Gonarh</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817323</guid>
        <pubDate>Wed, 25 Dec 2019 03:14:00 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817323</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3817305'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AVA12 &#064; <time class="tag-quote__quoted-time" datetime="2019-12-24T12:50:00+00:00">24.12.19, 12:50</time></span><div class='quote '>Гм. А какие тут базовые требования? Что именно нельзя нарушать?</div></div><br>
ну, например, грузоподъемность грузовичка (хотя на грузовик не тянет) ) в 6тонн и т.п.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3817305'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AVA12 &#064; <time class="tag-quote__quoted-time" datetime="2019-12-24T12:50:00+00:00">24.12.19, 12:50</time></span><div class='quote '>Я уже упоминал вариант радикального упрощения задачи: вместо неупорядоченного набора заказов использовать очередь, и грузить заказы в машину строго в порядке их поступления. Тогда действительно сложной проблемой будет только выбор, грузить очередной заказ &quot;прям щас&quot; или оптимальнее будет отложить его для следующей доставки. </div></div><br>
ясно, ну, тогда на этом и остановимся, может что-то и получится.<br>
<br>
всем спс. за участие&#33;<br>
<br>
г<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">рафы - опаснейшие химеры, обладающие какой-то бесконечной лютой сложностью на определенном этапе)) а ведь существует миллион графовых задач в разы сложнее, как их решают, хз)...<br>
и вообще, мне кажется (возможно, что именно КАЖЕТСЯ), что графы - апофеоз сложности в Computer Science...те же деревья - частный случай графа вроде</div></div>]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817305</guid>
        <pubDate>Tue, 24 Dec 2019 12:50:00 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817305</link>
        <description><![CDATA[AVA12: Гм. А какие тут базовые требования? Что именно нельзя нарушать?<br><br>Я уже упоминал вариант радикального упрощения задачи: вместо неупорядоченного набора заказов использовать очередь, и грузить заказы в машину строго в порядке их поступления. Тогда действительно сложной проблемой будет только выбор, грузить очередной заказ &quot;прям щас&quot; или оптимальнее будет отложить его для следующей доставки.]]></description>
        <author>AVA12</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817304</guid>
        <pubDate>Tue, 24 Dec 2019 11:28:59 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817304</link>
        <description><![CDATA[Pavia: Хотите упростить? Тогда сделайте размер заказа фиксированным 1 или 3 тонны.]]></description>
        <author>Pavia</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817295</guid>
        <pubDate>Tue, 24 Dec 2019 05:02:26 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817295</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3817290'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2019-12-23T18:45:49+00:00">23.12.19, 18:45</time></span><div class='quote '>Граф - кольцо из хаба и 3 магазинов. Потребность каждого 2, грузоподъёмность 3.</div></div><br>
понимаю, что имеешь ввиду этим примером<br>
тут просто лексически я подразумевал разность слов &quot;приехал&quot; и &quot;проехал(мимо/через)&quot;, т е грузовик приехал в городN и отгрузил товар (стоянка какая-то), а если он едет в др.город транзитом через N, то грузовик ПРОЕХАЛ не останавливаясь, как бы)<br>
тут все понятно и спорных моментов нет никаких&#33;<br>
<br>
в общем быстро прочитал/вспомнил задачи о рюкзаке и коммивояжера. Как-то все слишком сложно получается применительно к моей задаче, т к грузовику нужно возвращаться на дозаправку товаром (например, в коммивояжера лишь 1 рейс делается через все города)<br>
<br>
еще: поскольку грузовику нужно возвращаться на дозаправку товаром, то нужен обязательно алгоритм Дейкстры, который построит этот минимальный маршрут из магазина, где была последняя отгрузка (грузовик стал пустым) до хаба.<br>
<br>
еще: наверняка потребуется применить алгоритм Флойда-Уоршелла для построения матриц кратчайших расстояний между вершинами графа<br>
<br>
не уверен, еще какой-нибудь мин.остов нужен и пр. пр.<br>
и при этом нужны всякие NP-переборы.<br>
<br>
СЛИШКОМ СЛОЖНО ВСЕ&#33; Слишком большая концентрация графовых алгоритмов в одной задаче (прим.ТС, знать бы еще их хорошо) Надо упрощать, причем значительно&#33;<br>
<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="red" style="color: red"><span class='tag-size' data-value='14' style='font-size:14pt;'>ВОПРОС: как можно значительно упростить данную задачу, введя какие-то допущения, ограничения, но не нарушая базовых требований задачи??</span></span></strong><br>
<br>
т е на данный момент задача имеет сложность 8 из 10, надо ее превратить в сложность 3/4 из 10, т е не максимально упростить до сложности 1 из 10, а до 3/4 из 10.<br>
сделать граф полностью связным? да никак это вроде не поможет.<br>
вот за счет чего можно упростить?]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817290</guid>
        <pubDate>Mon, 23 Dec 2019 18:45:49 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817290</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3817284'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2019-12-23T17:35:20+00:00">23.12.19, 17:35</time></span><div class='quote '>а если нет необходимого кол-ва товара, тогда спрашивается, зачем он туда приехал</div></div><br>
Граф - кольцо из хаба и 3 магазинов. Потребность каждого 2, грузоподъёмность 3.<br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-12-23T18:49:11+00:00">23.12.19, 18:49</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3817286'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AVA12 &#064; <time class="tag-quote__quoted-time" datetime="2019-12-23T17:59:28+00:00">23.12.19, 17:59</time></span><div class='quote '>Разве что принцип &quot;один магазин - одна доставка&quot; слегка утешает.</div></div><br>
Причём на порядки. Фактически сводя задачу к линейному раскрою (или получится совсем нереальный граф).]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817286</guid>
        <pubDate>Mon, 23 Dec 2019 17:59:28 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817286</link>
        <description><![CDATA[AVA12: Ну, вроде, ясно. Получается самый сложный случай, задача коммивояжера плюс задача о рюкзаке. Разве что принцип &quot;один магазин - одна доставка&quot; слегка утешает. Надо думать.]]></description>
        <author>AVA12</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817284</guid>
        <pubDate>Mon, 23 Dec 2019 17:35:20 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817284</link>
        <description><![CDATA[FasterHarder: на рис. один из вариантов такой сети дороги-магазины-хаб<br>
<br>
<span class="b-attach" data-size="32378" data-hits="2222" data-attach-id="61230" data-attach-post-id="3817284">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3817284&amp;attach_id=61230' title='Скачать файл' target='_blank'>______.png</a> (, : 2222)
		</span><br>
<br>
Т е программа запрашивает кол-во магазинов, затем их названия, затем расстояние между магазинами или хабом и магазином (инициализация) - тут все понятно&#33;<br>
<br>
Сразу оговорка: товар однотипный, т е это НЕЧТО, имеющее какой-то вес и все)<br>
<br>
Затем в программе вводится для магазинов, кол-во необходимого им товара, например:<br>
1 1.1<br>
3 0.85<br>
4 3.3<br>
5 1.7<br>
...<br>
Если кол-во товара для какого-то магазина НЕ ЗАДАЕТСЯ, значит оно равно 0 (логично)<br>
<br>
Грузовик (6тонн) начинает движение с ХАБА (всегда) и заканчивает движение в ХАБЕ (всегда). Его цель: доставить товар во все магазины в нужном кол-ве. Остатка в кузове быть НЕ ДОЛЖНО, т е приезжает на ХАБ пустым. В процессе доставки товаров может многократно проезжать через ХАБ, т е нет цели посещать магазины (вершины графа) ровно по 1 разу.<br>
Поскольку кол-во магазинов может быть очень большим и большинство из них хотят заполучить этот товар, то обычно за 1 рейс грузовик не управится. Кол-во рейсов НЕ имеет значения (столько, сколько нужно).<br>
<br>
Цель грузовика: намотать мин.километраж (кол-во рейсов НЕ важнО), обслужив все магазины.<br>
Кол-во товара на складе неограниченно.<br>
<br>
<br>
<strong class='tag-b'>AVA12</strong>, не знаю, ответил ли я этим на твои вопросы...<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416459&view=findpost&p=3817281'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2019-12-23T17:02:55+00:00">23.12.19, 17:02</time></span><div class='quote '>В общем, по большому счёту, NP или очень близко,</div></div><br>
т е даже НЕ нужно считать кратчайшие расстояние от ХАБА до каждого магазина (алг.Дейкстры)? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-12-23T17:52:29+00:00">23.12.19, 17:52</time></span></span><br>
также давайте считать, что товар НЕ МОЖЕТ разгружаться частично, т е грузовик приехал в магазинN и отгрузил ВЕСЬ товар, который нужен этому магазину при условии, что в кузове есть необходимое кол-во товара (а если нет необходимого кол-ва товара, тогда спрашивается, зачем он туда приехал) )<br>
может это важно)]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817283</guid>
        <pubDate>Mon, 23 Dec 2019 17:32:05 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817283</link>
        <description><![CDATA[AVA12: Я бы не стал априорно высчитывать количество рейсов. Может получиться так, что для минимизации тонно-километров количество рейсов должно быть в несколько раз больше такого минимума.]]></description>
        <author>AVA12</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817281</guid>
        <pubDate>Mon, 23 Dec 2019 17:02:55 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817281</link>
        <description><![CDATA[Akina: Если предположить, что обеспечение всех заказов является обязательным условием, возможны два критерия. Первый - минимизация времени. Второй - минимизация тонно-километров (в первом приближении - расстояния).<br>
<br>
В принципе обе версии фактически сводятся к одной - к задаче о рюкзаке. Где на первом шаге определяется количество рейсов, которое получится <strong class='tag-b'><em class='tag-i'>roundup(общий вес / грузоподъёмность)</em></strong>, возможно ещё плюс один, если расстояние сильно варьирует. А на втором выполняется деление на рюкзаки (загрузки), для загрузок в несколько точек - минимизация расстояния/времени.<br>
<br>
В общем, по большому счёту, NP или очень близко, так что да, динамика на базе графа.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817280</guid>
        <pubDate>Mon, 23 Dec 2019 16:55:32 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817280</link>
        <description><![CDATA[AVA12: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Есть задача, примерно такого содержания</div></div><br>
Все-таки надо уточнить - что на входе, что должно получиться на выходе. Если на входе конкретный список заказов для конкретной поездки (без &quot;дозаправки&quot;), то решение тривиально (тупой перебор небольшого количества вариантов). Если есть очередь заказов, не влезающих в грузовик, тогда все уже сложнее. Если и очереди нет, а есть неупорядоченный набор заказов, и нужно минимизировать общее время доставки, то это уже две сложные задачи.]]></description>
        <author>AVA12</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817278</guid>
        <pubDate>Mon, 23 Dec 2019 16:26:45 +0000</pubDate>
        <title>Грузовик доставляет товары по сетке магазинов (оптимальный маршрут)</title>
        <link>https://forum.sources.ru/index.php?showtopic=416459&amp;view=findpost&amp;p=3817278</link>
        <description><![CDATA[FasterHarder: Всем хай&#33; Сходу к делу&#33;<br>
Есть задача, примерно такого содержания: <strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">есть сеть магазинов, в которые грузовик доставляет товары. Грузоподъемность грузовика 6тонн (прим.маловато будет). Средние величины заказов из отрезка [0.8 ... 3.2]тонн. Все магазины снабжаются из одного хаба (распределительный центр). Т е из этого хаба начинает движение грузовик. Также известны расстояния между магазинами (не между всеми магазинами есть связь), а также расстояние от магазинов до склада/хаба. Нужно получить ОПТИМАЛЬНЫЙ МАРШРУТ движения грузовика с целью доставки товаров по всем магазинам.</span></strong><br>
<br>
1. Вот 100пудово это НА ГРАФЫ (неор.графы)&#33;<br>
2. Под оптимальностью, что понимать? Ну, мне кажется, что минимизация пройденного пути грузовиком. (не факт, что я прав)<br>
3. Как понимаю, грузовик не факт, что управится за 1 рейс. Может быть и 2 и 3 и 23 рейса...<br>
4. Все товары на складе, т е грузовик стартует с хаба и &quot;дозаправляется&quot; товаром также со склада<br>
*5. Из условия вроде не гарантируется, что есть ПРЯМОЙ путь от склада до любого магазина (не уверен)<br>
<br>
Это вообще, в сторону чего копать графы нужно?<br>
<br>
Подскажите как быть-то? <br>
спс за внимание&#33;]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	