Опубликован: 27.09.2006 | Уровень: специалист | Доступ: свободно | ВУЗ: Нижегородский государственный университет им. Н.И.Лобачевского
Лекция 15:

Кратчайшие пути

< Лекция 14 || Лекция 15: 12 || Лекция 16 >

Алгоритм Дейкстры

Допустим, на некотором шаге описанного выше алгоритма построено дерево с множеством вершин A, а для каждой вершины y\in
\overline{A} известна вершина x_{0} =F(y), на которой достигается наименьшее значение величины \Delta(y)=\min\{\delta (x)+w(x,y)\}, где минимум берется по всем вершинам x\in A. Тогда на этом шаге следует выбрать вершину y\in \overline{A} с наименьшим значением величины \Delta
(y) и присоединить к дереву ребро (F(y),y). После этого для каждой вершины z, еще не принадлежащей к дереву, значения \Delta
(z) и F(z) уточняются следующим образом: если \Delta (y)+w(y,z)< \Delta (z), то следует положить F(z)=y, \Delta (z)=\Delta (y)+w(y,z). Вершина F(y) может рассматриваться как предполагаемый отец вершины y в геодезическом дереве (если все множество \overline{A} состояло бы из одной вершины y, то F(y) была бы ее истинным отцом). Величина \Delta(y) представляет собой оценку кратчайшего пути из a в y, она равна весу кратчайшего из путей, проходящих только через вершины множества A. После того, как вершина y присоединяется к дереву, значения F(y) и \Delta(y) больше не изменяются, F(y) является отцом вершины y в геодезическом дереве, а \Delta(y)=\delta (y). В целом алгоритм можно представить следующим образом:

Алгоритм 2. Алгоритм Дейкстры.

  1. F(a):=a
  2. A:=\{ a\}
  3. for x\in V do \{\Delta (x):=w(a,x) ; F(x):=a\}
  4. while A\ne V do
  5. выбрать вершину y\in \overline{A} с наименьшим значением \Delta (y)
  6. A:=A\cup \{ y\}
  7. for z\in \overline{A} do
  8. if \Delta (y)+w(y,z) < \Delta (z)
  9. then \{F(z)=y, \Delta (z)=\Delta (y)+w(y,z)\}
< Лекция 14 || Лекция 15: 12 || Лекция 16 >
Татьяна Наумович
Татьяна Наумович

Скажите, пожалуйста, можно ли еще получить документ о прохождении курса ("Графы и алгоритмы", декабрь 2020) после предоставления всех дополнительных необходимых документов?
Или нужно проходить заново?

Петр Петров
Петр Петров

произведение графов К(2)*О(4) фактически 4 отдельных графа К(2)?

S Mi
S Mi
Россия, г. Санкт-Петербург

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.4927101558832watchdog( )../bootstrap.inc:0
22.4930101561408module_invoke( )../bootstrap.inc:967
32.4930101563264call_user_func_array ( )../module.inc:462
42.4930101563600devel_watchdog( )../module.inc:462
52.4931101564448decode_entities( )../devel.module:382
62.4932101566368drupal_error_handler( )../devel.module:340
72.4932101569976watchdog( )../common.inc:663
82.4932101572152module_invoke( )../bootstrap.inc:967
92.4932101574008call_user_func_array ( )../module.inc:462
102.4932101574344devel_watchdog( )../module.inc:462
112.4933101575040decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.4927101558832watchdog( )../bootstrap.inc:0
22.4930101561408module_invoke( )../bootstrap.inc:967
32.4930101563264call_user_func_array ( )../module.inc:462
42.4930101563600devel_watchdog( )../module.inc:462
52.4931101564448decode_entities( )../devel.module:382
62.4932101566368drupal_error_handler( )../devel.module:340
72.4932101569976watchdog( )../common.inc:663
82.4932101572152module_invoke( )../bootstrap.inc:967
92.4932101574008call_user_func_array ( )../module.inc:462
102.4932101574344devel_watchdog( )../module.inc:462
112.4933101575040decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.4927101558832watchdog( )../bootstrap.inc:0
22.4930101561408module_invoke( )../bootstrap.inc:967
32.4930101563264call_user_func_array ( )../module.inc:462
42.4930101563600devel_watchdog( )../module.inc:462
52.4931101564448decode_entities( )../devel.module:382
62.4939101566560drupal_error_handler( )../devel.module:340
72.4939101570248watchdog( )../common.inc:663
82.4939101572424module_invoke( )../bootstrap.inc:967
92.4939101574280call_user_func_array ( )../module.inc:462
102.4939101574616devel_watchdog( )../module.inc:462
112.4940101575392decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.4927101558832watchdog( )../bootstrap.inc:0
22.4930101561408module_invoke( )../bootstrap.inc:967
32.4930101563264call_user_func_array ( )../module.inc:462
42.4930101563600devel_watchdog( )../module.inc:462
52.4931101564448decode_entities( )../devel.module:382
62.4939101566560drupal_error_handler( )../devel.module:340
72.4939101570248watchdog( )../common.inc:663
82.4939101572424module_invoke( )../bootstrap.inc:967
92.4939101574280call_user_func_array ( )../module.inc:462
102.4939101574616devel_watchdog( )../module.inc:462
112.4940101575392decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.4944101559376watchdog( )../bootstrap.inc:0
22.4945101561552module_invoke( )../bootstrap.inc:967
32.4945101563408call_user_func_array ( )../module.inc:462
42.4945101563744devel_watchdog( )../module.inc:462
52.4945101564448decode_entities( )../devel.module:382
62.4945101566368drupal_error_handler( )../devel.module:340
72.4945101569976watchdog( )../common.inc:663
82.4946101572152module_invoke( )../bootstrap.inc:967
92.4946101574008call_user_func_array ( )../module.inc:462
102.4946101574344devel_watchdog( )../module.inc:462
112.4946101575040decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.4944101559376watchdog( )../bootstrap.inc:0
22.4945101561552module_invoke( )../bootstrap.inc:967
32.4945101563408call_user_func_array ( )../module.inc:462
42.4945101563744devel_watchdog( )../module.inc:462
52.4945101564448decode_entities( )../devel.module:382
62.4945101566368drupal_error_handler( )../devel.module:340
72.4945101569976watchdog( )../common.inc:663
82.4946101572152module_invoke( )../bootstrap.inc:967
92.4946101574008call_user_func_array ( )../module.inc:462
102.4946101574344devel_watchdog( )../module.inc:462
112.4946101575040decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.4944101559376watchdog( )../bootstrap.inc:0
22.4945101561552module_invoke( )../bootstrap.inc:967
32.4945101563408call_user_func_array ( )../module.inc:462
42.4945101563744devel_watchdog( )../module.inc:462
52.4945101564448decode_entities( )../devel.module:382
62.4953101566560drupal_error_handler( )../devel.module:340
72.4953101570248watchdog( )../common.inc:663
82.4953101572424module_invoke( )../bootstrap.inc:967
92.4953101574280call_user_func_array ( )../module.inc:462
102.4953101574616devel_watchdog( )../module.inc:462
112.4954101575392decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.4944101559376watchdog( )../bootstrap.inc:0
22.4945101561552module_invoke( )../bootstrap.inc:967
32.4945101563408call_user_func_array ( )../module.inc:462
42.4945101563744devel_watchdog( )../module.inc:462
52.4945101564448decode_entities( )../devel.module:382
62.4953101566560drupal_error_handler( )../devel.module:340
72.4953101570248watchdog( )../common.inc:663
82.4953101572424module_invoke( )../bootstrap.inc:967
92.4953101574280call_user_func_array ( )../module.inc:462
102.4953101574616devel_watchdog( )../module.inc:462
112.4954101575392decode_entities( )../devel.module:382