Ayuda con implementación de programa en C con búsqueda profunda, a lo ancho y escalada simple

Soy Juan Aguilar de Mexico, DF. Se muy poco sobre programación en C (Casi NADA). Para acreditar La materia de Inteligencia artificial me piden realizar tres programas, que realicen, una búsqueda por profundidad, otra a lo ancho y otra por escalada simple. Lo único que he podido hacer son estos algoritmos:
---------------------------------------
Búsqueda a lo ancho:
1.- Crear una variable llamada LISTA-NODOS y asignarle el estado inicial.
2.-Hasta que se encuentre un estado META, o LISTA-NODOS esté vacía, hacer lo siguiente:
>Eliminar el primer elemento de LISTA-NODOS y llamarlo E. Si LISTA-NODOS esta vacía. TERMINAR.
>Para Cada regla cuya condición se corresponda (aparece) con el estado descrito en E Hacer lo siguiente:
I. Aplicar la regla para generar un nuevo estado.
II. Si el nuevo estado es un estado META, terminar y devolver este estado.
III. En caso contrario, añadir el nuevo estado al final de LISTA-NODOS
---------------------------------------
Búsqueda por profundidad:
1.-Crear una variable llamada LISTA-NODOS y asignarle el estado inicial E.
2.- Si LISTA-NODOS esta vacía retornar un fallo y terminar.
3.-Si el primer elemento de la lista es un estado meta M, retornar un éxito y parar. En caso contrario:
>Eliminar de LISTA-NODOS el primer elemento y generar sus sucesores colocando estos al inicio de LISTA-NODOS (en algún Orden)
>Retornar al Paso 2.
--------------------------------------
Escalada simple:
1.- Evaluar es estado inical. Si también es el estado objetivo, devolverlo y TERMINAR. En caso Contrario, continuar con el estado inicial como estado actual.
2.- Repetir hasta que se encuentre una solución o hasta que no queden nuevos operadores que aplicar al estado actual:
I. Seleccionar un operador que no haya sido aplicado con anterioridad al estado actual y aplicarlo para generar un nuevo estado.
II. Evaluar el nuevo estado.
>Si es un estado objetivo, devolverlo y TERMINAR.
>Si no es un estado objetivo, pero es mejor que el estado actual, convertirlo en el estado actual.
>Si no es mejor que el estado actual, continuar con el bucle (es decir regresar al paso1).
----------------------------------------
Como te podrás imaginar me fue muy difícil entender y transcribir con ayuda del maestro estos algoritmos, más como me falla la programación no se como implementarlo en C y desplegar en pantalla según el maestro algo parecido a lo siguiente (más bien dicho el guey lo quiere así..¡):
*********************************************
Contenido actual de LISTA-NODOS :
A C
----- -----
Contenido Actual de LISTA-NODOS :
-A -C -E
----- -----
Contenido Actual De LISTA-NODOS :
-A -C -E -K
----- -----
-------------------------------------------
------------------------------------------
Se ha alcanzado un estado meta : G .
El estado del que fue generado : QUE .
Desde el estado Inicial : A .
Se aplicaron : 4 Operadores.
La Secuencia de Estados es la siguiente:
-A -C -E -K -G
- - FIn del la busqueda.
*********************************************
Pido ayuda a los expertos puesto que los cuates de la materia o no saben igual que yo o son ojeis y no los quieren pasar. Ojala y me puedas ayudar a generar el código en C y si no quieres o puedes y conoces a alguien que me pueda ayudar te estaré en verdad mil veces agradecido.

2 Respuestas

Respuesta
1
Si he entendido bien tienes dos problemas, uno que es el de no saber como desplegar en pantalla esa descripción del proceso de búsqueda y el otro es la codificación del algoritmo.
Sobre el primero para imprimir por pantalla utiliza la función prinf:
http://labsopa.dis.ulpgc.es/cpp/intro_c/introc26.htm
http://labsopa.dis.ulpgc.es/cpp/intro_c/introc27.htm
En cada pasada por el bucle tendrás que imprimir el estado actual de la LISTA-NODOS
Y en el caso de que se produzca el hallazgo de un estado meta deberás imprimir la descripción de ese hallazgo tal y como te piden.
Al final, cunado salgas del bucle" imprimirás "Fin de la búsqueda".
Si quieres información sobre busueda en grafos, aquí tienes un documento bastante bueno:
http://pisuerga.inf.ubu.es/cgosorio/SExInArt/UT3/busqueda.pdf
Si tienes algún problema para avanzar no dudes en volver a preguntar
Respuesta
1
Creo que puedo hacer el código C que me pides, pero antes debo saber el compilador que vas a utilizar, pues será distinto si empleas C++ Builder, Visual C++ o un simple Ansi C.
Tardaré de dos a tres días en darte el resultado.
Gracias por tener en cuenta este mensaje, como te decía me es muy difícil la programación, pero me pasa algo muy raro, puedo leer un código y hasta explicarle a otra persona que es lo que hace y sin embargo a la hora de crear, diseñar y escribir un código nomas no puedo... ¿qué raro no..?
Bueno pues espero me puedas ayudar, regularmente en la escuela utilizamos Turbo C y Borland C 5.0, ojala y en verdad me puedas ayudar y pues de antemano muchas gracias. Atentamente. Juan A.
En breve te mandaré el código que espero que se pueda compilar y ejecutar en el Borland C 5.0.
Por el momento te doy unos enlaces para que puedas ver alguna información sobre Inteligencia Artificial
http://www.fdi.ucm.es/profesor/carmen/iaic/tema_2.htm

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas