Это не официальный сайт wikipedia.org 01.01.2023

Алгоритм Дикстры — Википедия

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

Алгоритм Дикстры — это метод нахождения точки из пересечения выпуклых множеств. Является вариантом метода поочерёдного проецирования, известного также как метод проецирования в выпуклые множества. В простейшем варианте метод находит точку из пересечения двух выпуклых множеств путём итеративного проецирования в каждое из них. Метод отличается от метода поочерёдного проецирования наличием промежуточных шагов. Параллельную версия алгоритма разработали Гафке и Матар.

Метод назван именем Ричарда Л. Дикстры, предложившего его в 1980-х годах.

Ключевое отличие между алгоритмом Дикстры и методом стандартного поочерёдного проецирования возникает в случае, когда пересечение двух множеств состоит из более чем одной точки. В этом случае метод поочерёдного проецирования даёт некоторую произвольную точку в пересечении, в то время как алгоритм Дикстры даёт вполне определённую точку — проекцию точки r в пересечение, где r — данная алгоритму начальная точка.

АлгоритмПравить

Алгоритм Дикстры находит для каждой точки r   единственную точку в x ¯ C D  , такую что:

x ¯ r 2 x r 2 ,   для всех x C D ,  

где C , D   являются выпуклыми множествами. Эта задача эквивалентна поиску проекции точки r   во множество C D  , которую мы обозначим P C D  .

Чтобы использовать алгоритм Дикстры, нужно знать, каким образом находить проекцию точки во множества C   и D   по отдельности.

Сначала рассмотрим метод поочерёдного проецирования (типа POCS) (который исследовал первоначально для случая, когда множества C , D   являются линейными подпространствами, Джон фон Нейман[1]). Метод стартует с точки x 0 = r   и создаёт последовательность

x k + 1 = P C ( P D ( x k ) )  .

Алгоритм Дикстры имеет аналогичный вид, но использует дополнительные переменные. Метод начинает с x 0 = r , p 0 = q 0 = 0   и обновляет переменные по формулам

y k = P D ( x k + p k )  
p k + 1 = x k + p k y k  
x k + 1 = P C ( y k + q k )  
q k + 1 = y k + q k x k + 1 .  

Последовательность точек ( x k )   сходится к решению исходной задачи. О сходимости и современных модификациях см. статью Комбета и Песке[2].

ПримечанияПравить

  1. von Neumann, 1949, с. 401–485.
  2. Combettes, Pesquet, 2011, с. 185–212.

ЛитератураПравить

  • P. L. Combettes, J.-C. Pesquet. Proximal splitting methods in signal processing // Fixed-Point Algorithms for Inverse Problems in Science and Engineering / H. H. Bauschke, R. S. Burachik, P. L. Combettes, V. Elser, D. R. Luke, H. Wolkowicz (ред.). — New York: Springer,, 2011.
  • J. von Neumann. On rings of operators. Reduction theory // Ann. of Math.. — 1949. — Вып. 50. (Репринт лекционных заметок, выпущенных в 1933)
  • Boyle J. P., Dykstra R. L. A method for finding projections onto the intersection of convex sets in Hilbert spaces // Lecture Notes in Statistics. — 1986. — Т. 37. — С. 28–47. — ISBN 978-0-387-96419-5. — doi:10.1007/978-1-4613-9940-7_3.
  • Gaffke N., Mathar R. A cyclic projection algorithm via duality // Metrika. — 1989. — Т. 36. — С. 29–54. — doi:10.1007/bf02614077.