Your SlideShare is downloading. ×
0
Presentation on prolog :
    Dijkstra’s Algorithm
A graph is defined as a set
of nodes and a set of edges, where
each edge is a pair of nodes.
There are several ways to
represent graphs in Prolog.
 One method is to represent each edge separately as one
 clause (fa...
 Another method is to represent the whole graph as one
 data object. According to the definition of the graph as
 a pair ...
 A third representation method is to associate with
 each node the set of nodes that are adjacent to that
 node .

 EXAM...
Directed graphs
  These are represented by ordered pairs
  To represent a directed graph, the forms discussed
  above ar...
Dijkstra
 Dijkstra's algorithm, introduced by the dutch
  computer scientist , is a graph searching algorithm.

 Dijkstr...
Basic features of
Dijkstra's algorithm
 For a given source vertices it finds the lowest cost(i.e.
  The shortest path) fo...
An example of
    Dijkstra’s Algorithm
Dijkstra’s Algorithm can be applied to
   network routing, as it can be used to find
the shortest path from any source com...
Basic steps towards the algorithm
 The algorithm begins by initializing any vertex in the graph
 (vertex A, for example) ...
Basic steps towards
 The algorithm then proceeds to select the least cost edge
 connecting a vertex with a permanent labe...
Basic steps towards

 The next step is to find the next least cost edge
  extending to a vertex with a temporary label fr...
Basic steps towards
This process is repeated until the labels of all vertices in the
graph are permanent.
Start


                     Identify source node and
                   destination node as V1 and V2


                 ...
dijkstra(Graph,MinDist,[],MinDist).
                      dijkstra(Graph,Closed,Open,MinDist):-
                          ...
Rules which are used above in the
pesudo code
  min(L,Min,Rest):-
   The method min above takes a list L and puts the sma...
Rules which are used above in the
pesudo code


  diff(L,M,N) takes a list L and a list M and unifies N
   with a list co...
Rules which are used above in the
pesudo code
  nodeMerge(A,B,C) which merge lists A and B together
  and unifies the res...
In today’s world, networking plays an important role in
                         communication between autonomous
     com...
References
http://students.ceid.upatras.gr/~papagel/project/kef5_7_1.htm

 http://www.animal.ahrgr.de/showAnimationDetai...
d
Upcoming SlideShare
Loading in...5
×

d

1,254

Published on

Published in: Technology
1 Comment
1 Like
Statistics
Notes
  • good presntaion
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
1,254
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
32
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "d"

  1. 1. Presentation on prolog : Dijkstra’s Algorithm
  2. 2. A graph is defined as a set of nodes and a set of edges, where each edge is a pair of nodes.
  3. 3. There are several ways to represent graphs in Prolog.  One method is to represent each edge separately as one clause (fact). • edge(1, 5). edge(1, 7). edge(2, 1). edge(2, 7). edge(3, 1). edge(3, 6). edge(4, 3). edge(4, 5). edge(5, 8). edge(6, 4). edge(6, 5). edge(7, 5). edge(8, 6). edge(8, 7). We call this edge-clause form W
  4. 4.  Another method is to represent the whole graph as one data object. According to the definition of the graph as a pair of two sets (nodes and edges).  EXAMPLE :  graph([b,c,d,f,g,h,k],[e(b,c),e(b,f),e(c,f),e(f,k),e(g,h)]) .  We call this graph-term form. Note, that the lists are kept sorted, they are really sets, without duplicated elements. Each edge appears only once in the edge list.  The graph-term form is a default representation
  5. 5.  A third representation method is to associate with each node the set of nodes that are adjacent to that node .  EXAMPLE: [n(b,[c,f]), n(c,[b,f]), n(d,[]), n(f,[b,c,k]), .........]. 
  6. 6. Directed graphs  These are represented by ordered pairs  To represent a directed graph, the forms discussed above are slightly modified. The example graph is represented as follows:  When the edges are directed we call them arcs Arc-clause form  arc(s,u). arc(u,r). Graph-term form  digraph([r,s,t,u,v],[a(s,r),a(s,u),a(u,r),a(u,s),a(v,u)]) Adjacency-list form  [n(r,[]),n(s,[r,u]),n(t,[]),n(u,[r]),n(v,[u])]
  7. 7. Dijkstra  Dijkstra's algorithm, introduced by the dutch computer scientist , is a graph searching algorithm.  Dijkstra’s algorithm is used to solve the problems of finding the shortest path between edge - weighted graphs in which all the weights are non-negative.
  8. 8. Basic features of Dijkstra's algorithm  For a given source vertices it finds the lowest cost(i.e. The shortest path) for every other vertices .  It can also be used to find the lowest cost for a particular destination by the stopping the algorithm in between.  For example:- If the vertices represents the cities and the edge path cost represents the distance between pair cities then dijkstra’s can be used to find the shortest route between one city and all other.
  9. 9. An example of Dijkstra’s Algorithm
  10. 10. Dijkstra’s Algorithm can be applied to network routing, as it can be used to find the shortest path from any source computer to any other computer in the network .
  11. 11. Basic steps towards the algorithm  The algorithm begins by initializing any vertex in the graph (vertex A, for example) a permanent label with the value of 0, and all other vertices a temporary label with the value of 0.
  12. 12. Basic steps towards  The algorithm then proceeds to select the least cost edge connecting a vertex with a permanent label (currently vertex A) to a vertex with a temporary label (vertex B, for example). Vertex B's label is then updated from a temporary to a permanent label. Vertex B's value is then determined by the addition of the cost of the edge with vertex A's value
  13. 13. Basic steps towards  The next step is to find the next least cost edge extending to a vertex with a temporary label from either vertex A or vertex B (vertex C, for example), change vertex C's label to permanent, and determine its distance to vertex A.
  14. 14. Basic steps towards This process is repeated until the labels of all vertices in the graph are permanent.
  15. 15. Start Identify source node and destination node as V1 and V2 Set V1 as T-node Set T-node’s label to “permanent” and update neighbor's status record set Identify the tentative node linked to V1 that has the lowest weight and set it as T-node Is T-Node is V2? END Based on information in status record set, do these until u reach V1. The string of link represents the best route
  16. 16. dijkstra(Graph,MinDist,[],MinDist). dijkstra(Graph,Closed,Open,MinDist):- min(Open,V-D,ReducedOpen), adjacent(Graph,V,AdjacentNodes), diff(AdjacentNodes,Closed,PrunedNodes), addDist(PrunedNodes,D,UpdatedPrunedNodes), nodeMerge(UpdatedPrunedNodes,ReducedOpen,NextOpen), dijkstra(Graph,[V-D|Closed],NextOpen,MinDist).
  17. 17. Rules which are used above in the pesudo code  min(L,Min,Rest):- The method min above takes a list L and puts the smallest value in the MIN with the smallest value in L and Rest with a list containing all values in L excluding Min.  adjacent(Graph,Node,Adj) which is true if Adj is a list of all nodes reachable from the node Node in one hop in Graph. Node is of the form of a single graph vertex label (i.e. the minimum cost is not included), Adj should be a list of node-cost pairs. For example, given the query adjacent([a-b-1,a-c-2,b-a-4,b- c-1],a,A) Prolog should return A = [b-1,c-2]
  18. 18. Rules which are used above in the pesudo code  diff(L,M,N) takes a list L and a list M and unifies N with a list containing all items in L which are not in M. The list L is assumed to contain no duplicate elements.  addDist(Nodes, D, NewNodes) which is true if NewNodes is a list containing all the nodes in Nodes with their edge cost incremented by D.
  19. 19. Rules which are used above in the pesudo code  nodeMerge(A,B,C) which merge lists A and B together and unifies the result in C. Lists A, B and C contain no duplicate elements: i.e. within the each list there is no pair of nodes V1,V2 such that V1=V2.
  20. 20. In today’s world, networking plays an important role in communication between autonomous computers. For this many hardware devices and software algorithms have been designed. So far, the traditional system used for the communication were the hub networking system and many other hardware applications present in the market, but as they operate on electricity, it may lead to the failure of device due to some malfunctioning in the hardware circuitry. Dijkstra Algorithm provides easy understandability and hence its chances of failure is negligible.
  21. 21. References http://students.ceid.upatras.gr/~papagel/project/kef5_7_1.htm  http://www.animal.ahrgr.de/showAnimationDetails.php3?lang=en&anim= 16  http://www.cs.sunysb.edu/~skiena/combinatorica/animations/dijkstra.ht ml  http://www.ibiblio.org/links/devmodules/graph_networking/xhtml/page13 .xml  Survivable networks: algorithms for diverse routing By Ramesh Bhandari Edition: illustrated Published by Springer, 1999 ISBN page 22
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×