Skip to content

Commit

Permalink
reverted
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanIStereotekk committed Nov 17, 2024
1 parent 61cd09b commit f12e2f2
Showing 1 changed file with 0 additions and 70 deletions.
70 changes: 0 additions & 70 deletions content/dijkstra-algorythm.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -150,73 +150,3 @@ print(processed)
```
---

### Пример логического решения :


Допустим мы имеем ацикличный взвешенный граф:
Возьмем новый граф, с другип количеством ребер и весами не такаими как в задаче с кодом выше.

Его вершины и веса:
```
ST >> A = 4
ST >> B = 1
ST >> F = 6
B >> F = 3
B >> C = 2
A >> C = 2
C >> F = 2
```

Начинаем от старта к любой, из наших трех начальных вершин: `ST >> A` , `ST >> B` , `ST >> F`

Первая итерация, кладем в очередь - вершину, вес, и вершину предшественника.

Как выгдядит это:

Обходим `ST >> A = 4`, `ST >> B = 1`, `ST >> F = 6`
Важно что в очереди на выход/обработку первым - самый легкий вес, и первый на извлечение и обход к следующим узлам.

```
------------------------------------
| предшественник | узел | вес |
--------------------------------------
| ST | B | 1 |
--------------------------------------
| ST | A | 4 |
--------------------------------------
| ST | F | 6 |
--------------------------------------
```
Значит первым извлекаем `ST >> B` который весит `1`, он у нас самый легкий и поэтому работаем с ним первым.

`B >> C = 2` + Вес ребра предшественника, он у нас = `1`.
То есть мы на прошлой иттерации определили вес ребра
до вершины `В`.

Следовательно `B >> F = 3` + Вес предшественника = `1`

И далее работаем по тому же алгоритму...
```
------------------------------------
| предшественник | узел | вес |
--------------------------------------
| B | C | 3 |
--------------------------------------
| B | F | 4 |
--------------------------------------
```
Больше смежных ребер у `B` нет ! Следовательно переходим к другим, извлекаем из очереди самый легкий!
Дальше переходим к `C >> F = 5`.

Ребро до `F` не станем переписывать, оно тяжелее чем уже имеющееся значение `B >> F = 4`
Возвращаемся к тем ребрам которые не иследованы.

`A >> C = 2` + `4` от `ST >> A` = `6` - Мы не будем переписывать значение `C` = `6`
потому что есть путь легче `S >> B >> C`.
Оставим `C` весом 3, а его предшественник `B`
`C >> F` = `2` + У узла `C` уже было значение `3` от ребер `SТ >> B >> C`, что в сумме дает вес `5`,
но мы знаем что до `F` мы доберемся за вес меньше `4` по ребрам от `SТ >> B >> F`
Так мы обошли все узлы, и нашли самый короткий путь от стартового - ``, через - `B`, к - `F` финишу.

---

0 comments on commit f12e2f2

Please sign in to comment.