Você está na página 1de 6

DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

CARRERA:
Ingeniería en Sistemas e informática
ASIGNATURA: FECHA DE ELABORACION: 02/05/2019
Inteligencia artificial II SEMESTRE: Octubre 2018 – Febrero 2019

INTEGRANTES
Fierro Oscar
Ortiz Nicolas
Puebla David
Villegas Carlos

OBJETIVO DE APRENDIZAJE: Implementar un agente que induzca una función en 2D


a partir de ejemplos
OBJETIVOS ESPECÍFICOS
 Implementar los conocimientos y teoría aprendida en clase para lograr construir una
heurística que represente una solución al problema planteado
 Elaborar un programa que implemente y demuestre gráficamente la heurística
planteada.

DESCRIPCIÓN/CASO
 Utilice como material principal, aquel indicado en clase por el docente.
 Utilice información consultada en Internet y conocimiento adquirido en clase.

MARCO TEÓRICO

Se denomina heurística al arte de inventar. En programación se dice que un algoritmo


es heurístico cuando la solución no se determina en forma directa, sino mediante
ensayos, pruebas y reensayos.
El método consiste en generar candidatos de soluciones posibles de acuerdo a un
patrón dado; luego los candidatos son sometidos a pruebas de acuerdo a un criterio
que caracteriza a la solución. Si un candidato no es aceptado, se genera otro; y los
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

pasos dados con el candidato anterior no se consideran. Es decir, existe


inherentemente una vuelta atrás, para comenzar a generar un nuevo candidato; por
esta razón, este tipo de algoritmo también se denomina "con vuelta atrás"
(backtracking en inglés) [1].
Con el fin de resolver problemas complicados con eficiencia, en ocasiones es
necesario comprometer algunos requisitos de optimalidad y construir una estructura
de control que no garantice encontrar la mejor respuesta pero que casi siempre
encuentre una buena solución. De esta forma, surge la idea de heurística. La palabra
heurística viene de la palabra griega heuriken que significa “descubrir”, que es
también origen de eureka, derivado de la famosa exclamación de Arquímedes,
heurika (“lo encontré”). Así definieron Bartholdi y Platzman (en 1988) lo que es
heurística para ellos: “Una heurística puede verse como un procesador de información
que, deliberadamente, peor juiciosamente, ignora cierta información. Ignorando
información, una heurística se libra de gran parte del esfuerzo que debió haberse
requerido para leer los datos y hacer cálculos con ellos. Por otra parte, la solución
producida por tal heurística, es independiente de la información ignorada, y de este
modo no se ve afectada por cambios en tal información. Idealmente, se busca ignorar
información que resulta muy caro colectar y mantener, esto es, computacionalmente
caro de explotar y mantener, y que contribuye en poco a la precisión de la solución.”
Podemos definir una heurística como una técnica que aumenta la eficiencia de un
proceso de búsqueda, posiblemente sacrificando demandas de completitud. Las
heurísticas son como los guías de turismo: resultan adecuados en el sentido de que
generalmente suelen indicar las rutas interesantes; son malos en el sentido de que
pueden olvidar puntos de interés para ciertas personas. Al usar buenas heurísticas se
pueden expresar buenas (aunque posiblemente no óptimas) soluciones a problemas
difíciles, como el del viajante de comercio [2].
Una función heurística es una correspondencia entre las descripciones de estados del
problema hacia alguna medida de deseabilidad, normalmente representada por
números. Quiere decir que mensura cada estado del problema (solución) y dice qué
tan cerca de la solución óptima está.
El propósito de una función heurística es el de guiar el proceso de búsqueda en la
dirección más provechosa sugiriendo qué camino tomar cuando hay más de uno
disponible. Cuanto más exactamente estime la función heurística los méritos de cada
nodo del árbol (o grafo) que representa al problema, más directo será el proceso de
solución. En general, hay que hacer una ponderación entre el costo de evaluación de
una función heurística y el ahorro de tiempo de búsqueda que proporciona la función
[3].
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

ACTIVIDADES
1. Ubicación de Recursos
1. Formar grupos de máximo 2 personas por computador
2. Verificar que esté instalada la herramienta para programación

2. Planteamiento del Problema


1. Heurística
La heurística que se plantea parte del concepto de punto medio y consiste en
obtener el punto medio entre p1 y p3 y entre p2 y p3, posteriormente se
procede a unir ambos puntos medio como forma de representar un cruce entre
los 3 puntos.
2. ALGORITMO

%%
hold on;
x1=input('Ingrese x ');
y1=input('Ingrese y ');
x2=input('Ingrese x ');
y2=input('Ingrese y ');
g1=plot(x1,y1,'o');
g2=plot(x2,y2,'o');
op=input('Presione 1 para ingresar otro punto,0
para salir ');
while op ~= 0
x3=input('Ingrese x ');
y3=input('Ingrese y ');
g3=plot(x3,y3,'o');
xm1=(x1+x3)/2;
ym1=(y1+y3)/2;
xm2=(x2+x3)/2;
ym2=(y2+y3)/2;
plot(xm1,ym1,'o');
plot(xm2,ym2,'o');
plot([xm1,xm2],[ym1,ym2]);
x1=xm1;
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

y1=ym1;
x2=xm2;
y2=ym2;
op=input('Presione 1 para ingresar otro
punto,0 para salir ');
delete(g1);
delete(g2);
delete(g3);
end
hold off;

3. EJECUCIÓN

Ilustración 1. Ejecución del programa en Matlab


DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

RESULTADO

Ilustración 2. Resultado de los puntos ingresados

CONCLUSIONES
 Utilizando los conocimientos impartidos en clase acerca de agentes y el
planteamiento de heurísticas para la resolución de problemas se ha logrado plantear
una solución que permite representar n puntos ingresados por el usuario en una
función.
 Se ha implementado el algoritmo y la representación gráfica del mismo utilizando el
programa MATLAB.
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

Referencias

[1] L. Silva, «Algoritmos Heuristicos,» UNIVERSIDAD TECNICA FEDERICO SANTA MARIA, FEDERICO
SANTA MARIA, 2003.

[2] S. Ramos, «Modelos y optimización I,» Buenos Aires, 2007.

[3] J. Pearl, «HEURISTICS,» Israel, 1984.

Você também pode gostar