An easy learning machine program


I´m trying to do the next program:

DESCRIPTION OF MY PROGRAM AND LEARNING INTERACTION BETWEEN USER AND MACHINE a programm that makes strings manipulation, The way of teach is the next: First I imagine a rule like

 input(ab) - output(aabb)
 input(ac) - output(aacc)
 input(ie) - output(iiee)
 input(pt) - output(pptt)

Do you catching it? :)

I put the firs pair data set. input(ab) - output(aabb) I press a botton (put-into-memory botton) to enter this data into program memory, after that I push other botton (Try-to-guess botton). After pressing Try-to-guess botton the program return a answer like whatever ... output(abbb) or output(aaaa) ... Whatever... I don´t hope my program reach my rule in the first attempt.

I check fisrt answer for my first pair of data set is wrong and put the try-again botton. In the previous paragraph I´ve tried a basic interation user-machine I hope if the previous process is repeated, in three, four, or whatever finite and child-scale number of times the program reach the rule I have in mind.

When my program gets to give a correct answer I have two options: One is to press the "Good!" botton and The other options if I see that my program is constantly giving me some and good answer (So apparently my program has guessed my rule) I press the "you guessed it!!" botton. NOTE: Botton here means the same that command

So the program will get learn my rule in not many process of checking the output. So the program try to learn the rule I have in my mind just analyzing the sets of data pairs input- output I give it. I imagine that the program make a LUT of phrases and try to find what input corresponds what a particular output. I think the basic algotithm would be somthing like this. The algorithm generate a LUT of inputs - ouputs, and try to locate the ouput corresponding to a particular input. I hope my explanation is good enough


This program don´t have memory about the set input-ouput before (It is not necessary something like Markov chains)


Does anyone knows something like this that It is already done? If this web site the best place to do this question? If there is not What is the best place? If stackoverflow is not the proper place to do it this question, please I beg share with me any web site to search for my own. What will be the best programming language to do it? (If this is not the website to ask this last question, please indicate a website) Any other advice of any kind is welcome! Thank you so much!!

So, what you want to do is to learn a function which maps the input to the output.

For the case of simplicity, assume we have number instead of letters. For example:

input(23) - output(2233)
input(01) - output(0011)

If n1 is the first number and n2 the second, you would like to learn the function 1100*n1 + 11*n2, right? I guess the first number has only 2 digits, because you didn't provide any example with more (and I'm not sure what would happen with longer digits). But this can be easily generalized to more digits, by just setting all other digits to zero in the above cases.

Linear Regression could easily solve this problem.

I don't know how you could add that "try and error" feature you want. The only machine learning method that comes to my mind is Reinforcement Learning, but it is not clear to me how to use it in this context.

By the way, why even try to learn something simple like this with machine learning methods? It can be easily done with some simple string manipulation.