The FGA System (Fine-Grained Semi-Automated Runtime Adaptation) allows developers to modify UML diagrams of a running java application and automatically propagate these changes to the running instance.
It is based on @Java, ReverseR and JavAdaptor.
It helps closing the gap between models and code, so we can say it is a mechanism for co-evolution.
In this paper we show how combining fuzzy sets and reinforcement learning a winning agent can be created for the popular Pac-man game. Key elements are the classification of the state into a few fuzzy classes that makes the problem manageable. Pac-man policy is defined in terms of fuzzy actions that are defuzzified to produce the actual Pac-man move. A few heuristics allow making the Pac-man strategy very similar to the Human one. Ghosts agents, on their side, are endowed also with fuzzy behavior inspired by original design strategy. Performance of this Pac-man is shown to be superior to those of other AI-based Pac-man described in the literature.
Developed in java for the Artificial Intelligence exam with Christian Quadri.
Development of an MMO game, from the idea to the realization.
Mousikè: Protect the harmony of two crossed realities.
The virtual world of Music has been living in peace for centuries, fed by human abilty to create melodies. But in the last century Man has strengthen the power of the Noise: technology, machines, cars… all this noise pollution fed the Noise and now he invaded the Music Kingdoms! He opened a portal with the noisy human world in every kingdom, from which he can spread his corruption and slowly conquer the Music World.
It’s up to you to restore the natural balance between Music and Noise!
Mousikè world is based on music theory, for example players are all singers and their classes are: basso, baritono, tenore, contralto, mezzo-soprano, soprano.
Mousikè is a cross-media game: it is played both on PC and on smartphone, but its innovative feature is that the two parts are complementary.
The PC part is a traditional MMORPG game, where the player is represented by its avatar, has a physical world to explore, objects to collect and major and minor quests. The major quest is to temporary close the portal with the real world in the virtual world, with the help of an agent (a smartphone player) on the other side.
The smartphone part is a game to be played in the streets of the cities. The main goal is to find the root of the portal and close it on this side of the world. This part is open to extensions, special events to be organized with musical events in cities (especially during the summer period).
A demo version was developed with the Unity3d Game Engine and Smart Fox Server.
Project for Operational Research II course. The assigned project required a solution obtained through column generation.
The p-centre problem, or minimax location-allocation problem in location theory terminology, is the following: given n demand points on the plane and a weight associated with each demand point, find p new facilities on the plane that minimize the maximum weighted Euclidean distance between each demand point and its closest new facility.
The soultion developed was split in 2 parts:
a C++ program which implemented the Dijkstra algorithm and generated random graphs formatted for CPLEX
a IMB ILO CPLEX model
The final report about the P-Centre problem was changed into a report about the new IMB ILO object oriented sintax for future use as a documented example on professor’s demand.
A T-Tetromino is the T shaped block, most known as a block in the tetris game. In literature is know that a surface must be multiple of 4 x 4 to be fully tiled with this block, but there is not a known formula to count all the possible different tilings.
I found a recursive formula by examining all the possible cases and associating them to a graph representation. We could not find a formal proof of correctness, but we can adfirm it is a good lower bound for the problem.
This is an example of a multithreaded java application, synchronizing with other equal peers via socket and with a server via RMI.
The project is a simulation of the musical balloons game: peers are N kids passing N-1 balloons in a circle while the music is playing; the server registers players, decides when the music starts and stops and detects which is the loser kid; the loser kid leaves the circle, the networks needs to set up again and the game continues until there is a final winner.
The full text(italian) and java code can be found here: MusicalBalloons. The developed version includes the first 2 optional parts, even if not requested.