You are on page 1of 10

Universidad Nacional

del Altiplano Puno


FACULTAD DE MECANICA ELECTRICA
ELECTRONICA Y SISTEMAS
ESCUELA PROFESIONAL INGENIERIA DE
SISTEMAS

INTELIGENCIA ARTIFICIAL
TEMA: HISTORIA DE LA INTELIGENCIA ARTIFICIAL
DOCENTE: ING.HUGO YOSEF GOMEZ
PRESENTADO POR:
MIRIAM NOA MENDOZA
SEMESTRE VIII
Puno -Per

INTELIGENCIA ARTIFICIAL
1 DEFINICIN.
La Inteligencia Artificial es una rama de la ciencia de la computacin que
comprende el estudio y creacin de sistemas computarizados que manifiestan cierta
forma de inteligencia: sistemas que aprenden nuevos conceptos y tareas, sistemas que
pueden razonar y derivar conclusiones tiles acerca del mundo que nos rodea, sistemas

que pueden comprender un lenguaje natural o percibir y comprender una escena visual, y
sistemas que realizan otro tipo de actividades que requieren de inteligencia humana
Como toda disciplina de reciente creacin, la IA no se encuentra unificada en
trminos de objetivos y mtodos de investigacin. Recientemente, parte de los esfuerzos
de los investigadores en esta rea se han dedicado a la definicin de dichos objetivos y al
recuento de las herramientas metodolgicas utilizadas hasta ahora. Como resultado de
este esfuerzo, que dista mucho de su conclusin, se han definido algunos acuerdos
bsicos sobre el rea y sus estrategias.
Por ahora, es suficientemente claro que el objetivo de la IA es el de entender la
naturaleza de la inteligencia a travs del diseo de sistemas computacionales que la
exhiban. En forma ms concreta, puede afirmarse que, en lo que ha transcurrido de su
corta historia, la IA ha estado dirigida por tres objetivos generales:
1. El anlisis terico de las posibles explicaciones del comportamiento inteligente.
2. La explicacin de habilidades mentales humanas.
3. La construccin de artefactos (computadoras) inteligentes.
Con estos propsitos en su agenda de investigacin, los estudiosos de la IA han
recurrido al uso de cuatro diferentes estrategias metodolgicas: el desarrollo de
tecnologas tiles en esta rea, la simulacin, el modelamiento, y la construccin de teora
sobre la inteligencia artificial. El desarrollo de tecnologas de computacin ha sido una
empresa titnica que los ingenieros en electrnica han tomado en sus manos, sin
embargo, slo una pequea parte de lo que se conoce como ciencia de la computacin
puede incluirse dentro de la IA.
La simulacin que se hace en IA ha intentado reproducir algunas de las
caractersticas inteligentes de los seres humanos. Estas reproducciones han buscado
abiertamente la similitud entre una computadora y los seres humanos. La elaboracin de
simulaciones ha sugerido la posibilidad de explorar los procesos cognoscitivos humanos,
sin embargo los esfuerzos en esta lnea, a diferencia del modelamiento, han estado
dedicados a producir comportamiento humano inteligente en las computadoras ms que a
entenderlo o explicarlo.
El modelamiento, por otra parte, tiene como objeto la utilizacin de los sistemas de
IA para entender a la inteligencia humana. Ha sido tradicionalmente utilizado por
psiclogos y no tiene como requisito necesario el uso de computadoras, De hecho,
muchas de las teoras sobre cognicin han utilizado modelos en computadoras sin hacer
referencia a ellas, por ejemplo, la teora sobre memoria semntica o sobre representacin
mental.
Finalmente, el trabajo terico en IA ha abierto por primera vez la posibilidad de
teorizar sobre la inteligencia sin hacer necesariamente referencia a la inteligencia
humana. Es decir, se ha propuesto la formulacin de una teora de la inteligencia "pura".
2. HISTORIA
El nacimiento real de la IA se produce para el ao 1950, cuando Norbet Wiener
desarroll el principio de la retroalimentacin. Esta tcnica consiste, por ejemplo, en la
tecnologa del termostato, comparar la temperatura actual del entorno con la deseada y,
segn los resultados, aumentarla o disminuirla. En 1955 Newell y Simon desarrollan la
Teora de la lgica la cual permiti desarrollar un programa que exploraba la solucin a
un problema utilizando ramas y nudos, seleccionando nicamente las ramas que ms
parecan acercarse a la solucin correcta de los problemas siendo ste el primer
programa inteligente basado en su modelo de procesamiento de informacin.
Basndose en los estudios sobre memoria asociativa, el equipo Newell-ShawSimon construy los primeros lenguajes de procesamiento de informacin (IPL-I, IPL-II)
utilizados en el diseo de su "Logic Theorist Machine" que se convirti en la primera
mquina "inteligente". Esta mquina fue capaz no slo de memorizar y aprender, sitio que
consigui demostrar de una manera original y "creativa", es decir no prevista por sus
creadores, algunos de los teoremas propuestos por Bertrand Russell en los Principios
(Russell and Whitehead, 1925).
En el ao 1957 aparece la primera versin de The General Problem Solver
(GPS), un programa capaz de solucionar problemas de sentido comn. El GPS utilizaba la
teora de la retroalimentacin de Wiener.

Desde sus orgenes la IA se relacion con juegos como el ajedrez y las damas,
probablemente debido a que los juegos de mesa constituyen modelos de situaciones
reales en las que hay que calcular, solucionar problemas, tomar decisiones, corregir
errores, recordar, etc. A pesar de que esta lnea de investigacin ha sido casi totalmente
abandonada en la actualidad, muchos de los avances tericos y metodolgicos de la IA se
deben a ella. Por ejemplo, Samuel dise en 1961 un programa que jugaba damas y que
era capaz de aprender de sus errores, es decir, era capaz de adaptar su comportamiento
en relacin con eventos pasados. Lo ms controversial de este programa fue que, aunado
a su capacidad de aprendizaje la de memoria, con el tiempo consigui derrotar
invariablemente a su creador.

Ya en el ao 1970 se produce el advenimiento de los Sistemas Expertos. Los


Sistemas Expertos se han utilizado para ayudar a los mdicos a diagnosticar
enfermedades e informar a los mineros a encontrar vetas de mineral. Al mismo tiempo, en
1970. David Marr propone nuevas teoras sobre la capacidad de reconocimiento visual de
las diferentes mquinas

Para el 1986 las ventas de hardware y software relacionados con la IA se


contabilizan por 425,000.00 millones de dlares. Compaas como DuPont, General
Motors, y Boeing utilizan sistemas expertos a principios de la dcada de los 80 y stos
sistemas expertos se convertirn en un standard a finales de la misma.
En los 90 la IA fue utiliza de forma efectiva en la Guerra del Golfo sobre sistemas
de misiles visores, los soldados y otros.

El problema de las
ocho reinas

Asumiendo la variante incremental del juego, es decir poner las reinas una a una de modo
que no se ataquen mutuamente, supngase que se tienen situadas tres reinas y tenemos
que decidir dnde colocar la cuarta. El papel de la heurstica aqu sera ofrecer un criterio
para decidir cul de las tres posiciones indicadas es la ms promisoria de conducir a una
solucin satisfactoria.

Al deducir una heurstica para este problema podemos razonar que para poder colocar las
ocho reinas tenemos que dejar libres la mayor cantidad de opciones como sea posible
para futuras adiciones de reinas.
Esto significa determinar la cantidad de casillas en las filas no utilizadas que quedaran no
atacadas al colocar la cuarta reina en A, B o C. Una casilla candidata ser preferida si
deja la mayor cantidad de casillas no atacadas en el resto del tablero. Consecuentemente
el nmero de casillas no atacadas constituye una medida de su mrito, es decir, es la
funcin de evaluacin heurstica para este problema.
Al calcular la funcin heurstica para las posiciones A, B y C se tiene:
f(A) = 8
f(B) = 9
f(C)= 10
Otra alternativa o enfoque heurstico es el siguiente. Las filas no usadas no tienen igual
estatus ya que aquellas con pocas casillas no atacadas tienden a quedar bloqueadas ms
rpidamente que filas con muchas casillas no atacadas. Consecuentemente, si queremos
minimizar la posibilidad de un futuro bloqueo debemos focalizar nuestra atencin sobre la
fila con menor nmero de casillas no atacadas, sea f" esta heurstica. Para esta funcin
tenemos,
f"(A) = 1
f"(B) = 1
f"(C)= 2
Ntese que con esta heurstica C tambin es la alternativa preferida. Adems, si alguna
opcin candidata toma valor cero para f o f" no tiene sentido considerarla pues
eventualmente ser un nodo muerto, la funcin f" supera a f en que esta detecta todos los
nodos muertos predichos por f y muchos ms.

Como se vio antes el objetivo de este juego es reordenar una configuracin inicial dada de
ocho piezas sobre un tablero de tres por tres en una configuracin final.
En el reordenamiento slo se permite desplazar fichas a la casilla vaca, siempre que sea
adyacente, es decir la regla es:
Una pieza puede moverse de la posicin X a la Y Si la posicin X es adyacente a Y y
la posicin Y est vaca.
Una solucin tpica para este problema requiere alrededor de veinte pasos, aunque este
nmero vara dependiendo del estado inicial.
El factor de ramificacin es aproximadamente tres (cuando la casilla vaca est en el
centro hay cuatro movimientos posibles y cuando est en una esquina hay dos). Esto
significa que una bsqueda exhaustiva a profundidad veinte podra requerir cerca de 320
= 3.5x109 estados. Eliminando los estados repetidos quedaran 9! = 362, 880
ordenamientos diferentes. Esta es an una cantidad grande de estados por lo que se
requiere encontrar una buena funcin heurstica.
Un razonamiento a seguir para construir la funcin heurstica para este problema es
estimar cun cerca un estado est del objetivo. Hay dos variantes comnmente usadas
para estimar la proximidad de un estado a otro:
i) Cantidad de piezas mal ubicadas, aquellas por las cuales los dos estados difieren,
llamada p.
ii) La suma de las distancias (horizontal y vertical) de las piezas a sus posiciones en el
estado objetivo, llamada h2. Esta funcin heurstica se conoce como distancia Manhattan.
Al aplicar estas heursticas al planteamiento anterior se tiene
h1(A) = 2 h1(B) = 3 h1(C) = 4
h2(A) = 2 h2(B) = 4 h2(C) = 4
Ambas funciones indican que A es la mejor opcin y por eso debe ser explorado antes
que B o C.
La variante de encontrar funciones heursticas flexibilizando el modelo del problema se
puede ilustrar con este juego. A partir de la regla que gobierna el juego se pueden generar
tres problemas flexibilizados removiendo una o ms de las condiciones:

(a) Una ficha se puede mover de X a Y si X est adyacente a Y (elimina la


condicin que Y est vaco)

(b) Una ficha se puede mover de X a Y si Y est vaca (elimina la condicin de que
ambas sean adyacentes)

(c) Una ficha se puede mover de X a Y (elimina ambas condiciones)


La cantidad de movimientos requeridos para resolver el problema (a) es exactamente
igual a la distancia Manhattan.

La cantidad de movimientos requeridos para resolver el problema (C) es exactamente


igual a la cantidad de fichas fuera de lugar, es decir que estn en una posicin diferente a
la que deben tener en el estado objetivo; la cual coincide con H1.
La funcin h1 es ms barata pero menos precisa que h2.
En el caso del problema (b) la cantidad de movimientos requeridos para resolverlo es la
cantidad de veces que la posicin vaca tiene que ser intercambiada con otra ficha, lo cual
sugiere otro estimado heurstico para el problema original.

PROBLEMA DEL CABALLO DE AJEDRES


La Heurstica:
En un tablero de ajedrez recorrer todas las casillas del tablero nicamente con los
movimientos del caballo sin repetir ninguna casilla.
Este problema antiguamente se resolva a mano probando posibles soluciones y
anotando las que eran errneas, es decir mtodo prueba-error. Con la llegada de
los ordenadores se solucion mediante tcnicas de inteligencia artificial. Usando
algoritmos de bsqueda de caminos.

Partiendo de la idea de que el caballo puede mover como mximo a 8 posiciones


diferentes el algoritmo consiste en pasar a una funcin los posibles movimientos
del caballo descartar los que estn fuera del tablero y las casillas ya visitadas y
probar con el resto. Si una posicin se queda sin posibles siguientes movimientos,
volver a la anterior posicin y probar la siguiente posible. Lo he implementado con
una funcin recursiva, se llama as misma.

Solucin con la heurstica:


Debe visitar primero las casillas con menos movimientos posibles. As que he hecho una
funcin que analiza los posibles movimientos de los vecinos y ordenada la lista de
movimientos de menor a mayor.
El juego es de un tablero de 88, es decir 64 posiciones diferentes, que son las de un tablero
de ajedrez, aunque se puede ajustar el juego para que halle la solucin de un tablero de nxn.

Bsqueda en anchura
La busqueda en anchura (o bsqueda en amplitud), en ingls, es un algoritmo usado para
recorrer o buscar elementos en una estructura de datos como los rboles y los grafos (aunque

nosotros nos centremos ahora mismo en los rboles). Pertenece al grupo de las bsquedas
no informadas (sin heursticas). Su procedimiento consiste en ir visitando todos los nodos de
un nivel antes de proceder con el siguiente Bsqueda en anchura
La busqueda en anchura (o bsqueda en amplitud), llamada Breadth First Search en ingls,
es un algoritmo usado para recorrer o buscar elementos en una estructura de datos como los
rboles y los grafos (aunque nosotros nos centremos ahora mismo en los rboles). Pertenece
al grupo de las bsquedas no informadas (sin heursticas). Su procedimiento consiste en ir
visitando todos los nodos de un nivel antes de proceder con el siguiente nivel tal y como
mostramos en la siguiente figura (los nmeros en naranja indican el orden de exploracin de
los nodos)nivel tal y como mostramos en la siguiente figura (los nmeros en naranja indican el
orden de exploracin de los nodos)
Nuestro procedimiento va a ser el siguiente:
Insertamos la raz en la cola, como preparacin.
Si la cola no est vaca, sacamos el primer elemento (el primer nodo que haya en la cola) y
comprobamos si es el elemento que estamos buscando. Si es igual entonces acabamos, si no
es igual obtenemos todos los hijos de dicho nodo y los insertamos en la cola (recordamos que
las inserciones son por el final).
Repetimos hasta que hayamos encontrado el elemento o la cola sea vaca.
CODIGO;

public boolean busquedaAnchura(char c) {


Queue<NodoArbol> colaAuxiliar = new LinkedList<NodoArbol>();
colaAuxiliar.add(this);
while(colaAuxiliar.size() != 0) {
NodoArbol cabeza = colaAuxiliar.poll();
System.out.println(cabeza.getElemento()); // solo aadido como
informacion para nosotros
if(cabeza.getElemento() == c)
return true;
else
for(NodoArbol hijo : cabeza.getHijos())
colaAuxiliar.add(hijo);
}
return false;
}

Bsqueda en profundidad
La busqueda en profundidad, es un algoritmo usado para recorrer o buscar elementos en
un rbol o un grafo y pertenece al grupo de las bsquedas no informadas (sin heursticas).

Su procedimiento consiste en visitar todos los nodos de forma ordenada pero no uniforme
en un camino concreto, dejando caminos sin visitar en su proceso. Una vez llega al final
del camino vuelve atrs hasta que encuentra una bifurcacin que no ha explorado, y
repite el proceso hasta acabar el rbol (esto se conoce como backtracking). En la
siguiente figura mostramos el orden de visita, siendo los nmeros en naranja dicho orden.
Nuestro procedimiento, por tanto, ser:
Insertamos la raz en la pila, para preparacin.
Mientras haya algo en la pila, desapilamos la cabeza. Comprobamos si es el elemento
que buscamos y si lo es acabamos. Si no lo es, cogemos todos los hijos de dicho nodo y
los apilamos todos.
Repetimos hasta que encontremos el elemento buscado o la pila est vaca.
CODIGO:

public boolean busquedaProfundidad(char c) {


Stack<NodoArbol> pilaAuxiliar = new Stack<NodoArbol>();
pilaAuxiliar.push(this);
while(pilaAuxiliar.size() != 0) {
NodoArbol cabeza = pilaAuxiliar.pop();
System.out.println(cabeza.getElemento()); // solo aadido como
informacion para nosotros
if(cabeza.getElemento() == c)
return true;
else
for(int i = cabeza.getHijos().size() - 1; i >= 0; i--)
pilaAuxiliar.push(cabeza.getHijos().get(i));
}
return false;
}

You might also like