Ir al contenido principal

BUSQUEDA HEURISTICA POR COSTO UNIFORME Y HEURISTICA PURA

TORRES DE HANOI:

En la imagen se muestra el grafo de la solución, se señala la mejor solución con color morado.


 HANOI COSTO UNIFORME

LISTA
NODO
SUCESORES
I
I
II(1), III(2)
II(1), III(2)
II(1)
IV(2+1)
III(2), IV(3)
III(2)
V(1+2)
IV(3), V(3)
IV(3)
VI(1+3), VII(1+3)
V(3), VI(4), VII(4)
V(3)
VIII(3+2), IX(3+1)
VI(4), VII(4), VIII(5), IX(4)
VI(4)
STOP
VII(4), VIII(5), IX(4)
VII(4)
VI(4+2), VIII(4+1)
VIII(5), IX(4), VI(6), VIII(5)
IX(4)
VIII(4+1)
VIII(5), VI(6), VIII(5), VIII(5)
VIII(5)
VII(5+1)
VIII(5), VI(6), VIII(5), VII(6)
VIII(5)
VII(5+1)
VI(6), VIII(5), VII(6), VII(6)
VIII(5)
IX(5+1)
VI(6),VII(6), VII(6), IX(6)
VI(6)
STOP
VII(6), VII(6), IX(6)
IX(6)
- - - - - - - - - - - -
VII(6), VII(6)
VII(6)
VI(6+2)





 TALLER HANOI
 


Algoritmo Torres de Hanói (Complejidad \Theta(2^n))
Entrada: Tres pilas de números origenauxiliardestino, con la pila origen ordenada
Salida: La pila destino
  1. si origen \scriptstyle == \{1\} entonces
    1. mover el disco 1 de pila origen a la pila destino (insertarlo arriba de la pila destino)
    2. terminar
  2. si no
    1. hanoi(\scriptstyle \{1, \dots , n-1 \},origen,destinoauxiliar)     //mover todas las fichas menos la más grande (n) a la varilla auxiliar
  3. mover disco n a destino                //mover la ficha grande hasta la varilla final
  4. hanoi (auxiliarorigendestino)          //mover todas las fichas restantes, 1...n–1, encima de la ficha grande (n)
  5. terminarTORRE 6 DISCOS Se requieren 63 Movimientos 1B-2C-1C-3B-1A-2B-1B-4C-1C-2A-1A-3C-1B-2C-1C- 5B-1A-2B-1B-3A-1C-2A-1A-4B-1B-2C-1C-3B-1A-2B-1B-6C-1C-2A-1A-3C-1B-2C-1C-4A-1A-2B-1B-3A-1C-2A-1A-5C-1B-2C-1C-3B-1A-2B- 1B-4C-1C-2A-1A-3C-1B-2C-1C-


Monótona: No es monótona en todos los nodos porque en el nodo iv es menor el costo estimado que el nodo ancestro.

Admisible: No es admisible en todos los nodos porque  el costo estimado no siempre es menor en el ancestro con respecto a su nodo generado. 

Consistente: Es consistente porque el nodo n no tiene su costo estimado más grande que el costo estimado de su nodo generado.


CÓDIGO EN C



#include <iostream>
using namespace std;
void hanoi(int num,char A,char C,char B)
{
        if(num==1)
        {
                        cout<<"Mueva el bloque "<<num<<" desde "<<A<<" hasta  "<<C<<endl;
                        
        }
        else
        {
                hanoi(num-1,A,B,C);
                cout<<"Mueva el bloque "<<num<<" desde "<<A<<" hasta  "<<C<<endl;
                hanoi(num-1,B,C,A);
        }
}
int main()
{
                int n;
                char A,B,C;
                cout<<"Las torres son A B C\n";
                cout<<"Numero de discos: ";
                cin>>n;
                hanoi(n,'A','C','B');
                

}










REFERENCIAS:
http://www.reglasdel.com/2011/03/torre-de-hanoi.html
http://cremasbasicasytutoriales.blogspot.com.co/

Comentarios

Entradas populares de este blog

REDES NEURONALES ARTIFICIALES

Redes Neuronales Inteligencia Artificial Historia de las Redes Neuronales: 1936: 1936 Alan Turing estudio el cerebro como una forma de ver el mundo de la computación. 1943: Warren McCulloch un neurofisiólogo y Walter Pitts un matemático crearon una teoría sobre la forma de trabajar de las neuronas. Ellos modelaron una red neuronal simple mediante circuitos eléctricos. 1949: Donald Hebb   expuso una idea, la cual   fue que el aprendizaje ocurría cuando ciertos cambios en una neurona eran activados. Los trabajos de Hebb formaron las bases de la Teoría de las Redes Neuronales. Escribió un importante libro en el que explicaba los procesos del aprendizaje desde un punto de vista psicológico. 1950: Karl Lashley trabajo el almacenamiento no centralizado, sino distribuido. 1954: Marvin Minsky dio el primer resultado de 40 neuronas trabajando aprendizaje hebbiano. 1956: 1°Congreso científico sobre redes neuronales. 1957: Frank Rosenblatt desarrolla el ...

A* ALGORITMO

Algoritmo A* El algoritmo A*es un algoritmo de búsqueda que puede ser empleado para el cálculo de caminos mínimos en una red. Se va a tratar de un algoritmo heurístico, ya que una de sus principales características es que hará uso de una función de evaluación heurística, mediante la cual etiquetará los diferentes nodos de la red y que servirá para determinar la probabilidad de dichos nodos de pertenecer al camino óptimo. Esta función de evaluación que etiquetará los nodos de la red estará compuesta a su vez por otras dos funciones. Una de ellas indicará la distancia actual desde el nodo origen hasta el nodo a etiquetar, y la otra expresará la distancia estimada desde este nodo a etiquetar hasta el nodo destino hasta el que se pretende encontrar un camino mínimo. Es decir, si se pretende encontrar el camino más corto desde el nodo origen s, hasta el nodo destino t, un nodo intermedio de la red n tendría la siguiente función de evaluación f(n) como etiqueta: f(n)= g(n) + h(n) Dond...