"Cega, a Ciência a inútil gleba lavra.
Louca, a Fé vive o sonho do seu culto.
Um novo deus é só uma palavra.
Não procures nem creias: tudo é oculto."
(Fernando Pessoa)

Alessandro Presta's Home Page





Welcome to my home page.

My name is Alessandro and I study Mathematics at the University of Pisa.

I was born in Genoa, Italy on November 3, 1987.

My e-mail is alessandro.presta@gmail.com.











***

Here you can view some of my current and past projects:


Fast Genetic Algorithm

My C++ implementation of genetic algorithms, featuring many different operators and a parallel version of the algorithm. Very simple by design.
Includes an example application to the travelling salesman problem (TSP).


Graph theory algorithms

A proof-of-concept implementation of some graph theory algorithms in a generalized manner: various kinds of visit and search algorithms are obtained by specifying different parameters (sort of “building blocks”) to the GenericVisit and GenericSearch functions, which can be thought as two “meta-algorithms”.


Double representation of graphs

An example of combined usage of adjacency matrix and adjacency lists for the representation of directed graphs. It isn't just a mere juxtaposition of the two approaches, since it allows dynamic modification of the graph without breaking consistency and still assuring optimal cost for all operations: connecting/disconnecting two nodes costs O(1), verifying if an edge between two nodes is present costs O(1) as well, while listing the adjacent nodes of a selected node takes O(k) (where k is the actual number of adjacent nodes). It can be trivially extended to undirected graphs.


Clustering of text documents

The project for my “Algorithms and data structures” course consisted in an application of cluster analysis techniques to the problem of dividing a set of texts into subsets based on their topic. Key concepts are: vector space model, TF-IDF weight, cosine similarity, complete linkage clustering.


Data mining algorithms for MyBlogJournal.com

Design and development of algorithms such as automatic tagging, document similarity and information retrieval for the news aggregator MyBlogJournal.com.


Consulting on neural networks at Istituto San Raffaele

In 2008 I've done a consulting job at Department of Neuroscience, Istituto San Raffaele, which consisted in the application of neural networks as non-linear models for mental disorders.



***

In late 2008 I started to play guitar. I use a Danelectro Dano Pro, Roland Microcube amplifier and various software synthesizers, multitrack recorder and so on. Here are some my early recordings: myspace.com/alessandropresta



***

The following projects date back to my high-school years:


Neural Net Framework

One of my early creations, NNF is a library to build and train feed-forward artificial neural networks.

For a newer, object-oriented rewriting look here: neural.zip


2DPathfinder

Very optimized implementation of the A* algorithm to find the shortest path between two points in a map with obstacles.


Italian Olympiad in Informatics

In 2006 I competed in the Italian Olympiad in Informatics achieving a gold medal. The finals took place in Milan on March 11, 2006.


High-school thesis on neural networks (in Italian)

Deals with basic mathematical and philosophical aspects of neural networks.

Includes two example applications: handwritten character recognizing and dynamic control of the game “pong”.


Artificial intelligence for the 4-in-a-row game

I was originally asked to develop this algorithm for a commercial game by a software house that later abandoned the project.

Based on game theory strategies, it is quite competitive in the popular “4-in-a-row” game.

The huge combinatorial explosion found in this game is exploited using alpha-beta pruning and an heuristic evaluation function that computes scores incrementally.