Social Network Analysis
I implemented the Approximate Neighbourhood Function (ANF) algorithm for computing the diameter of graphs.
My implementation is an exact computation of the diameter and thus no need for the parellelized approximation scheme proposed in the paper.
Report: Social_Network_Analysis.pdf Code: sna.zip
Inspired by Adam Coates, I devised a new algorithm that achieved the highest acccuracy 82.01% on the CIFAR-10 dataset as of 26, Sep, 2011.
Interestingly, my program is able to recognize personal objects that it has never seen before such as my sister's puppet doll dog and boats in Monet's celebrated oil canvas "Red Boats at Argenteuil"
Report: Computer_vision.pdf Code: eye
Network Community Detection and Hidden Markov Models
Collaborative Filtering and Yahoo! KDD Cup 2011
Using only a mini sub-dataset of 10,000 people and 10,000 songs (the real dataset boasts over 300M ratings), I was able to reach 64th place in the 2011 KDD Cup.
Another feature of this code is a C++ class that helps you to initialize "BIG" objects by simply allocating the initializing work to a worker thread
Report: Collaborative_Filtering.pdf Code: MF.zip Data: mini_data.zip Saved KDD Cup ranking page
apiserv, a high performance web server dedicated to web apps written in C
I wrote this as a proof of concept towards the goal of handling 1 billion API requests per day at Vpon(hence the name apiserv). Benchmarking was done against Apache httpd. To make the comparison more drastic, httpd was requested for a simpler static web page /index.html, whereas apiserv was queried against dynamic content simple.c?ab=7.
The results are 2612.83 requests/sec for httpd, and 45668.94 requests/sec for the prototype. I think this is adequate proof that in terms of performance the event-driven design is much superior than the traditional threaded design(but perhaps at the expense of code structure clarity QQ).
I wrote a mail sending program that enables you to fake your sender identity, attach attachments, and send emails automatically.
An accompanying Windows Socket class is also included in the below code.
A simple assignment using HTML5 canvas element. lilypage
fiago - an Othello AI
Run (load "Othello.lisp"), (othello #'human (fiago 3)) in LISP. This command calls the fiago AI at level 3. Possible levels are 1 to 6(hardest).
This code is based on Peter Norvig's program, with features "zero-window search", "multiple killer-moves", and "record of optimal moves when able to search to the end of the game" added to it.
Note that you have to initialize the edge table at the first time of usage using the Norvig's compile-file technique.
Also, to run these LISP programs, you may need my set-up file fumin_lisp_startup.lisp
fliza - a chatting bot
Run (load "Fliza.lisp"), (Fliza). To exit, just say byebye to Fliza.
Features: constrained pattern recognition, memorization of previous topics, and simple grammatical correction