Gene Proportional License/GPL
If you are congenitally more beautiful and stronger and wiser
than me, you can freely handle this algorithm and source code
for any purpose, except for destroying the hierarchy of gene.
If not, patience.
Tadayuki HATTORI
taddyhatty@gmail.com
'simi'
When I wrote a technical report of "artificail humanity" on
IEICE, I guessed that many people couldn't imagine the
realistic algorithm of it. Now, I wrote an algorithm of it.
This is an algorithm to extract typicality from data sequences.
I think this is the basic core logic of creativity of human
being. Many animal's behavior, creativity of human being are
consisted of repetition of this logic. Yes, this logic can be
a circuit. You may not able to get confirmation of this proposal
without demonstration or evidene.
By the way, When you watch a movie, can you feel that you can
act as the actor? Can you play as Toshiro Mifune or Jackie Chen?
When you see cartoon, can you feel that you can write such things
with same way? Can you draw cartoon like as Katsuhiro Ohtomo?
When you watch Disney characters, can you feel that you can
design such things with same way?
If not, your culture-skill is not yet enough for understanding
the algorithm of creativity. I recommend you to pay more money
for enjoying culture as investment. The algorithm of creativity
is easy. You can write a program of creativity, but you can't
feel confidence of the algorithm until someone will show a
demonstration. I guess that many people can't imagine how to use
this algorithm.
'simi' means 'similarity'
This algorithm calculate the degree of similarity from two data
sequences, and create a new sequence from the two data sequences.
It's very easy logic. In order to calculate the degree of
similarity of the two data sequences, I use below formula.
The degree of similarity =
The number of same elements -
The number of different elements +
The number of same sequences +
The total length of same sequences
For example, let's consider the case of generating a new set
from two sets.
set a {0,1,2,3,8,7,16,27,81,91,92,93,101,5,8,}
set b {8,1,2,3,6,9,8,2,5,89,5,92,93,9,13,}
This algorithm automatially create a new set 'c' from above two
sets 'a' and 'b'.
set c {0,1,2,3,8,9,16,2,81,5,92,93,8,9,101,}
At first, what is the same elements of the two sets?
Same elements are {1,2,3,92,93,8,5,8}.
So, the number of same elements is 8.
Next, what is the different elements of the two sets?
The different elements of set a are {0,7,16,27,81,91,101}.
The different elements of set b are {6,9,2,89,5,9,13}.
So, the number of different elements is 7.
Next, is there any same sequences on a and b?
Same sequences are {1,2,3} and {92,93}.
The number of same sequences is 2.
The total length of same sequences is 5.
Then, the degree of similarity is 8 - 7 + 2 + 5 = 8.
This is a algorithm to create a new set from two sets.
The API is very easy. There are only three c-functions,
That's all.
void simi_init(int v);
void simi(set* a,set* b,set* c);
void simi_final();
The simi() function create a new set 'c' from two sets 'a' and
'b', and return the degree of similarity of a and b.
Basically, the length of set a and set b have to be same.
This algorithm can be adapted, only when the length of data
sequences are same. Why is this designed like as that?
When human being compare two experience, the quantity of
information of the two experience is almost same. Because the
quantity of information handled by ear or eye are almost
constant through day living. That's why this algorithm is
designed for compare same-length-data-sequences.
How does this algorithm work?
For example, let's consider the case of generating a new set
from two sets. This is the overview of algorithm of 'creativity'.
set a {0,1,2,3,8,7,16,27,81,91,92,93,101,5,8,}
set b {8,1,2,3,6,9,8,2,5,89,5,92,93,9,13,}
At first, discovering the same elements from the two sets.
Same elements are {1,2,3},{92,93},{8},{5},{8}.
Next, remembering the length, location and distance of the same
sequences.
The length of {1,2,3} is 3.
The location of set a of {1,2,3} is 1.
The location of set b of {1,2,3} is 1 also.
The distance of {1,2,3} is 1 - 1 = 0.
The length of {92,93} is 2.
The location of set a of {92,93} is 10.
The location of set b of {92,93} is 11.
The distance of {92,93} is 11 - 10 = 1.
The length of {8} is 1.
The location of set a of {8} is 4.
The location of set b of {8} is 0.
The distance of {1,2,3} is 4 - 0 = 4.
The length of {5} is 1.
The location of set a of {5} is 13.
The location of set b of {5} is 8.
The distance of {1,2,3} is 13 - 8 = 5.
The length of {8} is 1.
The location of set a of {8} is 14.
The location of set b of {8} is 6.
The distance of {1,2,3} is 14 - 6 = 8.
Next, create a new set 'c'.
{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,}
The length of set 'a' is 15.
The length of set 'b' is 15 also.
Then, the length of set 'c' is 15 also.
Insert same elements in order from short distance.
At first, the distance of {1,2,3} is 0.
Then, insert {1,2,3} into the new set 'c'.
The location of set a of {1,2,3} is 1, and the location of set
b of {1,2,3} is 1 also, then insert {1,2,3} to the location 1
of set 'c'.
{o,1,2,3,o,o,o,o,o,o,o,o,o,o,o,}
Next, the distance of {92,93} is 1.
The location of set a of {92,93} is 10 and the location of set
b of {92,93} is 11, then insert {92,93} to the location
10(=(10+11)/2) of set 'c'.
{o,1,2,3,o,o,o,o,o,o,92,93,o,o,o,}
Next, insert {8},{5},{8} into set 'c' with same way.
{o,1,2,3,8,o,o,o,o,5,92,93,8,o,o,}
Next, listup different elements of thw two sets.
The different elements of set 'a' is {0,7,16,27,81,91,101}.
The different elements of set 'b' is {6,9,2, 89,5, 9, 13}.
Insert the different elements alternately.
The {0}{9}{16}{2}{81}{9}{101} are inserted into set 'c'.
{0,1,2,3,8,9,16,2,81,5,92,93,8,9,101,}
This is the overview of algorithm of 'creativity'.
The rules of new set generation are just only two.
1. Grouping same elements in order from long sequences.
2. Insert same elements in order from short distance.
You can create human-brain-like-computer with this logic!