Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: path_find

path_find 8 Χρόνια 1 Μήνας πριν #3907

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Ξέρει κανείς κανένα αλγόριθμο για path_find σε γράφημα ή υλοποίηση σε γλώσσα python
Προσπαθώ να λύσω αυτό py.checkio.org/mission/open-labyrinth/
και μου βγάζει λάθος διαδρόμους συνέχεια
Η συνάρτηση μου για το graph είναι αυτή
def lab_graph(labt):
	midenika=[]
	for i in range(len(labt)): #Διαβάζω τα μηδενικά
		for j in range(len(labt[0])):
			if labt[i][j]==0:
				midenika.append((i,j))
 
	graph={}			
	for a in midenika: #κάνω το γράφημα βάζοντας σε κάθε μηδενικό αυτά που μπορεί να πάει σε μία κίνηση
		graph[a]=[]
	for x,y in midenika:
		if (x,y+1) in midenika:
			graph[(x,y)].append((x,y+1))
		if (x,y-1) in midenika:
			graph[(x,y)].append((x,y-1))
		if (x-1,y) in midenika:
			graph[(x,y)].append((x-1,y))
		if (x+1,y) in midenika:
			graph[(x,y)].append((x+1,y))
 
	komboi=[] #παίρνω τους κόμβους (διασταυρώσεις) μήπως τις χρειαστώ
	for a in graph:
		if len(graph[a])>2:
			komboi.append(a)
 
	dromoi=[]#παίρνω τους δρόμους μήπως τουςς χρειαστώ
	for start in graph:
		for end in graph[start]:
			dromoi.append((start,end))
 
	return graph, komboi, dromoi # παίρνω επιστροφή
και για το path αυτή
def vres_path (start, end, graph,path=None): #Ή συνάρτηση για να βρώ το path
	if path==None:
		path=[]
	path.append(start)
	if start==end:
		return path
	for a in graph[start]:
		if a not in path:
			end_path=vres_path(a,end,graph,path)
			if end_path:
				return end_path
	return None
Τελευταία διόρθωση: 8 Χρόνια 1 Μήνας πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

path_find 8 Χρόνια 1 Μήνας πριν #3908

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
Graph Theory: λινκ

Maze solving algorithms: λινκ

Καλό διάβασμα.

Γενικά να ξέρεις ότι τέτοιου είδους προβλήματα στηρίζονται στην θεωρία των γράφων, για αυτό θα πρέπει να την ξέρεις. Αυτό που πας να κάνεις δεν είναι καθόλου εύκολο.
Τελευταία διόρθωση: 8 Χρόνια 1 Μήνας πριν από babaliaris1.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

path_find 8 Χρόνια 1 Μήνας πριν #3909

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
οκ το έλυσα
Δέν είναι βέβαια και τέλεια τα path που παίρνω αλλά οδηγούν στην έξοδο
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

path_find 8 Χρόνια 1 Μήνας πριν #3910

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
Theo έγραψε:
οκ το έλυσα
Δέν είναι βέβαια και τέλεια τα path που παίρνω αλλά οδηγούν στην έξοδο

Αν το ψάξεις υπάρχουν αλγόριθμοι για την εύρεση του ποιο σύντομου δρόμου.

Γενικά να ξέρεις, τέτοιου ίδους προβλήματα είναι πολύ δύσκολα, αλλά έχουν ίδη εφευρεθεί αλγόριθμοι που κάνουν αυτήν την δουλειά, αρκει να τους μάθεις. Δεν χρειάζεται να τους ξανά εφεύρεις μόνος σου.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.341 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου