dijkstra
This commit is contained in:
		
							parent
							
								
									a31509d093
								
							
						
					
					
						commit
						2c956b7c18
					
				
					 5 changed files with 13 additions and 0 deletions
				
			
		
							
								
								
									
										13
									
								
								03_dijkstra/01_bottleneck/solution.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								03_dijkstra/01_bottleneck/solution.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | В случае классической задачи, поиска пути минимальной длины между двумя вершинами графа, мы поддерживаем в каждой посещенной алгоритмом вершине графа минимальную длину пути до этой вершины.  | ||||||
|  | Здесь стоит оговориться, что будем именовать множество **X** посещенными вершинами, а **V - X** - часть графа, для которой еще нужно найти величину пути или узкого места. | ||||||
|  | 
 | ||||||
|  | В отличии от классического алгоритма, решение этой задачи должно поддерживать величину актуального узкого места пути, приводящего в вершину **v ∈ X**.  | ||||||
|  | А при добавлении новой вершины из **V - X**, мы должны смотреть не увеличивает ли ребро **(v,u_1)** величину узкого места пути, которое теперь приводит в **u_1**. | ||||||
|  | Если ребро **(v, u_1)** увеличивает узкое место, то лучше рассмотреть вершину **u_2**, ребро **(v, u_2)** до которой легче **(v,u_1)**.  | ||||||
|  | Поиск неувеличивающих узкое место ребёр нужно осуществлять не только среди соседей определенного узла **v**, но и среди всех **v ∈ X**, поскольку отдавая предпочтение вершине, путь в которую имеет наименьшее узкое место в данный момент, мы гарантируем, что мы не ухудшаем ситуацию для других вершин. | ||||||
|  | 
 | ||||||
|  | В результате разбора выше, предлагается руководствоваться следующей формулой при выборе очередной вершины из непосещенных и обновлении величин, которые мы поддерживаем: | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | 
 | ||||||
|  | Стоит пояснить, что поиск по **v ∈ X** осуществляется, только для существующих связей **(v,u)**, а **w(v,u)** - это вес ребра **(v,u)**. | ||||||
		Reference in a new issue