Está en la página 1de 4

PRACTICA CALIFICADA 1

Samuel Oporto Díaz (soportod@uni.edu.pe)


Curso de Inteligencia Artificial de la Facultado de Ingeniería Industrial de la Universidad Nacional de Ingeniería, ciclo
2020ii

Resumen
 El desarrollo de la P1, es grupal, con fecha de entrega el martes 8 de diciembre del 2020.
 Prepare tres estrategias de solución, cada estrategia consiste en enviar la arquitectura de la solución de nivel 0 y de nivel 1, para que sea
aprobado.
 Implemente el conocimiento procedural en un lenguaje de programación de alto nivel.
 El programa no debe de tener interface gráfica, solo debe leer los datos desde archivos de texto y grabar los resultados en un archivo de
texto.
 Asuma que el procedimiento se usa para resolver un solo caso.

INTRODUCCIÓN Donde un procedimiento a su vez puede contener


El grupo desarrolla uno de los problemas planteados varios procedimientos internos.
en la sección ProblemArchive de TopCoder:
V1 V2
http://community.topcoder.com/tc?
module=ProblemArchive V4 V6
V3 V5
Antes de desarrollar el problema deben de enviar al
profesor soportod@uni.edu.pe, 3 problemas que ha
seleccionado y usted considera que puede resolverlos
en un tiempo razonable. El profesor seleccionará uno Y cada uno de ellos a su vez contener nuevos
de estos problemas, para el cual deberá desarrollar el procedimientos internos, se debe de tener cuidado en
procedimiento que se indica a continuación. no hacer uso de variables no definidas en los niveles
superiores o de enviar variables a un procedimiento
No se trata de diseñar una base de datos, ni diseñar que luego no son usados.
pantallas, ni diseñar reportes.
Los estudiantes hacen diferencia entre las variables de
Se trata de que usted represente el conocimiento entrada y variables de salida, propias de un problema
declarativo, es decir que explique todas las variables particular a resolver de las variables propias del
que se requiere para representar cualquier problema procedimiento de optimización.
algorítmico, su representación debe ser genérica tal
que logre representar variables de entrada y ENTREGABLES
variables de salida numéricas y categóricas, y dentro
de estas aquellas que son ordinales y cardinales, que Al finalizar el desarrollo de su proyecto debe de
califique a todas las variables categóricas como entregar.
unarias, binarias o polinomiales, exponer al menos
dos ejemplos de variables a representar. 1. Especificación del conocimiento declarativo.
Especificar cada una de las variables que resuelve
Ud. debe de definir variables para representar cada el problema, indicando claramente ejemplos de
instancia del problema que ha elegido, preparar su cada uno de ellos, particularmente si las variables
representación según las diferentes estructuras de están declaradas en función a otras variables. El
datos disponibles en los lenguajes de programación. ejemplo debe consiste en presentar un
caso/situación/instancia que desea representar y
Luego que ha logrado representar el conocimiento su representación.
declarativo de su problema, procede a representar el
conocimiento procedural. Esta sección debe de ser congruente con las
siguientes secciones.
El conocimiento procedural debe ser representado
siempre mediante bloques con entradas y salidas. Evite declarar variables de nombres abstractos,
prepare una lista de sus variables, coloque
ejemplos, describa cada uno de ellos.
Entrada Procedimiento Salida
2. Estrategia de solución
Explicar la estrategia de solución al problema, la transformación) un parámetro es una constante
estrategia es la selección de una alternativa entre que no cambia durante la ejecución del programa.
múltiples alternativas posibles.
4. Descripción del conocimiento procedural
Observar que la estrategia no implica resolver el Descripción de cada uno de los
problema, solo debe de plantear cómo lo va a pasos/etapas/hitos/momentos, por los que debe
resolver. de pasar la entrada para convertirse en la salida.

Por ejemplo, si a usted le piden que traiga un Coloque ejemplos de cada uno de los pasos, de tal
huevo de águila, tiene las siguientes opciones: forma que sea claro, las transformaciones por las
 Ir al campo donde viven las águilas, se sube a que pasa la entrada para llegar a la salida.
los peñascos hasta donde están sus nidos y
trae los huevos (si es que han puesto los Exponga en función al conocimiento declarativo lo
huevos). que entra y lo que sale de cada uno de los pasos.
 Ir donde un amigo que cría águilas y le compra
uno (espera que tenga un huevo disponible y 5. Tipo de agente
si tiene amigos que crían águilas). Identifique el tipo de agente que corresponde a la
 Ir a una tienda de animales y solicita que le función diseñada, diga por qué corresponde a este
traigan un huevo de águila (pero debe de tipo de agente.
hacer un pago por adelantado, con la Especifique el agente diseñado mediante la
posibilidad que demoren o no le traigan descripción del agente:
nada).  Sensores, señales, percepciones.
Ninguna estrategia asegura resolver el problema,  Efectores, acciones.
pero si no plantea la estrategia no puede resolver  Regla que traduce la percepción en acción.
el problema.  Medida de rendimiento del agente.
 Ejemplos de corridas.
La estrategia consiste en elegir una opción entre
un conjunto de opciones planteadas por un Explique cada uno de estos elementos con detalle
experto, la que tenga la mayor probabilidad éxito, y ejemplos, no basta con colocar una lista simple.
dado que usted no tiene EXPERIENCIA, debe de
aprender esto por PRUEBA Y ERROR. 6. Resultados obtenidos
Coloque ejemplos de las corridas (favor de no
Plantear la estrategia en función al conocimiento colocar pantallazos, con que claramente la
declarativo que ha planteado. entrada y la salida, explique los resultados, no
solo los pinte.
3. Plantear el conocimiento procedural.
Mediante un diagrama de cajas o mediante un Coloque ejemplos propios, no use solo aquellos
algoritmo, donde sea claro cada uno de los pasos que son proporcionados por el problema.
que ejecuta el procedimiento para resolver el
problema. 7. Conclusiones

Especifique claramente aquellas variables que son 8. Referencias usadas


entradas y aquellas que son parámetros (una Qué ha usado para resolver el problema.
entrada se convierte en una salida mediante una
Esquema general para el diseño de la solución de alto nivel.

# coding=utf-8
#!/usr/bin/env python

class Agent:

def readData(self, filename):

data = ''

return data

def writeData(self, filename):

data = ''

return 1

def mainProcess(self, entrada1, entrada2, parametro1, parametro2):


# Estructura de alto nivel (nivel 0)
print('main process')

return ['salida1', 'salida2', 'salida3']

def modulo1(self, e1, e2. p1, p2):


# Estructura de alto nivel (nivel 0)
print('sub proceso 1')

return ['salida1']

def modulo2(self, e1, e2. p1, p2):


# Estructura de alto nivel (nivel 0)
print('sub proceso 1')

return ['salida1']

def modulo3(self, e1, e2. p1, p2):


# Estructura de alto nivel (nivel 0)
print('sub proceso 1')

return ['salida1']

if __name__ == '__main__':

agente = Agent()

entrada1 = agente.readData('')
entrada2 = agente.readData('')
parametro1 = 23
parametro2 = 'abc'

[salida1, salida2, salida3] = agente.MainProcess(entrada1, entrada2,


parametro1, parametro2)

agente.writeData(salida1)
agente.writeData(salida2)
agente.writeData(salida3)
ENTREGAR UN INFORME EN FORMATO DE PAPER

 TITULO, AUTOR Y FILIACIÓN


o Resumen
o Introducción
 EL PROBLEMA
o Especificación del problema original (en inglés)
o Especificación del problema en español.
 SOLUCIÓN AL PROBLEMA.
o Especificación del conocimiento declarativo.
o Estrategia de solución
o Plantear el conocimiento procedural.
o Descripción del conocimiento procedural
 DISEÑO DE AGENTES
o Sensores, señales, percepciones.
o Efectores, acciones.
o Regla que traduce la percepción en acción.
o Medida de rendimiento del agente.
o Ejemplos de corridas.
 RESULTADOS
o Resultados obtenidos
o Conclusiones
 REFERENCIAS USADAS
o Bibliografía leída, incluya solo la bibliografía que ha referenciado desde su informe.
 CÓDIGO FUENTE
o Favor que sea identado y que pueda ser leído por humanos (espaciado simple, letra Currier New de
tamaño 8 a una sola columna)
o Tengo cuidado en el tamaño de los tabs.
o Encuadre cada función o método en un “cuadro”.
o Hacer que el programa principal se denomine mainProcess
o Todos los datos deben ser leídos desde archivos de texto.
o Todos los resultados deben ser grabados en archivos de texto.

Inicie cada sección en una nueva hoja, incluya este documento como parte de su informe.

No entregar archivos adjuntos, todo debe de estar en un solo pdf.


Nombre del archivo: apellido1.apellido2.apellido3.apellido4.p1.st414.2020ii.pdf
 Coloque este texto al inicio de su informe.
 Coloque su programa fuente como un anexo, de tal forma que sea “leíble”, asegúrese que quien lee
su programa lo entienda, no solo lo pegue y espere que su lector lo interprete.

Todo debe de estar en el informe.


Los grupos de trabajo que redacte el informe final en latex tendrán 3 puntos adicionales sobre la nota de
la P1 (máximo 19). Demostrar enviando el link de los fuentes.
https://www.overleaf.com/
https://es.sharelatex.com/

Pase su trabajo por una herramienta de control de plagio, mínima coincidencia aceptable (20%)
http://plagiarisma.net/es/
https://www.plagscan.com/

También podría gustarte