Back to 课程

Computer-science_A-level_Cie

0% Complete
0/0 Steps
  1. computers-and-components
    6 主题
  2. logic-gates-and-logic-circuits
    2 主题
  3. central-processing-unit-cpu-architecture
    6 主题
  4. assembly-language-
    4 主题
  5. bit-manipulation
    1 主题
  6. operating-systems
    3 主题
  7. language-translators
    2 主题
  8. data-security
    3 主题
  9. data-integrity
    1 主题
  10. ethics-and-ownership
    3 主题
  11. database-concepts
    3 主题
  12. database-management-systems-dbms-
    1 主题
  13. data-definition-language-ddl-and-data-manipulation-language-dml
    1 主题
  14. computational-thinking-skills
    1 主题
  15. algorithms
    14 主题
  16. data-types-and-records
    2 主题
  17. arrays
    2 主题
  18. files
    1 主题
  19. introduction-to-abstract-data-types-adt
    1 主题
  20. programming-basics
    1 主题
  21. constructs
    2 主题
  22. structured-programming
    1 主题
  23. program-development-life-cycle
    2 主题
  24. program-design-
    2 主题
  25. program-testing-and-maintenance
    3 主题
  26. user-defined-data-types
    1 主题
  27. file-organisation-and-access-
    3 主题
  28. floating-point-numbers-representation-and-manipulation
    3 主题
  29. protocols
    2 主题
  30. circuit-switching-packet-switching
    1 主题
  31. processors-parallel-processing-and-virtual-machines
    5 主题
  32. boolean-algebra-and-logic-circuits
    4 主题
  33. purposes-of-an-operating-system-os
    3 主题
  34. translation-software
    3 主题
  35. encryption-encryption-protocols-and-digital-certificates
    3 主题
  36. artificial-intelligence-ai
    4 主题
  37. recursion
    1 主题
  38. programming-paradigms
    4 主题
  39. object-oriented-programming
    7 主题
  40. file-processing-and-exception-handling
    2 主题
  41. data-representation
    5 主题
  42. multimedia
    3 主题
  43. compression
    2 主题
  44. networks-and-the-internet
    11 主题
课 Progress
0% Complete

Dijkstra’s shortest path algorithm

  • In Computer Science, an optimisation problem involves finding the most efficient solution to a given problem

  • This could mean minimising cost, time, or resource usage, or maximising output, efficiency, or value

  • Examples of optimisation problems include:

    • Finding the shortest route between two locations (e.g. Google Maps)

    • Minimising resource usage in manufacturing or video games

    • Creating efficient timetables (e.g. for schools or offices)

    • Scheduling tasks and staff shifts to avoid conflicts or downtime

  • One of the most common real-world examples is finding the shortest path from A to B, which is exactly what Dijkstra’s algorithm solves

What is Dijkstra’s shortest path algorithm?

  • In A Level Computer Science, Dijkstra’s shortest path algorithm is a classic optimisation algorithm

  • It calculates the shortest path from a starting node to all other nodes in a weighted graph

  • It is often compared to breadth-first search, but Dijkstra’s includes edge weights and ensures the lowest total cost to reach each destination node

How It works:

  • The graph is made up of nodes (vertices) and edges (arcs)

  • Each edge has a weight, which can represent:

    • Time

    • Distance

    • Cost

  • The algorithm explores all possible routes, keeping track of the shortest known distance to each node

  • It guarantees the optimal path from the start node to every other node in the graph

  • For revision on graphs, see section 18 – AI & Graphs

  • An illustrated example of Dijkstra’s algorithm is shown below:

Performing Dijkstra’s shortest path algorithm

dijkstra-s-algorithm-1-revision-notes-computer-science
  • Set A path to 0 and all other path weights to infinity

dijkstra-s-algorithm-2-revision-notes-computer-science
  • Visit A. Update all neighbouring nodes path weights to the distance from A + A’s path weight (0)

dijkstra-s-algorithm-3-revision-notes-computer-science
  • Choose the next node to visit that has the lowest path weight (D)

  • Visit D

  • Update all neighbouring, non-visited nodes with a new path weight if the old path weight is bigger than the new path weight

  • C is updated from 5 to 3 as the new path is shorted (A > D > C)

dijkstra-s-algorithm-4-revision-notes-computer-science
  • Choose the next node to visit that has the lowest path weight (E)

  • Visit E

  • Update all neighbouring, non-visited nodes from E with a new path weight

  • F is updated from 7 to 5 as the new path is shorter (A > D > E > F)

dijkstra-s-algorithm-5-revision-notes-computer-science
  • Choose the next node to visit, alphabetically (B)

  • Visit B

  • Update all neighbouring non-visited nodes from B with a new weight if the path is less than the current path

  • C is not updated as A > B > C is 4

dijkstra-s-algorithm-6-revision-notes-computer-science
  • Choose the next lowest node and visit (C)

  • Update C’s neighbours if the new path is shorter than the old path

  • A > D > C > G is 8, so G is not updated

<img alt=”dijkstra-s-algorithm-7-revision-notes-computer-science” class=”ContentBlock_figure__vJw2q” data-nimg=”1″ decoding=”async” height=”1179″ sizes=”(max-width: 320px) 320w, (max-width: 640px) 640w, (max-width: 960px) 960w, (max-width: 1280px) 1280w, 1920w” src=”https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=3840/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png” srcset=”https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=16/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 16w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=32/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 32w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=48/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 48w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=64/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 64w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=96/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 96w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=128/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 128w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=256/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 256w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=384/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 384w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=640/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 640w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=750/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 750w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=828/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 828w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=1080/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 1080w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=1200/https://cdn.savemyexams.com/uploads/2023/07/dijkstra-s-algorithm-7-revision-notes-computer-science.png 1200w, https://cdn.savemyexams.com/cdn-cgi/image/f=auto,width=1920/https://

Responses

您的邮箱地址不会被公开。 必填项已用 * 标注