Monday, March 15, 2004

Weekend at Benniganahalli

While chatting with Noufal , decided on a spur to visit and stay over at their place for the weekend.
Got some time to introspect , chat and catch up with old college memories , rag eachother senseless and have a ball of a time !
Some pretty important decisions were taken during the course of this weekend and it was quiet a "learning"expierence :

1) Make my chess program freely available as fast as possible - even the (S)MP version.

I had already decided on making the single proc version freely available : only binary.
It would be a winboard/xboard compatible engine - later will add UCI support also ...

No , the source wont be available - reasons are many and varied , most important ones being :

a) Way too may clones available - look at the number of crafty clones that keep springing up !
b) Ideas - yes , I will expose - absolutely no need to make the source available.

(Note : the below "justification" is primarily for my friends who keep pestering me to open up the code ;) )

* If someone cant implement the ideas in their own way - they are are not fit to be looking at chess engine sources :-)
There are lot of GOOD opensource training programs available - though this was not an option for me when I started two years back due to lack of knowledge of their existance :(

* I do this as a hobby and as a means of relaxation - dont want some idiot making a clone out of it and then people asking to figure out if some XYZ is a clone of my program - if you think this does not happen , sorry - it happens a bit way too much for my comfort : ask Dr. Bob Hyatt of Alabama University, and many others in this field - many many stories abound of clones.
Yes - I have learned a lot from the community - and yes , I will give back to the community in my own way - as ideas.

* I dont want to hear bull about giving back to community , etc , etc , etc arguments for opening up the code.
Have heard it all , and dont find it very convincing ... If this is a one of a kind project (part of it maybe) , and it is critical to open it up , their would have been sufficient justification - but right now , lot of open source programs exist already.

* Anyway I doubt anyone will be interested in the engine code _other_ than for the (S)MP search part :)
Previous version had a pretty awesome scaling of 1.96 for duals , and 3.9 for a quad ! (Comparison - crafty gets 1 + 0.7 *(n - 1) where n is number of proc - this is according to Prof. Bob Hyatt at CCC ).
And this , I dont want to open up - for reasons including that this is a very good YBW full dynamic tree splitting implementation that I know of (note : I am not being arrogant here) expect for a very few that I personally know of (like Diep by Vincent Diepeveen for instance).

2) Never, never and I mean NEVER ask an unknown girl out on a date directly.

Well , this is not my direct expierence , another friends - but since I saw it all happen , better learn from it :)
Hmm , better keep this under wraps unless I want to piss him off ;) !

3) Started reading Penrose's "The Emperor's New Mind"

Yes , yes , I am loser not to have done much much earlier !
But since the book was lying around and I had time to kill , I decided to give it a read - and man did I screw up !
Took me 3 + hours to finish the preface - it was simply TOO Thought provoking !
(latest edition - with new preface , etc ...)

Took me some time to digest some of the stuff.
(I dont really agree with Turing's idea of how to identify intelligence , but that is another discussion.)

And then went on to first chapter - and got stuck there for a long time.
No no , there was nothing tough about it much - comp AI - a subject that I like a lot (though never read any theoretical before about it ) ... but it was Grey Walters's tortoise that did me in.

Interesting concept of trying to make a scale of pain-pleasure and decide on the response based on that.
If I had left it at that , it would have been ok - problem is this irritating brain of mine...
Got me thinking late into the night - and just could not sleep with all the ideas jumping around in my head.

Dunno whether this has been done / attempted before and possibly already rejected/finished studying about !

Basic I had was this :
Find out the population distribution and characterstics of a group of "entities" (I am modelling these entities around primitive humans here) : based on a variety of factors - not a simplistic view as taken by "Game of Life".
Model it around something similar to evolution - borrow some concepts from GA (rare mutations ,etc) and try to find out the resulting population characterstics after an arbitrary large number of "generations" have passed by.

Example :

Suppose , we have the following "environment variables"
E1) Food distribution (Like power source in the tortoise) - variety , etc could be added later ...
E2) Danger - which will directly effect say , survival rate and "toughness" of the entity.
E3) Desirability - climate , etc , etc.

Entity characterstics :
C1) Surrounding population influence - similar to the Game of Life ... only a bit more complex.
C2) Reproduction - age range when it is capable of it , how many progenies , sex of the entity (assuming bi-sexual) , etc.
C3) Survival abilities - toughness , strength , etc , etc.
C4) Temperment - lazy (flock around food sources and vegetate :) ) , active : as in interact with others , take danger , etc.
C5) Effects of age - strength , toughness ,etc reduction with age , etc.

Could come up with more , but restricting to these for now.
Now as you would have guessed - E* and C* are linked :
For example , E2 and C3 & C4 are linked - more toughness C3 , better chance of surviving danger D2 and more the entiry can survive danger - so does its toughness increase.
Similarly , as age increases C5 - entities ability to survive decreases , etc , etc , etc.

Have not yet completed all the interconnects in this idea - and not yet completely ironed out the idea.
For now , the simulation would be like game of life - turn based and a generation would be like 60 turns or so - typical age of an "entity" in this case.

What I want to see is , for various types of these characterstics , and starting for various types of entity distributions , with various distributions of entity characterstics , how the resulting population characterstics would develop out as.
A few simiplifying and maybe useful restriction and boundry conditions that could be applied would be based on our understanding of how the humans evolved from apes to manlike beings.
Start from that age , with that kind of environmental conditions and then try to find out how this system behaves.
When I initially thought about it , I assumed that it would reach steady state (without mutation from above for example) , but the more I analysed this - the more I was conviced that this would most probably be a very very dynamic system - dont ask me why/how - I can just feel it.
When I am done running a few rounds of this , I can explain better.
Put this idea to Noufal , and after a while , even he was hooked - now , both of us cannot be wrong together (I hope!) , so we are going to pursue this more .....

4) Why most good cooks are males.
Catching heading - but just to show my appreciation to an amazing dish of "Kadai Paneer" made by my friends - very very tasty and mouth waterng stuff - it was too good for their first try !(Hope they did not lie to me on this ;) )
Manoj , Ajay and Noufal - cooks of the future :-)

Ok , tired and sleepy now ....
Comments , brickbats now :)


Post a Comment

Links to this post:

Create a Link

<< Home