To je nějaká knihovna?
Bohužel to nemohu použít, musím se držet zadání
To je nějaká knihovna?
Bohužel to nemohu použít, musím se držet zadání
Respektive tady mám vstup:
#New Dijkstra created
dijkstra = Dijkstra()
#Graph created
dijkstra.createGraph(vertexes,edges)
#Getting all vertexes
dijkstraVertexes = dijkstra.getVertexes()
#Computing min distance for each vertex in graph
for vertexToCompute in dijkstraVertexes:
dijkstra.computePath(vertexToCompute.id)
print('Printing min distance from vertex:'+str(vertexToCompute.name))
#Print minDitance from current vertex to each other
for vertex in dijkstraVertexes:
print('Min distance to:'+str(vertex.name)+' is: '+str(vertex.minDistance))
#Reset Dijkstra between counting
dijkstra.resetDijkstra()
#Distance with path
for vertexToCompute in dijkstraVertexes:
dijkstra.computePath(vertexToCompute.id)
print('Printing min distance from vertex:'+str(vertexToCompute.name))
#Print minDitance and path from current vertex to each other
for vertex in dijkstraVertexes:
print('Min distance to:'+str(vertex.name)+' is: '+str(vertex.minDistance))
print('Path is:',end=" ")
#Get shortest path to target vertex
path = dijkstra.getShortestPathTo(vertex.id)
for vertexInPath in path:
print(str(vertexInPath.name),end=" ")
print()
#Reset Dijkstra between counting
dijkstra.resetDijkstra()
#2 Matho
No zatím mám pouze tuto úlohu
class Vertex:
def __init__(self, id, name):
self.id = id
self.name = name
class Edge:
def __init__(self, source, target, weight):
self.source = source
self.target = target
self.weight = weight
class Dijkstra:
def __init__(self):
def computePath(self, sourceId):
pass
def getShortestPathTo(self, targetId):
pass
def createGraph(self, vertexes, edgesToVertexes):
pass
def resetDijkstra(self):
pass
def getVertexes(self):
pass
A toto zadání:
createGraph(self, vertexes, edgesToVertexes) - metoda vytvoří graf ze zadaných vrcholů. Vertexes je pole objektů typu Vertex a edgesToVertexes je pole typu Edge.
getVertexes(self) - metoda vrátí vrcholy, nad kterými je možné provést Dijkstrův algoritmus. TJ vrcholy, které jsou vytvořeny pomocí metody init.
computePath(self, sourceId) - metoda nalezne nejkraští cesty ze zadaného vrcholu do všech vrcholů v grafu. Metoda nic nevrací, ale po skončení operace by měly mít všechny vrcholy vyplněnou proměnou minDistance, která reprezentuje minimální vzdálenost o zadaného vrcholu.
getShortestPathTo(self,targetId) - metoda vrátí list vrcholů, přes které vede z vrcholu, nad kterými byla spuštěna operace computePath do vrcholu specifikovaného v targetId.
resetDijkstra(self) - tato metoda vyresetuje aktuální výsledky po průchodu dijkstrovým algoritmem. Metoda nerozpojí či nezahodí graf, pouze ho vrátí do stavu, v jakém byl před operací computePath
Ahoj,
řeším takovou menší úlohu do školy a to spočívá v sestavení dijsktrova algoritmu.
Mám tento kód
class Vertex:
def __init__(self, id, name):
self.id = id
self.name = name
class Edge:
def __init__(self, source, target, weight):
self.source = source
self.target = target
self.weight = weight
class Dijkstra:
def __init__(self):
A metodu createGraph, která ze zadaných vrcholů vytvoří graf. Můžete mi prosím poradit (popř. pouze navést či ukázat jak na to)?
Díky [:)]