elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Error en busqueda en amplitud con python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en busqueda en amplitud con python  (Leído 2,453 veces)
falconez

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Error en busqueda en amplitud con python
« en: 3 Junio 2015, 18:43 pm »

He estado tratando de corregir el error pero no lo encuentro ... Me sale: while nodo.get_padre() != None:
AttributeError: 'NoneType' object has no attribute 'get_padre'


Código
  1. from arbol import Nodo
  2.  
  3. def buscar_solucion_BFS(estado_inicial, solucion):
  4.    solucionado = False
  5.    nodos_visitados = []
  6.    nodos_frontera = []
  7.    nodoInicial = Nodo(estado_inicial)
  8.    nodos_frontera.append(nodoInicial)
  9.    while(not solucionado) and len(nodos_frontera) != 0:
  10.        nodo = nodos_frontera.pop(0)
  11.        #extraer nodo y anadirlo a visitados
  12.        nodos_visitados.append(nodo)
  13.        if nodo.get_datos() == solucion:
  14.            #solucion encontrada
  15.            solucionado = True
  16.            return nodo
  17.        else:
  18.            #expandir nodos hijos
  19.            dato_nodo = nodo.get_datos()
  20.  
  21.            #operador izquierdo
  22.            hijo = [dato_nodo[1], dato_nodo[0], dato_nodo[2], dato_nodo[3]]
  23.            hijo_izquierdo = Nodo(hijo)
  24.            if not hijo_izquierdo.en_lista(nodos_visitados) and not hijo_izquierdo.en_lista(nodos_frontera):
  25.                nodos_frontera.append(hijo_izquierdo)
  26.                #operador central
  27.                hijo = [dato_nodo[0], dato_nodo[2], dato_nodo[1], dato_nodo[3]]
  28.                hijo_central = Nodo(hijo)
  29.                if not hijo_central.en_lista(nodos_visitados) and not hijo_central.en_lista(nodos_frontera):
  30.                    nodos_frontera.append(hijo_central)
  31.                    #operador derecho
  32.                    hijo = [dato_nodo[0], dato_nodo[1], dato_nodo[3], dato_nodo[2]]
  33.                    hijo_derecho = Nodo(hijo)
  34.                    if not hijo_derecho.en_lista(nodos_visitados) and not hijo_derecho.en_lista(nodos_frontera):
  35.                        nodos_frontera.append(hijo_derecho)
  36.  
  37.                        nodo.set_hijos([hijo_izquierdo, hijo_central, hijo_derecho])
  38.  
  39.  
  40. if __name__ == "__main__":
  41.    estado_inicial = [4, 2, 3, 1]
  42.    solucion = [1, 2, 3, 4]
  43.    nodo_solucion = buscar_solucion_BFS(estado_inicial, solucion)
  44.        #mostrar resultado
  45.    resultado = []
  46.    nodo = nodo_solucion
  47.    while nodo.get_padre() != None:
  48.        resultado.append(nodo.get_datos())
  49.        nodo = nodo.get_padre()
  50.    resultado.append(estado_inicial)
  51.    resultado.reverse()
  52.  
  53.    print resultado
  54.  


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Error en busqueda en amplitud con python
« Respuesta #1 en: 4 Junio 2015, 20:34 pm »

eso es porque la función "buscar_solucion_BFS(estado_inicial, solucion):" debe retornar "NONE" en algún caso y la tuya no lo hace.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en busqueda...
Sugerencias y dudas sobre el Foro
Sk9ITk5Z 2 2,877 Último mensaje 10 Agosto 2011, 01:13 am
por Sk9ITk5Z
[Python] Optimizar busqueda de primos
Scripting
camaleonh 0 3,165 Último mensaje 28 Febrero 2012, 08:16 am
por camaleonh
busqueda por amplitud
Java
bengy 1 2,433 Último mensaje 22 Octubre 2012, 23:48 pm
por bengy
ayuda con recorrido de grafos en amplitud y profundidad
Programación C/C++
Beginner Web 0 1,575 Último mensaje 10 Noviembre 2018, 17:17 pm
por Beginner Web
Detector de silencio o medidor de amplitud de microfono
Scripting
Juancfernandez 2 6,450 Último mensaje 4 Noviembre 2019, 20:14 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines