A.I Artificial Intelligence Website

A.I Projects


_______________________________________________

Light Bulb Inner Workings (fsm)

A Simple Finite State Machine to illustrate the different states of a light bulb
fsm1.zip

Elevator Inner Workings (fsm)

Very simplified fsm to illustrate the inner workings of an elevator
fsm2.zip

A Basic Perceptron Neural Network Example

This is a very simple code to illustrate the inner working of the perceptron neural network.
SimpleNet.zip

A Very Basic Text To Speech Application

This is a very basic Text To Speech Application that uses a list of prerecorded phonemes to reconstruct a sentence verbally. Notice that these phonemes were recorded in French, so the program can only pronounce sentences in French only (mostly).
TextToSpeech.zip

Back Propagation Neural Net

A neural network is, in essence, an attempt to simulate the brain. Neural network theory revolves around the idea that certain key properties of biological neurons can be extracted and applied to simulations, thus creating a simulated (and very much simplified) brain. The first important thing to understand is that the components of an artificial neural network are an attempt to recreate the computing potential of the brain. The second important thing to understand, however, is that no one has ever claimed to simulate anything as complex as an actual brain. Whereas the human brain is estimated to have something on the order of ten to a hundred billion neurons, a typical artificial neural network (ANN) is not likely to have more than 1,000 artificial neurons.
Backpropagation Network.zip

Breadth First Search

This code is meant to be a simple introductory code to the 'Breadth First Search' algorithm The 'Breadth Search' and 'Depth First Search' are both very popular and among the simplest algorithm that can be used in Artificial Intelligence for conducting a search inside a graph or a tree
Breadth First Search.zip

Depth First Search

This code is meant to be a simple introductory code to the 'Depth First Search' algorithm The 'Breadth Search' and 'Depth First Search' are both very popular and among the simplest algorithm that can be used in Artificial Intelligence for conducting a search inside a graph or a tree
Depth First Search.zip

Advanced Tictactoe

This is a complete Tictactoe game, it include many functionalities, you can play games against another human, you can play against the computer, you can also even let the computer play against itself. The A.I is very good, actually it is unbeatable, the most you can do is to draw the games. Also, the game include statistics (number of win, draw an lost games) for the current match between players. The A.I for this tictactoe game is an implementation of the MiniMax Algorithm, the algorithm was implemented by using three functions, MiniMax(...), MinMove(...) and MaxMove(...), as you probably may have guest it, the main function in this algorithm is MiniMax(...), it returns the best move for the current computer player. To be capable of choosing the best move, the program takes time to generate all the possible outcomes for the current board position and at the same time, it decide which one is the best.
TicTacToe.zip
TicTacToe.exe

Levenshtein Distance

The "Levenshtein distance" is a measure of the similarity between two strings, this algorithm is also referred to as "edit distance". The “Levenshtein distance” was named after the Russian scientist "Vladimir Levenshtein", who has discovered it back in 1965. The smaller the distance between two strings, the closer are these strings syntactically. The "Levenshtein distance" is computed by calculating the minimum number of operations that has to be made to transform one string to another one, usually these operations are: replace, insert or delete a character example: we can change the word: "mathematics" to "mathematician" by changing one character and by inserting two more characters at the end.(we can replace "s" by "i" and also insert "a" and "n" after that). The total number of operations that was needed in this case to change "mathematics" to "mathematician" was 3 operations and since it is also the smallest number of operation that can be use to transform one of this strings to the other one, that value is also a measure of the "Levenshtein distance" between these two strings. There has been many application of the "Levenshtein distance", here is a few of them: Spell Checking, Speech Recognition, Pattern Recognition etc.
Levensh Distance.zip
Levensh Distance.exe

Sentence Matching

when applied to strings, the "Levenshtein distance" is usually used to measure the distances between words but we could also use it to measure the distance between sentences, the following code is a simple implementation of an algorithm that tries to measure the distances between two sentences by using the "Levenshtein distance".
matcher.zip
matcher.exe

Fuzzy String Matching

The fuzzy string matching concept provides a powerful way for comparing strings. This code provides a simple implementation of the fuzzy string matching technique. The function "fuzzymatch" included in this program perform a fuzzy comparison (fault tolerant comparison) of two strings, the returned value is a percentage that tells how closed are the strings that have been compared. Fuzzy strings comparison can be useful in many applications. One of them is a string matching algorithm for a Chatbot. Also, the "fuzzymatch" algorithm implemented in this code is very quick and precise as well.
Fuzzy String Matching.zip
Fuzzy String Matching.exe

Perceptron Neural Net

This program features a complete Perceptron Neural Net Application. The perceptron is a program that learns concepts, i.e. it can learn to respond with True (1) or False (0) for inputs we present to it, by repeatedly "studying" examples presented to it. The Perceptron is a single layer neural network whose weights and biases could be trained to produce a correct target vector when presented with the corresponding input vector. The training technique used is called the perceptron learning rule. The perceptron generated great interest due to its ability to generalize from its training vectors and work with randomly distributed connections. Perceptron are especially suited for simple problems in pattern classification.
Perceptron Neural Net.zip
Perceptron Neural Net.exe

Chatterbot Eliza v1.0

This program is an Eliza like chatterbot, bots like Eliza are the results of researches in Artificial Intelligence (more specifically: in NLP and NLU) NLP: Natural Language Processing, NLU: Natural Language Understanding The first chatterbot was published in 1966 by Joseph Weizenbaum a professor of MIT. (http://i5.nyu.edu/~mm64/x52.9265/january1966.html) And also, most of the chatterbots that have been written these days are largely based on the original chatterbot Eliza that was written by Joseph Weizenbaum which means that they use some appropriate keywords to select the responses to generatewhen they get new inputs from the users. More generally, the technique that are in use in a "chatterbot database" or "script file" to represent the chatterbot knowledge is known as "Case Base Reasoning" or CBR. A very good example of an Eliza like chatterbot would be Alice, these program has won the Loebner prize for most human chatterbot three times (www.alicebot.org). The goal of NLP and NLU is to create programs that are capable of understanding natural languages and also capable of processing it to get input from the user by "voice recognition" or to produce output by "text to speech". During the last decades there has been a lot of progress in the domains of "Voice Recognition" and "Text to Speech», however the goal of NLU that is to make software that are capable of showing a good level of understanding of "natural languages" in general seems quiet far to many A.I experts. The general view about this subject is that it would take at list many decades before any computer can begin to really understand "natural language" just as the humans do.
Chatterbot Eliza 1.0.zip
Chatterbot Eliza 1.0.exe

Chatterbot Eliza v1.4

These program is an Eliza like chatterbot, bots like Eliza are the results of researches in Artificial Intelligence (more specifically: in NLP and NLU) NLP: Natural Language Processing, NLU: Natural Language Understanding The first chatterbot was published in 1966 by Joseph Weizenbaum a professor of MIT. (http://i5.nyu.edu/~mm64/x52.9265/january1966.html) And also, most of the chatterbots that have been written these days are largely based on the original chatterbot Eliza that was written by Joseph Weizenbaum which means that they use some appropriate keywords to select the responses to generate when they get new inputs from the users. More generally, the technique that are in use in a "chatterbot database" or "script file" to represent the chatterbot knowledge is known as "Case Base Reasoning" or CBR. A very good example of an Eliza like chatterbot would be "Alice», this program has won the Loebner prize for most human chatterbot three times (www.alicebot.org). The goal of NLP and NLU is to create programs that are capable of understanding natural languages and also capable of processing it to get input from the user by "voice recognition" or to produce output by "text to speech". During the last decades there has been a lot of progress in the domains of "Voice Recognition" and "Text to Speech”, however the goal of NLU that is to make software that are capable of showing a good level of understanding of "natural languages" in general seems quiet far to many A.I experts. The general view about this subject is that it would take at list many decades before any computer can begin to really understand "natural language" just as the humans do. This code is Copyrighted and has limited warranty.
Chatterbot Eliza 1.4.zip
Chatterbot Eliza 1.4.exe

Chatterbot Eliza v2.0

This program is an Eliza like chatterbot; bots like Eliza are the results of researches in Artificial Intelligence (more specifically: in NLP and NLU) NLP: Natural Language Processing, NLU: Natural Language Understanding The first chatterbot was published in 1966 by Joseph Weizenbaum a professor of MIT. (http://i5.nyu.edu/~mm64/x52.9265/january1966.html) And also, most of the chatterbots that have been written these days are largely based on the original chatterbot Eliza that was written by Joseph Weizenbaum which means that they use some appropriate keywords to select the responses to generate when they get new inputs from the users. More generally, the technique that is in use in a "chatterbot database" or "script file" to represent the chatterbot knowledge is known as "Case Base Reasoning" or CBR. A very good example of an Eliza like chatterbot would be "Alice», this program has won the Loebner prize for most human chatterbot three times (www.alicebot.org). The goal of NLP and NLU is to create programs that are capable of understanding natural languages and also capable of processing it to get input from the user by "voice recognition" or to produce output by "text to speech". During the last decades there has been a lot of progress in the domains of "Voice Recognition" and "Text to Speech”, however the goal of NLU that is to make software that are capable of showing a good level of understanding of "natural languages" in general seems quiet far to many A.I experts. The general view about this subject is that it would take at list many decades before any computer can begin to really understand "natural language" just as the humans do. This code is Copyrighted and has limited warranty.
Chatterbot Eliza 2.0.zip
Chatterbot Eliza 2.0.exe

FSM Eliza

This was one of my first attempts at writing an Eliza like chatterbot, this version of Eliza uses an FSM (Finite State Machine) for coding the main routine of the chatterbot, Finite State Machines are very well suitable for writing chatterbots in general. The main reason for this would be because that most of the things that are found in the algorithm of chatterbots can be easily coded by using predefines states of a given Finite State Machine. As you probably know it already, the first chatterbot was developed in the MIT laboratories during the year 1966 by professor Joseph Weizenbaum, the main purpose of chatterbots or chat robots is to simulate a conversation that resemble a real conversation between humans. So far no chatterbot have really succeeded in this goal, although "Alice" a program that was written by Richard Wallace has won the Loebner Prize for most human chatbot three times. How can we explain the fact that chatterbots haven't succeeded yet in emulating a real conversation between humans? Probably one the main reason for this would be simply because chatterbots in general are unable to learn new keywords or even patterns by themselves during a conversation, if this specific feature were to ever been invented then it might solve one the biggest problems of chatbots. (a static database however big that it might be will never be sufficient to enable a chatbot to have a coherent conversation)
FSM Eliza.zip
FSM Eliza.exe