sábado, 13 de abril de 2013

MDP (II)

Bon dia de nou!

La semana pasada vos vaig presentar els MDP's i el falcó milenari, i vos vaig mostrar com podriem aplicar aquesta representació per a resoldre problemes de trajectoria (El domini de tests Navigation). Estos problemes son molt comuns per a testar algoritmes, i solen variar amb el nombre de obstacles i el tamany. Recordeu les condicions que haviem dit?. Per si acàs les repetisc ací:
  1. Cada moviment costa 1 punt de combustible.
  2. Si caiguem en un forat negre, la nau es trenca. Igual si caiguem en un estel.
  3. Si caiguem en la força de atracció de un estel, els camps en roig, tenim un 50% de probabilitats de ficar orbitant la estrela (anar al seguent camp seguint l'orbita) o del 90% de ser atrets al forat negre.
No ho vaig especificar, pero clar, si caiguem en un forat negre s'acaba el viatge. Per tant, evitem els forats negres. Al mateix temps podem vore que seguir una orbita pot ser satisfactori, perque si ens menegem en la direcció de l'orbit, arrivarem sense problemes.

El resultat pot ser observat en la ilustració seguent:
Podem vore que realment la trajectoria optima calculada per a la nau evita els forats negres i la seua orbita, pero s'aprofita de l'orbita dels estels, per a poder arrivar al estat final. Hem de recordar que la solucio a un d'aquests MDP's es una política optima, i no sols una trajectoria o seqüencia de accions. Es a dir, que cada estat té una acció corresponent, que en aquest cas sempre intenta colocar la nau en la ruta óptima de nou.

L'algoritme que he utilitzat per a resoldre aquest problema ha sigut el LRTDP (Bonnet and Geffner, 2003). Queda lluny de l'objectiu d'aquest blog explicar l'algoritme, pero si que voldria donar alguns resultats i comentar algunes cosetes. Per exemple l'algoritme es molt ràpid per a resoldre problemes, ja que en realitat els estats que no son interesants, no els visita. Per tant l'algoritme resol el problema en tan sols 0,4 segons aproximadament:



En la grafica podem vore la evolució del valor V desde la situació inicial fins a la convergència (no cambia més el valor). La grafica no es molt dificil de entendre, pero si no explique uns conceptes avans, pot pareixes confusa. Avans de iniciar el problema, hem de definir quina seria la recompensa per a cada estat. Per exemple, l'estat meta te una recompensa de 0 i els altres, de -1 (per aixo la pendent negativa).
El valor V(estat-inicial) representa qué guanyaria la nau (el agent inteligent) si estiguera al estat inicial.A cada itercio, esta més clar que aquest estat no es bo per a permaneixer, per aixo el valor va descendent fins que es queda fixe.

En fi, espere que en aquestes entrades tot el mon haja pogut vore de manera més clara com podem conseguir que les maquines realitzen accions inteligents i que facen coses que van més enllà del estrictament programat.

Fins prompte!

lunes, 8 de abril de 2013

MDP's i falcons milenaris


El Falcó Milenari

Esta es la primera entrada seria que vullc publicar, per tant volia fer honor al nom del blog, posant alguna cosa d'una de les "naus espacials" més conegudes i carismàtiques. Estem parlant del falcó milenari, una de les principals protagonistes de Star Wars. Tots (o quase tots) hem vist com aquesta nau fugia dels grans creuers de l'imperi Galàctic botant a l'hiperespai, que teóricament seria la velocitat de la llum. No vaig a entrar en el tema fisic de la posibilitat de viatjar a la velocitat de la llum, ja que aci ens centrarem més bé en la Inteligencia Artificial, i concretament en "L'ordinador de abordo".

En la primera part de la trilogia de Star Wars, ens presenten a Han Solo en la Cantina de Mos Eisley (la cançó es famosa), i vegem com Luke Skywalker i el seu mentor Obi wan Kenobi estan procurant un transport urgent al estar perseguits per els soldats imperials. Al cap d'uns minuts, pujen a la nau i intenten fugir del planeta, amb la mala sort que son descoberts per destructors imperials (personalment la meua nau favorita de Star Wars), i tenen que apresarse a fugir al hiperespai, on teóricament ningú els podria alcançar.

Fugint dels destructors imperials
 En un dels moments, Luke li demana apresarse a Han Solo, pero este li respon que no pot fer res ja que la computadora esta calculant la millor trajectoria per a pasar a la velocitat de la llum, i no pegarsela contra algun planeta. Com en la pelicula no se'ns explica com funciona aquesta tecnologia, m'he permitit de sugerir una interpretació, que es la que vaig a explicar utilitzant Processos de decissió Markovians (MDPs).

En primer lloc, vaig a intentar definir un MDP:
Un MDP es un model de problemes de planejament, amb accions probabilistiques i observacions totals, i on la probabilitat del proxim estat, no depén de la historia de les probabilitats anteriors, sino de l'estat actual només. Un MDP com a sistema ha de complir amb les seguents característiques:
  1. Accions no-deterministiques (efectes probabilistics): Com hem indicat, les accions son probabilistiques. Es una millor manera de aproximarnos de la vida real.
  2. Observació total: Podem observar tot el sistema en temps de planejament.
  3. Metes exteses: Les metes son un conjunt de estats que maximitzen una funció de utilitat definida.
La solució a un MDP, és una política óptima, que maximitze la recompensa esperada. No vos asusteu i anem per parts. Quan dic politica, em referisc a una funció que transforma els estats en accions (π:S->A). O siga, si estic en l'estat S1, quina es la millor acció que puc fer? Això es al que em referisc com a política.

Per a entendre millor el problema, imagineu que el falco milenari tinga un mapa de les galaxies, amb els meteors, planetes, estels i demés. Un mapa que li permetisca poder vore on estan ocorrent "els camps de asteroids" i demes problemes que podrien afectar la trajectoria de la nau. El mapa li permet al sistema de observar tot l'espai, sense que ninguna part no siga visible (es una suposicició). Ara imagineu que com la nau no es perfecta (es un poc velleta), i a més en l'espai hi ha radiació, pols, i demés xatarra espacial, cada moviment pot ser fatal, sense contar la força atractiva de alguns cosos celestials dels quals hi hauria que mantindre's allunyat. Encara que el sistema li diguera a la nau, de anar endavant, aquesta pot tindre algun problema i trencarse intentant anar endavant, o desviarse massa cap a un forat negre. Aleshores colocarem una probabilitat a cada moviment de realitzarse correctament i una probabilitat menuda de realitzarse incorrectament i acabar o trencada, o al mateix lloc, o en un altre lloc. I per últim, la funcio de utilitat quina seria? Fàcil, si volem anar al sistema Alderaan, el estar a Alderaan!.

Fins ací tot clar? Imagineu-vos el mapa simplificat de la galaxia que vos presente a continuació:
Model en miniatura de una galaxia.
Sé que es un poc roinet com a mapa galactic, pero estic utilitzant encara el Paint. Per als proposits que vos descrit deuria de servir. Imagineu-vos que el Falcó milenari esta al canto dret baix de tot (la raia blava), i els sistema de Alderaan, el destí está al cantó superior esquerre (la estrela verda). Els punts negres son forats negres, i els punts grocs son estels. Les raies rojes representen l'atracció gravitatória de cada cos celest. Per a simplificar el model, no he colocat ningun asteroide solt ni res que puga mudar de trajectoria mentre es calcula el plan óptim de navegació.

Doncs be, el sistema de navigació del Falco milenari deu de implementar uns algoritmes que resolguen MDP's, de manera ràpida i eficient. Com la entrada s'esta fent llarga, vos propose com a repte que intenteu resoldre quina seria la trajectoria optima que deuria fer la nau, tenint en compte les seguents característiques:
  1. Cada moviment costa 1 punt de combustible.
  2. Si caiguem en un forat negre, la nau es trenca. Igual si caiguem en un estel.
  3. Si caiguem en la força de atracció de un estel, els camps en roig, tenim un 50% de probabilitats de ficar orbitant la estrela (anar al seguent camp seguint l'orbita) o del 90% de ser atrets al forat negre.
Evidentment, per a una persona seria fàcil resoldreho amb un esquema tan xicotet, i limitat. Imagineuvos ara tindre que calcular una trajectoria del tamany de una galaxia!
Al pròxim post, la resposta i les aclaracions. Ens veiem als comentaris!

Frikaes milenaries

Bon dia a tots!

Este es el meu nou blog. El blog anterior ja es pot considerar mig descartat, ja que mai tenia nous temes per a escriure. En aquest blog vaig a parlar de frikaes i ciencia, o millor dit, de la tecnologia de Inteligencia Artificial i la cultura popular. Intentare crear discusions per a que poder compartir informacio en tots els lectors.

El meu blog intentaré escriure'l en català i portugués, pero si algu em demana una traducció, sense problemes podre traduir el blog al idioma demanat, dins dels meus limits (o dels de Google Translator...). Tinc uns prou temes que vullc investigar (molts relacionats en les pelicules classiques o series de ciència ficcó), pero si em proposeu temes nous, intentaré incluirlos també.

Un abraç a tots i que la força en acompanye!