Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

162
Views
¿Cómo encuentra mi algoritmo de búsqueda primero en amplitud la ruta más corta en el ejemplo de mi tutorial a continuación?

Entiendo los conceptos básicos de cómo funciona una búsqueda en amplitud. Utiliza una estructura de datos de cola para encontrar vértices adyacentes nivel por nivel.

Mi problema es entender cómo encontrar el camino más corto entre dos vértices. En el siguiente ejemplo, asignamos vértices recién visitados junto con su borde a una matriz llamada edgeTo , pero mi pregunta es ¿cómo se almacenan los datos? ¿Es una matriz bidimensional? ¿Y cómo se recupera con la función pathTo ?

El bucle for en la función pathTo me parece un poco extraño, sin duda porque podría ser nuevo en esto. ¿Cómo obtiene esto la ruta más corta y cómo se estructuran los datos o cómo se guardan los bordes?

 // add this to Graph class this.edgeTo = []; // bfs function function bfs(s) { var queue = []; this.marked[s] = true; queue.push(s); // add to back of queue while (queue.length > 0) { var v = queue.shift(); // remove from front of queue if (v == undefined) { print("Visited vertex: " + v); } for each(var w in this.adj[v]) { if (!this.marked[w]) { this.edgeTo[w] = v; this.marked[w] = true; queue.push(w); } } } } function pathTo(v) { var source = 0; if (!this.hasPathTo(v)) { return undefined; } var path = []; for (var i = v; i != source; i = this.edgeTo[i]) { // this for loop is new to me path.push(i); } path.push(s); return path; } function hasPathTo(v) { return this.marked[v]; }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

this.edgeTo es una matriz simple.

El BFS comienza en el vértice de origen, y cuando descubre un nuevo vértice i , establece edgeTo[i] en el vértice predecesor , que necesariamente debe estar un paso más cerca del origen.

En la función pathTo , el bucle for sigue la cadena de enlaces edgeTo desde v hasta el origen. Esto enumera la ruta más corta a la inversa . Estos vértices se agregan a la path a medida que se encuentran.

pathTo luego devuelve la ruta en orden inverso, lo cual es un poco extraño. Una implementación más habitual invertiría la path antes de devolverla, de modo que comenzaría en el source y terminaría en v . Esta función también parece tener algunos errores en otros aspectos. Tal vez todavía estés trabajando en ello...

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!