Intelligenza Artificiale: Markov Decision Process

In Intelligenza artificiale, in alcune situazioni, hai bisogno di una semplice sequenza di azioni per raggiungere in determinato obiettivo, partendo da uno stato noto; in tutti quegli ambienti dove invece le azioni non sono deterministiche (non deterministiche o stocastiche), questo non è più sufficiente: c’è bisogno di una policy, ovvero di una politica che ci dice qual’è l’azione giusta da fare in ogni stato.

Le Markov Decision Process sono una struttura matematica che ci aiuta a costruire queste policy in ambienti stocastici dove si conoscono le probabilità che si verifichino determinati risultati.

In questo post, io vi darò una brevissima introduzione e poi vi mostrerò le parti essenziali della mia implementazione, in python, dei più importanti algoritmi che vi possono aiutare per trovare le policy in ambienti stocastici. Potete trovare una più dettagliata descrizione delle Markov Decision Process nelle mie slide che ho preparato per un seminario nella mia università.

Continua a leggere

MExpr

Finalmente, ho rilasciato la mia prima versione della libreria MExpr!

Una libreria C++ che analizza delle espressioni matematiche, traducendole da stringhe a strutture facilmente manipolabili. La libreria è stata realizzata utilizzando bison e flex. La valutazione viene fatta attraverso un Abstract Syntax Tree, navigandolo ricorsivamente. Se si necessita di valutare più volte la stessa espressione, ad esempio per disegnare una funzione cambiando solamente il valore di una variabile, Si può anche compilare l’espressione in bytecode; quest’ultimo utilizza una pila per valutare l’espressione, risultando molto performante. La libreria supporta le variabili e funzioni parametriche con un qualunque numero di parametri. Si possono definire funzioni con stesso nome ma con numero diverso di parametri, lasciando al parser il compito di gestire l’overloading delle funzioni. Inoltre supporta le moltiplicazioni implicite, permettendo di scrivere espressioni in maniera naturale come: “-3xy^2″. Mette anche a disposizione un set di funzioni standard prese dalla libreria math.h.

Guarda la pagina ufficiale