Computational Thinking – Assignment 5 (Artificial Intelligence Year 1)
1. Hamiltonian path
A Hamiltonian path is a path in an (un)directed graph that visits each vertex exactly once.
We need to find a Hamiltonian path in the following graph 1:
→
Hamiltonian graph 1 Hamiltonian path graph 2
My path goes like this: 1 > 5 > 3 > 7 > 6 > 12 > 11 > 8 > 10 > 4 > 9 > 2 > 1.
As you can see, graph 2 in this case, is also a Hamiltonian cycle or circuit. This means that the
path visits all the vertices before returning to the starting vertex of this graph.
2. Weighted matrix to weighted graph
Given is the following graph:
A B C D E F
A - 2 3 4 - -
B - - 1 - - 7
C 3 2 - - - 6
D - - - - 8 -
E - - - 7 - 4
F - 6 6 - - -
A. We need to draw the corresponding graph in Python.
Input =
, Computational Thinking – Assignment 5 (Artificial Intelligence Year 1)
Output =
I noticed that every time I clicked on “Run”, the weighted graph changed of shape. Here are
some examples:
All these weighted graphs are practically the same. Also, I noticed that I could change the
shape myself by dragging the vertices.
B. This graph is a mixed, weighted graph. Mixed, because it has both undirected (symmetric) and
directed (asymmetric) parts. Weighted, because every edge has a ‘weight’ assigned to it.
C. We need to show what the shortest path from A to F is.
A B C D E F
A - 2 3 4 - -
B - - 1 - - 7
C 3 2 - - - 6
D - - - - 8 -
E - - - 7 - 4
F - 6 6 - - -
Possible options to go from A to F:
A>B>F=2+7=9
A >C>F=3+6=9
A>B>C>F=2+1+6=9
A > C > B > F = 3 + 2 + 7 = 12
A > D > E > F = 4 + 8 + 4 = 16
As you can see there are 3 options with the same minimum weight. A path is a finite or infinite
sequence of edges which connect a sequence of vertices which are all distinct from one
another. The shortest path to get from A to F in this case is:
A via B to F;
A via C to F;
A via B via C to F.
It doesn’t matter which path of these 3 you choose, because they have the same weight.
1. Hamiltonian path
A Hamiltonian path is a path in an (un)directed graph that visits each vertex exactly once.
We need to find a Hamiltonian path in the following graph 1:
→
Hamiltonian graph 1 Hamiltonian path graph 2
My path goes like this: 1 > 5 > 3 > 7 > 6 > 12 > 11 > 8 > 10 > 4 > 9 > 2 > 1.
As you can see, graph 2 in this case, is also a Hamiltonian cycle or circuit. This means that the
path visits all the vertices before returning to the starting vertex of this graph.
2. Weighted matrix to weighted graph
Given is the following graph:
A B C D E F
A - 2 3 4 - -
B - - 1 - - 7
C 3 2 - - - 6
D - - - - 8 -
E - - - 7 - 4
F - 6 6 - - -
A. We need to draw the corresponding graph in Python.
Input =
, Computational Thinking – Assignment 5 (Artificial Intelligence Year 1)
Output =
I noticed that every time I clicked on “Run”, the weighted graph changed of shape. Here are
some examples:
All these weighted graphs are practically the same. Also, I noticed that I could change the
shape myself by dragging the vertices.
B. This graph is a mixed, weighted graph. Mixed, because it has both undirected (symmetric) and
directed (asymmetric) parts. Weighted, because every edge has a ‘weight’ assigned to it.
C. We need to show what the shortest path from A to F is.
A B C D E F
A - 2 3 4 - -
B - - 1 - - 7
C 3 2 - - - 6
D - - - - 8 -
E - - - 7 - 4
F - 6 6 - - -
Possible options to go from A to F:
A>B>F=2+7=9
A >C>F=3+6=9
A>B>C>F=2+1+6=9
A > C > B > F = 3 + 2 + 7 = 12
A > D > E > F = 4 + 8 + 4 = 16
As you can see there are 3 options with the same minimum weight. A path is a finite or infinite
sequence of edges which connect a sequence of vertices which are all distinct from one
another. The shortest path to get from A to F in this case is:
A via B to F;
A via C to F;
A via B via C to F.
It doesn’t matter which path of these 3 you choose, because they have the same weight.