Artificial Intelligence
or what I can say about the methods I used and applications I wrote.

I've chosen to study and to use A.I. because I like to program something more intelligent than people who studied plain computers and informatics. The methods and elements of A.I. are interesting and programming and learning them is fun (but sometimes also pain). Somehow I have enjoyed my study on Department of cybernetics and artificial intelligence (link).

 

Neural Networks

I like them very much, that's why I've chosen the application of neural networks as my master's thesis. I have also done couple other programs using artificial neural networks. The best thing about neural networks is that you can teach them on almost any kind of problem and they will do the job nicely.

 Demonstration of Kohonen neural network using OpenGL (click to enlarge)  Forward-feed neural network trained on the "double spiral" problem (click to enlarge) Image preprocessing application based on forward-feed neural networks (click to enlarge)

 

Evolutionary Algorithms

They are something like improvement of blind state-space searching based on the principles observed from nature (like crossover and mutation of subjects), so they are more effective. There is a lot of theory about how to make them work well and they can be (are) used widely (even in military technologies).

Tantrix puzzle solver (on the picture is interesting, but not valid solution of tantrix puzzle) Treasure hunter - application demonstrates how parameters affect evolutionary algorithms (click to enlarge)

 

Fuzzy logic

The use of fuzzy logic is a bit strange, also usage of fuzzy logic in any application is controversial as I think that other parts of A.I. are more suited for most of the problems than fuzzy logic. I have some experiences with fuzzy logic regulator setting but it was a painful experience ;-) But maybe I will find the magic of fuzzy logic someday...

 

Speech recognition

A great part of A.I. on which I will (hopefully) focus more in the near (or distant?) future. Many methods for words and continuous speech recognition with some advantages and disadvantages. I've done only Fast Fourier Transformation (but all by myself), which needed for every speech recognition method.


(click to enlarge)

 

Programming languages of A.I.

You may have probably heard about LISP or Prolog, which are the programming languages of A.I. Prolog is used for all the applications in which predicate logic can be (or must be) used because Prolog is all about predicate logic. The situation is different with LISP, which is a very smart object-oriented language (little bit similar to Java) with features that many modern programming languages lack. If you're about to write a application with symbolic rules, recursion and new rule deduction, then LISP is your friend.

 

Knowledge based systems

Even if you don't like MS Windows "Help and support" application (which should help users with computer trouble but mostly it doesn't), knowledge based systems are great when you need an expert which doesn't need to sleep and doesn't need a long time to remember the solution to a known problem. There are many knowledge based systems which do they job very well (in medicine, banking, etc.).


(click to enlarge)