Você está na página 1de 7

1

Prctica0
Abordandolacreacindeunsistemainteligente
(ProfesorJoseJesusGarcaRueda)

1. Objetivos.

Objetivosdidcticos:
o Empezar a pensar en trminos de cmo abordar problemas que
involucreninteligenciaartificial.
o Provocar la necesidad de profundizar en nuevas tcnicas, ms all de las
conocidas.
Objetivosespecficos:
o Analizar mediante tcnicas de caja negra una aplicacin inteligente,
tratandodeaveriguarcmofunciona.
o Disear una aplicacin similar, valorando el empleo de distintas
estrategias.
Entregables:
o Informe(entre2y4pginas)querecoja:
Elanlisisdelaaplicacindepartida.
El proceso de diseo y de la nueva aplicacin y solucin
finalmenteadoptada.
Lasmejorasfinales.
Estaprcticahabrderealizarseporparejas.

2. AnlisisdeAkinator.

Vamosatratardeaveriguar,osuponer,cmofuncionaAkinator,unodelosadivinosms
popularesdelaRed.Podisencontrarloaqu:
http://es.akinator.com/
Jugadunratoconl,pensadentresocuatropersonajes,ycuandooshayisfamiliarizado
con la dinmica de la aplicacin, proponed vuestras propias respuestas a las siguientes
preguntas:
Porqulasprimeraspreguntasnosonsiemprelasmismas?

Apartirdequpreguntaparecequeempiezaadirigirsemsalobjetivo?
Son20preguntasmuchasopocasparadistinguiraunpersonaje?
Cuandonoloadivina,proponeunpersonajemuydistintoalbuscado?
Porquestinteresado,cuandofalla,ensaberqupersonajeera,peronopide
nuevaspreguntasparadistinguirlo?
Recordad que el nico medio del que disponis para responder a estas preguntas es
seguir jugando con la herramienta, pero de manera dirigida: vuestras interacciones con
ellanohandeserfortuitassinoorientadasaaveriguarlainformacinquenecesitispara
crearvuestropropioadivino.

3. Abordandoelproblemadediseo.

Enprimerlugar,trataremosdedefinirnuestroproblemadeunaformasimplificada,afin
depoderrazonarsobrelconmayorfacilidad:
Supongamos un nmero limitado y conocido, pero muy grande, de personajes, definidos
porunconjuntotambinlimitado,peromayorde20,decaractersticas(llevagafas?usa
sombrero?). Nuestro problema consiste en disear una arquitectura lgica capaz de
localizar a un personaje de nuestra coleccin a travs de 20 preguntas que puedan ser
respondidas como S o NO (adicionalmente, trataremos de contemplar tambin casos
dudosos,puedeques/puedequeno,opreguntasquenoapliquen).
Actividad: Plantead el algoritmo bsico de funcionamiento de la aplicacin (desde un
punto de vista funcional, no estructural, esto es, lo que es capaz de hacer, no cmo es
capazdehacerlo).Estoconsiste,bsicamente,endescribirsistematizadamenteelproceso
deinteraccindelusuarioconlaaplicacin.
Siosfijis,elprocesodediseodeunaherramientaquesecomportedelaformadescrita
anteriormenteconsistir,fundamentalmente,enresponderlassiguientespreguntas:
Cmoelijoqupreguntahaceracontinuacin?
Cmorelacionoelconjuntodepreguntasconeldepersonajes?
Cmo voy limitando el conjunto de personajes posibles, segn avanzan las
preguntas?

4. Primerintento:estrategiasdebsqueda.

Las primeras tcnicas que intentaremos aplicar para resolver nuestro problema son las
vistasenelprimertemadelaasignatura,porserlasmejorconocidaspornosotroshasta
lafecha:lastcnicasdebsqueda.

Actividad 1: Definicin del problema en trminos de bsqueda de soluciones en un


espacio de estados. El primer paso para aplicar alguna de estas estrategias, tal y como
vimos en teora, es tener descrito el problema en trminos de estados y reglas de
transicin.Paraellotratadderesponderalassiguientespreguntas:
Culespodransernuestrosestados?
Cmodefiniramoselestadoinicial?
Yelestadofinal?
Mediantequreglascambiaramosdeestado?
Actividad2:Establecimientodeunaestrategia.Unavezdescritoelproblema,hemosde
seleccionarunaestrategiadebsquedaqueaprioriparezcaadecuada,dadalanaturaleza
de nuestro problema, en trminos de completitud, complejidad temporal , complejidad
espacial y calidad (es o no optima?). Podramos quiz considerar nuestro problema
comosisetratasedeunjuego,yemplearMinimax?Sermsconvenientetratarlocomo
unproblemadesatisfaccinderestricciones?Evaluadydiscutidlasdistintasopciones.
Actividad3:Planteamientodeunalgoritmodebsqueda.Unavezquetengisunprimer
modelo de solucin, tratad de detallarlo en un algoritmo de bsqueda concreto, que
exploreyrecorraelrboldeestadosdelproblemahastaencontrarunasolucin.
Actividad 4: Anticipacin de problemas. Parece este camino el ptimo de cara a
modelarnuestraaplicacin?Qudificultadesconceptualesnossurgen,yquproblemas
prcticosnospuedensurgir?Seprevunasolucinrazonableparaellos?

5. Segundointento:rbolesdedecisin.

NOTA: El tema de los rboles de decisin se tratar con detalle ms adelante en la


asignatura.Noesobjetivodeestaprcticaprofundizarenellos.
Un rbol de decisin, definido de manera muy sencilla y por lo tanto incompleta, es una
estructuraquepermiteclasificaruneventoinicialatravsdelacomprobacinsecuencial
de una serie de condiciones sobre l: en cada nodo del rbol se plantea una cuestin
sobreeleventodepartida,ydependiendodelarespuestaseevolucionaporunaramau
otra del rbol. Aqu tenis un ejemplo sencillo extrado de
http://ants.dif.um.es/staff/juanbot/ml/files/20022003/tema3.pdf:

Como veis, un rbol de decisin es bsicamente una herramienta clasificadora. As las


cosas,noresultadisparatadoimaginarquepodramosusarunadetalesestructuraspara
crearnuestroadivinosinmsque,porejemplo,situarlaspreguntasenlasramasdelrbol
ylospersonajesenlashojas.
Actividad 1: Respuesta a las preguntas del apartado 3. Para que esta solucin sea
aplicable en nuestro caso, habremos de analizar cmo responde a las cuestiones
fundamentalesqueelproblemaplantea:
Cmoelijoqupreguntahaceracontinuacin?
Cmorelacionoelconjuntodepreguntasconeldepersonajes?
Cmovoylimitandoelconjuntodepersonajesposibles?
Actividad 2: Planteamiento de un algoritmo. Una vez que tengamos definida la
estructuradenuestrorbol,deberemosconcebirelalgoritmodefuncionamientointerno
de la aplicacin de forma que emplee adecuadamente la informacin recogida en dicho
rbol para encontrar el personaje buscado. Podis proponer un algoritmo de esta
ndole?
Actividad3:Problemasdeestasolucin.Denuevo,estasolucin,quedeentradaparece
adaptarse muy bien a nuestro problema, plantea a poco que nos fijemos algunas
dificultades que arrojan ciertas sombras sobre su idoneidad. Qu problemas os parece
que esta estrategia puede plantear? Resulta esta una solucin fcilmente escalable si
aumenta el nmero de personajes? Y si aumenta el nmero de preguntas? Es una
estrategia flexible, en cuanto a que me permite realizar las preguntas en distintos
rdenes?

6. Tercerintento:Tablacruzada.

Si nos damos cuenta, hay una asociacin bsica en el problema que cualquier solucin
adoptada debera abordar: la asociacin entre preguntas y personajes. Se puede pensar
envariasformasderesolveresaasociacin,siendounadelasmsdirectaslasiguiente:
Paracadapregunta,hedesaberqupersonajeslarespondenafirmativamente.
Estainformacinpodrarepresentarlamedianteunatablacomolasiguiente:
Personaje1 Personaje2 Personaje3 Personaje
m
Pregunta1 x x
Pregunta2 x x x
. x x x x
Preguntan x

En esta tabla, una casilla marcada con una x indica que un personaje respondera
afirmativamente a una pregunta: por ejemplo, la interseccin entre la pregunta Es
mujer?yelpersonajeIsabelAllendeestaramarcadaconunax.
Si nos fijamos, una tabla como sta no slo nos permite resolver la asociacin anterior
(Para cada pregunta, he de saber qu personajes la responden afirmativamente), sino
quetambinnosresuelvelaasociacincomplementaria,locualnosvaaresultarmuytil,
apocoquelopensemos: paracadapersonaje,podemosfcilmentesaber qupreguntas
responderaafirmativamente.
Actividad 1: Respuesta a las preguntas del apartado 3. De nuevo, la primera cuestin a
plantearnos es si esta estructura nos permitir encontrar una respuesta sencilla para las
cuestionesquedefinenlaesenciadenuestroproblema.Qurespuestasnosofreceesta
solucinalaspreguntasdeantes?
Cmoelijoqupreguntahaceracontinuacin?
Cmorelacionoelconjuntodepreguntasconeldepersonajes?
Cmovoylimitandoelconjuntodepersonajesposibles?
Actividad 2: Planteamiento de un algoritmo. Los pasos se repiten: una vez evaluada, de
manera inicial, la adecuacin de esta solucin a nuestro problema, la siguiente labor es
concebirunalgoritmoque,empleandolatabladedobleentradadescrita,consigaadivinar
el personaje pensado. Como siempre tambin, es muy posible que necesitis almacenar
informacinadicional.
Actividad 3: Problemas. De nuevo, toca completar el anlisis tratando de descubrir
posiblespuntosdbilesaestasolucin.Porejemplo,puedeserunproblema lalentitud

cuando tengamos varios centenares de miles de personajes y varios centenares de


preguntas?

7. Propuestafinaldesolucin.

Tras analizar las tres posibles estrategias a seguir, llegar el momento de pararse un
momentoyelegirunaovarias.
Paraempezar,seosocurrealgunaotraestrategiaque,unavezconocidoenprofundidad
elproblema,podraresultaradecuadayquenosehayamencionadoaqu?
Si no es as, habr que seleccionar entre las ya analizadas, y seguir trabajando con ella
llegandoamayoresnivelesdedetalle.Aunquecomoacabamosdemencionarexisteotra
opcin: emplear varias. Por ejemplo, se puede pensar en utilizar una estrategia para las
primeraspreguntas(que,porejemplo,permitahacerunaseleccinentrevariosconjuntos
disjuntosdepersonajes),yotradiferenteparalasltimas(que,siguiendoconelejemplo
anterior,vayaorientadaabuscardentrodelconjuntopreseleccionado).
Pensad un poco sobre el asunto, e incluid en el entregable de la prctica una breve
descripcindevuestrasolucinfinal.

8. Otrosaspectosaincluir.

Hayunpardeelementosquesernmuydeseablesennuestroadivino,yalosquehabr
queprestarunadebidaatencinsiesquenosehahechoya.
El primero de estos aspectos es el aprendizaje: va a ser capaz nuestro sistema de
aprendersobrelamarcha,refinandosuspreguntas,personajes,etc.?
Actividad 1: Preguntas iniciales sobre el aprendizaje. Meditad un poco sobre las
siguientescuestiones:
Cuandonuestroadivinofalle,quinformacindeberapedirlealusuarioycmo
deberaemplearla?
Cundo debera nuestro adivino aadir un nuevo personaje? Es necesario que
pidapreguntasparacaracterizardeentradaadichonuevopersonaje?
Cundodeberaelsistemapedirnuevaspreguntas?
Actividad 2: Algoritmo de aprendizaje. A la luz de lo respondido a las anteriores
cuestiones, elaborad un pequeo algoritmo de aprendizaje para el adivino, enunciando
cadaunodesuspasos.

Otro aspecto a considerar es la escalabilidad: lo que hace popular a Akinator no es su


capacidad para adivinar personajes con tan slo veinte preguntas (eso, como ya hemos
ido viendo, no ha de resultar tan espectacular), sino su habilidad para adivinar casi
cualquier personaje, lo cual traducido a trminos ms concretos significa que puede
discriminar,probablemente,entrevarioscientosdemilesdeellos.
Vamosatratardeincluiresacapacidadennuestroadivinocasero.
Actividad 3: Preguntas iniciales sobre escalabilidad. Como en el caso anterior, vamos a
tratar de identificar los aspectos ms importantes que definen este nuevo problema,
comoantesalahaciasusolucin.
En teora, y en el mejor de los casos, qu poder de discriminacin tienen n
preguntas?
Tiene sentido que haya un nmero de preguntas mayor que veinte asociadas a
un personaje determinado, a fin de mejorar nuestra capacidad para distinguirlo
deotroparecido?
Si suponemos entonces que hacer crecer indefinidamente el nmero de
preguntas no es el mejor camino para aumentar, a partir de cierto punto, las
capacidadesdenuestroadivino,quinformacinadicionalpodramosemplear?
CuleslaquepareceutilizarAkinator?
Actividad 4: Modificaciones para una mayor escalabilidad. Modifica la estrategia de
adivinacin diseada hasta ahora para incluir el tratamiento de esta nueva informacin,
incluyendocmohadeemplearseycundoduranteelprocesodeadivinacin.

9. Paralosquenotenganbastantetodava

Os atrevis o implementar un pequeo software basado en el diseo realizado hasta el


momento?Estoes,osatrevisaprogramarvuestroadivino?
Porsupuesto,podisemplearellenguajedeprogramacinquedeseis

Você também pode gostar