Flying memes

Archive for the ‘Algoritmi’ Category

Alcune osservazioni sull’algoritmo di copertura di un segmento

Friday, July 31st, 2009

Sembra che oramai si sia instaurata una sorta di simbiosi tra questo blog e quello di Eineki; questo articolo infatti trae spunto dal suo ultimo golf programming contest e dai due algoritmi che ho analizzato come candidati alla soluzione.

Il problema da risolvere è abbastanza intuitivo; dato un set di segmenti identificati da coppie di interi [inizio, fine] bisogna fondere tra loro i segmenti che si sovrappongono.
(more…)

Face recognition con Ruby e OpenCV

Sunday, June 7th, 2009

Update – 18/06 : ieri sera ho tenuto una presentazione su questo tema al Ruby Social Club: ne approfitto quindi per aggiornare questo post con il link alle slide che ho utilizzato.

Negli ultimi mesi sono emerse le prime applicazioni che fanno uso di algoritmi di riconoscimento oggetti e, più specificatamente, volti. Cito, ad esempio, Picasa ed il filtro per visionare solo le facce in Google Images ma la lista di chi ha deciso di incorporare al suo interno questa funzionalità è decisamente più lunga.

Mi sono interessato subito al lato tecnico di questa nuova feature (grazie anche ad un ottimo speech ascoltato all’Erukuo 2009) imbattendomi in un particolare classificatore chiamato ‘cascade of boosted classifiers working with haar-like features’ che funziona nel seguente modo:

(more…)

L’interessante spunto del Golf Programming

Friday, May 1st, 2009

Stavo navigando tra i miei feed RSS quando ho trovato questo interessantissimo articolo, ovviamente non ho resistito all’idea di cercare di sviluppare una soluzione usando Ruby ed il minor numero di linee di codice possibile:

(more…)

Un nuovo tile engine per google map

Sunday, April 26th, 2009

Conoscevo Google Map e le sue fantastiche API ma solo di recente ho deciso di spulciare un pò più a fondo la sua documentazione e ho scoperto la notevole possibilità di modificare i tiles visualizzati da Google Map trasformando questo strumento da strettamente cartografico a ZUI (zoomable user interface).

Come funziona? Bisogna istanziare un nuovo oggetto della classe GTileLayer e specificarne all’interno una funzione che, ricevuti due parametri (un oggetto GPoint e un numero indicativo del livello di zoom) sappia ritornarne l’immagine appropriata.

Nel prossimo articolo andrò un pò più nel dettaglio, per il momento vi lascio a questa proof-of-concept che potrebbe trasformarsi, a breve, nella gallery ufficiale del sito.

Midpoint displacement algorithm

Sunday, March 22nd, 2009

Grazie all’appuntamento settimanale con i Ruby Quiz oggi sono venuto a conoscenza del Midpoint displacement algorithm, utilissimo per la generazione di una spezzata che simuli la silhouette di una catena montuosa.

Questo algoritmo basa la sua operatività essenzialmente su di un array contenente le altezze dei punti che compongono la spezzata. Tale array all’inizio presenterà solamente due valori (capo e coda dell’intero profilo che vogliamo creare), entrambi settati a 0.

(more…)

Q-learning con processing.org

Sunday, January 18th, 2009

Il reinforcement learning (o apprendimento con rinforzo) è una approcio che appartiene alla categoria dei sistemi intelligenti e che si applica a tutte quelle casistiche nelle quali un agente deve esplorare ed interagire con l’ambiente circostante.

(more…)

Uno stormo con processing.org

Thursday, January 1st, 2009

Esiste molta letteratura sul problema di simulazione di uno stormo (detto anche Flocking), queste sono le tre regole principali a cui ogni partecipante allo stormo deve obbedire:

(more…)

Ruby-dlx, le otto regine e le colonne secondarie

Tuesday, December 16th, 2008

Eravamo rimasti al seguente quesito: “Come implementiamo l’insieme di costrizioni che abbiamo evinto in modo da risolvere il problema delle 8 regine con i Dancing Links ?”

(more…)

Le otto regine e ruby-dlx

Monday, December 8th, 2008

Il problema delle otto regine rientra a far parte di quell’insieme di sfide che da molti anni interessano ed incuriosiscono matematici ed appassionati (questo problema è stato proposto nel 1848).

(more…)

Risolvere i Sudoku in Ruby con i Dancing Links: ruby-dlx

Tuesday, December 2nd, 2008

Ho appena effettuato il commit della prima release funzionante di ruby-dlx. Ruby dlx è una piccola libreria che implementa in Ruby l’algoritmo dei Dancing Links descritto nel post di settimana scorsa.

(more…)