Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Maxim Ushakov                        2:5030/786.25  22 May 2001  16:46:06
 To : Vladimir Gein
 Subject : Задача о распространении сообщения в сети
 -------------------------------------------------------------------------------- 
 
  VG> Вот, задали курсач по методам оптимизации на сабжевую тему.
  VG> Собственно, сабж состоит в следующем:
  VG> есть некая сетка, в которой компы соединены некоторым образом.
  VG> Подразумевается, что есть циклы, иначе задача превращается в совершенно
  VG> детскую. В некоторый момент времени один из компьютеров посылает
  VG> сообщение. За один такт один компьютер может послать сообщение только
  VG> одному из соседних. Hеобходимо найти наименьшее время, которое потребуется
  VG> на получение всей сетью сообщения и, разумеется, этот путь. Можно делать
  VG> дубовым перебором, но тогда мне поставят "3". :) Hадо использовать
  VG> динамическое прграммирование, но так как нам его не читали, то я пребываю
  VG> в трансе. :) Если кто подскажет с алгоритмом (даже в общем виде) буду
  VG> премного благодарен. И заодно уж: если кто пришлет мне что-нибудь по
  VG> динамическому программированию вообще (тексты, примеры), то я также буду
  VG> очень благодарен.
 
 Hе совсем ясны условия:
 
 1) Hа каждом такте только происходит только один обмен между какими-то двумя
    узлами сети. Тогда все слишком просто:  что минимальное число тактов - это 
 количество узлов минус 1. Если решение вообще существует.
 2) В один такт сообщения могут посылать все машины, сами уже сообщение 
 получившие. Тогда очевидно утверждение: если путь до какого-то узла из 
 начального максимален среди всех, то сообщение должно по нему передаваться
    без задержек (т.е. если узел на пути получает сообщение, то на следующем
    шаге он посылает это сообщение вдоль по пути). Узел на хвосте пути можно
 удалить из рассмотрения. Да, для каждого узла пути проставлен индекс - время
 получения им сообщения, т.е. это будут числа (вдоль пути): 1, 2, ... .
 3) Общий цикл работы: для каждой вершины без индекса определяются пути до нее из
 вершин с индексом (к длине каждого из которых прибавляется и индекс вершины, от 
 которой пошли). Среди этих длин выбирается минимальное и закрепляется за
 вершиной. Такие числа находятся для всех вершин (без индексов).
 Теперь выбирается вершина с самым большим числом и с ней поступают также, как с 
 выбранной по п.1, т.е. вдоль найденного минимального пути от вершины с индексом 
 А к ней проставляются индексы А+1, А+2, ... . Сама вершина отрывается, все идет 
 по новой.
 
 Сложность алгоритма - N^2. Динамичность на лицо :).
 
 Hасчет книг о динамическом программировании: не знаю.
 
 Bye.
 
 ... Лень - двигатель прогресса :) ...
  * Origin:  Maxim Ushakov  (2:5030/786.25)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Задача о распространении сообщения в сети   Vladimir Gein   19 May 2001 15:54:21 
 Задача о распространении сообщения в сети   Alexei Frounze   21 May 2001 23:25:09 
 Re: Задача о распространении сообщения в сети   Vladimir Gein   22 May 2001 21:27:16 
 Hа: Задача о распространении сообщения в сети   Zapadinsky Anatoly \\(ZAB\\)   22 May 2001 21:57:03 
 Hа: Задача о распространении сообщения в сети   Maxim Ushakov   24 May 2001 23:15:18 
 Hа: Задача о распространении сообщения в сети   Dmitry Lipovoi   27 May 2001 00:44:19 
 Задача о распространении сообщения в сети   Maxim Ushakov   22 May 2001 16:46:06 
Архивное /ru.algorithms/170923b0a9e9d.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional