<?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=428213&amp;view=findpost&amp;p=3898080</guid>
        <pubDate>Tue, 19 Dec 2023 07:19:08 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3898080</link>
        <description><![CDATA[Квант: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870039'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T05:58:08+03:00">28.06.22, 02:58</time></span><div class='quote '>Нужно построить маршрут движения поезда между двумя заданными городами, чтобы по нему могли ездить поезда максимально возможного веса.<br>
Это случаем не построение остова, только не минимального, как принято, а максимального? + при этом фактор протяженности вообще не играет никакой роли, как понимаю, нужно смотреть ТОЛЬКО на тоннаж.<br>
Или есть какое-то стандартное название алгоритма для такого задания?</div></div><br>
Получилось решить?<br>
Фактор протяженности влияет, но и дополнительное условие есть.<br>
Насколько знаю, такая задача называется - Constrained Shortest Path First]]></description>
        <author>Квант</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870610</guid>
        <pubDate>Sat, 02 Jul 2022 10:06:56 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870610</link>
        <description><![CDATA[Majestio: <strong class='tag-b'>FasterHarder</strong>, посмотри видосик - <a class='tag-url' href='https://www.youtube.com/watch?v=8KTzAiusfPs' target='_blank'>возможно тебя это заинтересует</a>.]]></description>
        <author>Majestio</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870546</guid>
        <pubDate>Fri, 01 Jul 2022 10:02:38 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870546</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870518'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>m&#045;ch &#064; <time class="tag-quote__quoted-time" datetime="2022-07-01T06:01:02+00:00">01.07.22, 06:01</time></span><div class='quote '>3. По найденному маршруту определяем минимальный вес в маршруте, это и будет ограничение поезда из одного города в другой</div></div><br>
Вот как-то неочевидно.<br>
Минимальное остовное дерево минимизирует именно вес всего дерева, а не максимальную стоимость ребра этого дерева. Аналогично-обратно и для максимального дерева.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870518'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>m&#045;ch &#064; <time class="tag-quote__quoted-time" datetime="2022-07-01T06:01:02+00:00">01.07.22, 06:01</time></span><div class='quote '>при этом вес поезда будет не менее уже определенного</div></div><br>
Вот&#33; сам говоришь - не меньше&#33; Значит, может быть и больше? А значит, может быть и более одного маршрута, где больше, и у них эти &quot;больше&quot; могут быть разными. И тот, у которого будет самое большое &quot;больше&quot; (да и вообще требующийся в задаче путь), не обязан быть кратчайшим. <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="2022-07-01T10:07:59+00:00">01.07.22, 10:07</time></span></span><br>
<br>
В теории задача решается экстенсивно (не знаю как будет с производительностью).<br>
<br>
Просто берём и волновым или иным алгоритмом тупо убеждаемся, что узел назначения достижим из исходного узла. Плюя ядовитой слюной на длину и пропускную способность.<br>
Выбрасываем минимальное по пропускной способности ребро (если использовали не волну, а что-то ещё, и на предыдущем поиске фиксировали путь - выбрасываем минимальное ребро пути и сразу все меньшие рёбра, в путь не входящие). Повторяем.<br>
Выбрасываем рёбра до тех пор, пока при очередном выбрасывании не получим недостижимость.<br>
Вот собственно вес этого последнего выброшенного ребра и будет возможным максимумом пропускной способности любого пути от исходного узла до узла назначения. Более того, любой маршрут будет проходить через это ребро.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870518</guid>
        <pubDate>Fri, 01 Jul 2022 06:01:02 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870518</link>
        <description><![CDATA[m-ch: Как я вижу решение задачи № 2: &quot;Нужно построить маршрут движения поезда между двумя заданными городами, чтобы по нему могли ездить поезда максимально возможного веса.&quot;<br><br>1. Строим максимальное оставное дерево (аналогично, как и минимальное), используя пропускную способность ребер.<br>2. Находим по остову маршрут от заданных точек начала и конца любым алгоритмом (наверно подойдет волновой алгоритм)<br>3. По найденному маршруту определяем минимальный вес в маршруте, это и будет ограничение поезда из одного города в другой<br>4. Из исходного графа удаляем все ребра с пропускной способностью менее найденной и далее строим кратчайший маршрут Дейкстрой (или алгоритмом Левита, или Форда-Беллмана)от начальной до конечной точки, при этом вес поезда будет не менее уже определенного, а маршрут будет кратчайший из возможных.<br><br>Есть мысль, что п. 1 и 2 можно решить достаточно просто, немного изменив алгоритм Флойда-Уоршелла и за O(n^3) найдем все возможные максимальные веса поездов между всеми вершинами.<br>Если граф большой - несколько тысяч вершин, что вполне может быть для описание всех железнодорожных станций, то перебор O(n^3) будет сделать затруднительно]]></description>
        <author>m-ch</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870514</guid>
        <pubDate>Thu, 30 Jun 2022 21:19:33 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870514</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870464'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>esperanto &#064; <time class="tag-quote__quoted-time" datetime="2022-06-30T17:37:42+00:00">30.06.22, 17:37</time></span><div class='quote '>Есть задача найти путь когда длина пути это вес максимального ребра в нем, кажется это то, что надо? </div></div><br>
тут больше ответ - вес минимального ребра ( это будет предельный вес поезда, который может ехать ) среди всех ребер, образующих путь, но это я уже нашел<br>
<br>
зы: кстати, макс. остов обычно строят, просто меняя заданные веса ребер на отрицательные ( то, что было самым большим, становится самым маленьким ) и затем стандартный мин.остов]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870464</guid>
        <pubDate>Thu, 30 Jun 2022 17:37:42 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870464</link>
        <description><![CDATA[esperanto: @Нужно построить маршрут движения поезда между двумя заданными городами, чтобы по нему могли ездить поезда максимально возможного веса.@<br><br>Есть задача найти путь когда длина пути это вес максимального ребра в нем, кажется это то, что надо?]]></description>
        <author>esperanto</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870309</guid>
        <pubDate>Thu, 30 Jun 2022 03:26:38 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870309</link>
        <description><![CDATA[FasterHarder: <strong class='tag-b'>m-ch</strong><br>
я бы рад, но у меня и в помине нет никакого реального графа.<br>
Количество вершин и ребер - произвольное количество ( в рамках разумного ).<br>
<br>
<strong class='tag-b'>m-ch</strong>, у меня по этой задачке все алгоритмически почти готово ( Дейкстра на 100% ), а это макс. дерево на 80%, т к еще не оч.понятно, как восстанавливать путь между заданными вершинами. Над этим потихоньку думаю.]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870264</guid>
        <pubDate>Wed, 29 Jun 2022 12:05:12 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870264</link>
        <description><![CDATA[m-ch: <strong class='tag-b'>FasterHarder</strong><br>
Можешь приложить описание реального графа (сети дорог)?<br>
Сколько вершин и сколько ребер ориентировочно?]]></description>
        <author>m-ch</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870258</guid>
        <pubDate>Wed, 29 Jun 2022 11:47:39 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870258</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870205'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-29T04:27:53+00:00">29.06.22, 04:27</time></span><div class='quote '> Какой смысл соглашаться или не соглашаться с совсем другим методом?</div></div><br>
а я вообще ни на грамм не уверен, что у них правильно написано, т к не понимаю до конца)<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870205'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-29T04:27:53+00:00">29.06.22, 04:27</time></span><div class='quote '>Что DFS, что BFS - они в основном предназначены для поиска в древовидных и близких к ним графах и имеют определённые проблемы при работе с полными и близкими к ним графами</div></div><br>
это золотые слова&#33;<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870205'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-29T04:27:53+00:00">29.06.22, 04:27</time></span><div class='quote '>тут ты был, наверное, прав</div></div><br>
ну, хоть один раз из 100, хоть в чем-то, <strong class='tag-b'>наверное</strong>, прав  :D<br>
----------------------------------------------------<br>
<br>
Касательно построения максимального остова - встретил такое понятие в теории графов - редкая штука. В 1000 раз чаще минимальным остовом орудуют.<br>
Вот граф для подзадачи #2. Весом ребер выступает прочность железной дороги. Здесь вообще не сдалась инфо о протяженности, поэтому отбросим ее сразу, чтоб НЕ мешала и НЕ отвлекала:<br>
<span class="b-attach" data-size="36574" data-hits="471" data-attach-id="63566" data-attach-post-id="3870258">
			<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=3870258&amp;attach_id=63566' title='Скачать файл' target='_blank'>max_ostov.png</a> (, : 471)
		</span><br>
<br>
Максимальным остов получается вроде таким:<br>
<span class="b-attach" data-size="23507" data-hits="500" data-attach-id="63567" data-attach-post-id="3870258">
			<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=3870258&amp;attach_id=63567' title='Скачать файл' target='_blank'>max_ostov_2.png</a> (, : 500)
		</span><br>
<br>
Как я понимаю, справедливы следующие утверждения:<br>
1. Т к сначала задаются города для проложения маршрута, то выбирать можно ребро ( с макс. прочностью ) инцидентное стартовой вершине<br>
2. Необязательно строить ВЕСЬ макс. остов. Если было добавлено ребро, инцидентное конечной вершине - конец - маршрут проложен + он не может быть улучшен по прочности.<br>
3. Ответом является самое слабое по прочности ребро. Его можно сразу рассчитывать, при добавлении очередного ребра в макс остов.<br>
<br>
По сложности работы алго все достаточно плохо. В худшем случае, когда лишь на последней итерации прокладываются ребро до конечной вершины ( n - 1 по счету итерация, где n - количество вершин ), получается что-то около O( n^3 ), т к на каждой итерации надо просмотреть каждую вершину, которая &quot;в работе&quot; + у нее всех соседей. Все это дело помрет, наверное, уже от 500-1000 вершин).<br>
<br>
Понятно, что сложность можно улучшить, если поддерживать прочность ребер для каждой вершины в отсортированном по убыванию порядке, чтобы извлекать за время O( 1 ) очередное ребро с макс. &quot;весом&quot;.<br>
<br>
Не уверен, что этот макс. остов вот прям всегда работает правильно, т к эти графы бесконечно коварны и в запасе у них море подлянок))]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870205</guid>
        <pubDate>Wed, 29 Jun 2022 04:27:53 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870205</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870202'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T20:41:25+00:00">28.06.22, 20:41</time></span><div class='quote '>Я так понимаю, что ты с ними категорически не согласен?</div></div><br>
Какой смысл соглашаться или не соглашаться с совсем другим методом?<br>
<br>
Всё прекрасно получится. Другой вопрос, что поиск в ширину не выглядит оптимальным при фиксированных начальном и конечном узлах - но он так только выглядит. Ведь и тот, и другой поиски предполагают полный перебор и различаются только в порядке перебора. Как, кстати, и Дейкстра.<br>
<br>
Хотя есть и подвох. Что DFS, что BFS - они в основном предназначены для поиска в древовидных и близких к ним графах и имеют определённые проблемы при работе с полными и близкими к ним графами, в случае которых (тут ты был, наверное, прав) надо скорее думать о волновом алгоритме.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870202</guid>
        <pubDate>Tue, 28 Jun 2022 20:41:25 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870202</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870104'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T12:51:38+00:00">28.06.22, 12:51</time></span><div class='quote '>А кто мешает-то? Только я как-то смысла не вижу. От поиска в ширину он будет отличаться исключительно порядком сканирования вершин.</div></div><br>
ну, ничего не мешает, конечно, просто понятнее немного, как это будет<br>
кстати, встретил такую фразу в одном пособии, которое описывает поиск всех путей между заданными вершинами ( приложу скрин )<br>
<span class="b-attach" data-size="19848" data-hits="510" data-attach-id="63565" data-attach-post-id="3870202">
			<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=3870202&amp;attach_id=63565' title='Скачать файл' target='_blank'>not_BFS.png</a> (, : 510)
		</span><br>
Я так понимаю, что ты с ними категорически не согласен? ))<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870104'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T12:51:38+00:00">28.06.22, 12:51</time></span><div class='quote '> Зачем? проще её сразу тащить - всё равно вес-то тащим. </div></div><br>
попробую подумать над этим моментом<br>
<br>
<strong class='tag-b'>Akina</strong>, в целом большое спс. за помощь. Мне нужно подтягивать знания в вариантах, когда нужно что-то перебирать на графах рекурсивно, т к плоховато понимаю, как внедрить в таких случаях эти BFS / DFS...]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870104</guid>
        <pubDate>Tue, 28 Jun 2022 12:51:38 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870104</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870097'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T11:51:40+00:00">28.06.22, 11:51</time></span><div class='quote '>а разве нельзя и в этой подзадаче применить Дейкстру</div></div><br>
А кто мешает-то? Только я как-то смысла не вижу. От поиска в ширину он будет отличаться исключительно порядком сканирования вершин.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870097'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T11:51:40+00:00">28.06.22, 11:51</time></span><div class='quote '>Затем восстанавливаем траекторию</div></div><br>
Зачем? проще её сразу тащить - всё равно вес-то тащим.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870097</guid>
        <pubDate>Tue, 28 Jun 2022 11:51:40 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870097</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870068'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T08:17:59+00:00">28.06.22, 08:17</time></span><div class='quote '> Применительно к нагрузочной способности ребра. Т.е. поезд в 7 тонн нельзя разделить на два, в 3 и 4 тонны, и пропустить по ребру с нагрузочной способностью не более 5 тонн.</div></div><br>
ааааа, теперь я понял о чем речь. Такие моменты могут сильно влиять на ядра алгоритмов), но в этой задаче делить не будем.<br>
<br>
По заданию #2 вот еще раз формулировка: &quot;нужно найти МАРШРУТ между двумя разными городами, чтобы проехал поезд макс. веса&quot;.<br>
Т е нужно найти единственный маршрут. Если их несколько, то любой подойдет, наверное.<br>
А ведь в графе может быть бесконечное число маршрутов, т к в маршруте могут повторяться ребра и вершины. Но здесь это бессмысленно ( петлять поезду нет смысла ), т к пройденное расстояние вообще ни на что не влияет. Поэтому задачу можно свести к поиску пути ( все ребра и все вершины различны ) вроде бы.<br>
<br>
Чтобы найти нужный маршрут нужно перебрать их все. То есть от перебора никуда не деться.<br>
Кстати, ответом будет прочность самого слабого звена маршрута/пути - именно поезд такого предельного веса сможет курсировать по этой траектории.<br>
---------------------------------------------<br>
<strong class='tag-b'>Akina</strong>, поясни, плиз, а разве нельзя и в этой подзадаче применить Дейкстру, только перевернутого.<br>
Т е есть матрица прочности ( хранит тоннаж ).<br>
От заданного города находим максимальные &quot;расстояние&quot; до каждой вершины.<br>
Затем восстанавливаем траекторию: от конечного города двигаемся к начальному и одновременно с этим запоминаем минимальный тоннаж ( это и будет ответом ) + можно и сам маршрут вывести.<br>
Разве это не будет работать и это полный бред??)<br>
<br>
Просто BFS / DFS больше предназначен для обхода + там какая-то рекурсия неудобная вроде и пр. неприятности ), а перевернутый Дейскстра мне понятен на 99%...]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870068</guid>
        <pubDate>Tue, 28 Jun 2022 08:17:59 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870068</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870051'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T07:04:51+00:00">28.06.22, 07:04</time></span><div class='quote '>в каком контексте имеешь ввиду &quot;делимость поезда&quot;?</div></div><br>
Применительно к нагрузочной способности ребра. Т.е. поезд в 7 тонн нельзя разделить на два, в 3 и 4 тонны, и пропустить по ребру с нагрузочной способностью не более 5 тонн.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870051'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T07:04:51+00:00">28.06.22, 07:04</time></span><div class='quote '>Обычный поиск ВСЕХ путей графа - это ведь полный перебор получается всех возможных путей + их надо где-то сохранить, чтобы потом отсортировать тупой сортировкой</div></div><br>
У тебя не поиск всех путей, а поиск всех путей из заданного начала в заданный конец. И тут подойдёт обычный поиск в ширину, например.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870051'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T07:04:51+00:00">28.06.22, 07:04</time></span><div class='quote '>для задачи #1 достаточно иметь матрицу расстояний.</div></div><br>
А эта задача вообще не оперирует весом состава. А если его учитывать - то получается задача с двумя критериями, для которых ты не задаёшь приоритет. Что лучше - маршрут 100 км на 5 тонн или 150 км, но на 7 тонн? а фиг знает... критерий должен быть один, а не два.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870051</guid>
        <pubDate>Tue, 28 Jun 2022 07:04:51 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870051</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870040'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T04:29:18+00:00">28.06.22, 04:29</time></span><div class='quote '>1. Если поезд неделим, то да - выбрасываем рёбра, не отвечающие условию, применяем Дейкстру.</div></div><br>
отлично&#33; Значит с подзадачей #1 все понятно.<br>
Единственное уточнение, в каком контексте имеешь ввиду &quot;делимость поезда&quot;? Или речь о том, что поезд настолько длинный, что может не помещаться в рамках одной железной дороги?)<br>
Можно ведь рассматривать физ.модель графа, где поезд является некоторой точкой какого-то заданного веса.<br>
Но про делимость поезда мне любопытно понять, как это может влиять здесь, поясни, плз.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870040'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T04:29:18+00:00">28.06.22, 04:29</time></span><div class='quote '>2. Это будет обычный поиск всех путей в графе между заданными узлами. Просто в процессе построения дополнительно считается и вес, который пропустит путь. Ну а потом тупая сортировка.</div></div><br>
Так, а вот здесь хочется кое-что понять.<br>
Обычный поиск ВСЕХ путей графа - это ведь полный перебор получается всех возможных путей + их надо где-то сохранить, чтобы потом отсортировать тупой сортировкой).<br>
И поясни, плз, чем вариант с построением максимального остова плох?? Там тоже сначала надо будет отсортировать по убыванию нагрузки дороги и добавлять по одному ребру, начиная, с самого тяжелого. Разве это НЕ проще, чем полный перебор путей? + нет полных переборов, т е время работы алго будет быстрее. Возможно, что я здесь дико туплю и чего-то не выкупаю с этим макс.остовом.<br>
Кстати, этих остовов макс. тоже может быть больше 1го(. Да, наверное, не факт, что это ПРОЩЕ, чем полный перебор всех путей...<br>
*&quot;прочность&quot; искомого маршрута характеризуется самым слабым его звеном - просто так написал)<br>
Если искать все пути, то это ведь рекурсивный BFS/DFS, наверное...<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870040'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T04:29:18+00:00">28.06.22, 04:29</time></span><div class='quote '>3. Я бы выбрал именно матрицу смежности. Просто вместо тупых единичек там будет нагрузочная способность ребра. </div></div><br>
+1, для задачи #1 достаточно иметь матрицу расстояний. Для задачи #2 пока непонятно, поэтому структуры данных нужно будет еще тщательно продумать...<br>
<br>
<br>
<strong class='tag-b'>m-ch</strong>, привет&#33; Залетай почаще в обсуждения графов - любопытно почитать твои мысли по ним)<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870044'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>m&#045;ch &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T05:57:15+00:00">28.06.22, 05:57</time></span><div class='quote '> Исходя их картинки, то граф достаточно разреженный (от каждой вершины идет по небольшому количеству ребер)</div></div><br>
ну это так на данный картинке, теоретически граф может быть полным.<br>
кстати, это деление на разреженные/не разреженные графы вроде как условно.<br>
припоминаю, что считают некий коэффициент, как отношение [текущего количества ребер] / [количество ребер полного графа]. Если K = 1 - полный граф, если 0 - пустой, у которого все вершины изолированные.<br>
Чему должен быть равен этот коэффициент ( из интервала ( 0; 1 ) ), чтобы отнести граф к разреженным?) Ты для себя, чему этот коэффициент принимаешь или на &quot;глазок&quot; больше?<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428213&view=findpost&p=3870044'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>m&#045;ch &#064; <time class="tag-quote__quoted-time" datetime="2022-06-28T05:57:15+00:00">28.06.22, 05:57</time></span><div class='quote '>Может подойдет алгоритм Форда-Беллмана</div></div><br>
емнип, у него акцент на орграфы + когда есть отр.веса. В этой задаче все числа положительные + неорграф.<br>
Хотя понятно, что и Дейкстру и Форд-Беллман можно применить, но по Дейкстре хоть что-то помню), поэтому выберу Dijkstra<br>
<br>
<strong class='tag-b'>Akina</strong>, <strong class='tag-b'>m-ch</strong>, спс за ответы]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870044</guid>
        <pubDate>Tue, 28 Jun 2022 05:57:15 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870044</link>
        <description><![CDATA[m-ch: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Какой формат описания графа является оптимальным для решения этих подзадач?</div></div><br>
Исходя их картинки, то граф достаточно разреженный (от каждой вершины идет по небольшому количеству ребер)<br>
В данном случае лучше реализовать <a class='tag-url' href='http://e-maxx.ru/algo/dijkstra_sparse' target='_blank'>алгоритм Дейкстры для разреженных графов</a>, будет считать быстрее, если граф большой.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Нужно построить маршрут движения поезда между двумя заданными городами, чтобы по нему могли ездить поезда максимально возможного веса</div></div><br>
Может подойдет алгоритм Форда-Беллмана, только вместо выбора минимального веса в ребрах выбирать максимальную грузоподъёмность<br>
По сути задача похожа на эту: <a class='tag-url' href='https://www.cyberforum.ru/algorithms/thread2992509.html' target='_blank'>https://www.cyberforum.ru/algorithms/thread2992509.html</a>]]></description>
        <author>m-ch</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870040</guid>
        <pubDate>Tue, 28 Jun 2022 04:29:18 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870040</link>
        <description><![CDATA[Akina: 1. Если поезд неделим, то да - выбрасываем рёбра, не отвечающие условию, применяем Дейкстру.<br>2. Это будет обычный поиск всех путей в графе между заданными узлами. Просто в процессе построения дополнительно считается и вес, который пропустит путь. Ну а потом тупая сортировка.<br>3. Я бы выбрал именно матрицу смежности. Просто вместо тупых единичек там будет нагрузочная способность ребра.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870039</guid>
        <pubDate>Tue, 28 Jun 2022 02:58:08 +0000</pubDate>
        <title>алгоритм Дейкстры с доп.условием</title>
        <link>https://forum.sources.ru/index.php?showtopic=428213&amp;view=findpost&amp;p=3870039</link>
        <description><![CDATA[FasterHarder: Всем хай&#33; Сходу к делу&#33;<br>
<br>
Условие такое.<br>
<span class="tag-color tag-color-named" data-value="blue" style="color: blue">Есть города, которые связаны двусторонней железной дорогой ( т е, если поезд может доехать из А в Б, то автоматом может и из Б в А - намек на <strong class='tag-b'>неориентированный </strong>граф ).<br>
Каждая железная дорога характеризуется:<br>
1. своей протяженностью ( например, в км. )<br>
2. максимальным весом ( например, в тонн. ) поезда, который может по ней ехать.</span><br>
<br>
Вот один из примеров:<br>
<span class="b-attach" data-size="20845" data-hits="613" data-attach-id="63551" data-attach-post-id="3870039">
			<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=3870039&amp;attach_id=63551' title='Скачать файл' target='_blank'>start_graph.png</a> (, : 613)
		</span><br>
Например, железная дорога из Самары в Новгород ( или наоборот - не важно ) имеет протяженность 4 км. и по ней может ехать поезд весом НЕ БОЛЕЕ 7 тонн.<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="red" style="color: red">И нужно найти кратчайший путь ( в км. ) между двумя заданными городами.</span></strong><br>
--------------------------------------------------------------------------------<br>
Я так понимаю, что здесь <strong class='tag-b'>почти </strong>классический алгоритм Dijkstra, но с ограничением на тоннаж поезда. Если убрать тоннаж, то в чистом виде Дейкстра был бы.<br>
Поэтому достаточно просто исключить ВСЕ дороги между городами, у которых допустимый вес поезда строго меньше веса поезда.<br>
Например, берем вес поезда = <strong class='tag-b'>5 тонн.</strong><br>
Получается такое что-то:<br>
<span class="b-attach" data-size="19891" data-hits="602" data-attach-id="63552" data-attach-post-id="3870039">
			<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=3870039&amp;attach_id=63552' title='Скачать файл' target='_blank'>drop_tonn.png</a> (, : 602)
		</span><br>
Если совсем удалить дороги, то получается такое:<br>
<span class="b-attach" data-size="13585" data-hits="580" data-attach-id="63553" data-attach-post-id="3870039">
			<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=3870039&amp;attach_id=63553' title='Скачать файл' target='_blank'>drop_tonn_2.png</a> (, : 580)
		</span><br>
И после этого запускается алгоритм Дейкстры от заданного города и все.<br>
Все верно в этих рассуждениях?) Уверен на 95%, что, да, так и нужно, но мало ли...<br>
--------------------------------------------------------------------------------<br>
И 2ой момент по этому заданию, который плоховато понимаю совсем.<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="red" style="color: red">Нужно построить маршрут движения поезда между двумя заданными городами, чтобы по нему могли ездить поезда максимально возможного веса.</span></strong><br>
Это случаем не построение остова, только не минимального, как принято, а максимального? + при этом фактор протяженности вообще не играет никакой роли, как понимаю, нужно смотреть ТОЛЬКО на тоннаж.<br>
Или есть какое-то стандартное название алгоритма для такого задания?<br>
--------------------------------------------------------------------------------<br>
И момент 3ий.<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="red" style="color: red">Какой формат описания графа является оптимальным для решения этих подзадач?</span></strong> Скорее всего, здесь либо матрица смежности, точнее весовая матрица + матрица протяженности, либо список смежности. Но вроде с весовыми матрицами поудобнее работать + попроще, что ли. Какой бы формат выбрали вы? Возможно, что для разных подзадач ( #1, #2 ) не один и тот же.<br>
<br>
спс. за внимание, буду очень признателен за любую помощь]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	