Re: [computer-go] is Zen gone commercial?

2009-09-24 Thread Jim O'Flaherty, Jr.
Darren,

If it doesn't work on Wine, you could always load a VM, like Sun's VirtualBox, 
install a copy of Windows in that and play from there. VirtualBox has very good 
performance metrics at above 95% of max (non VM) speed. And there's plenty of 
throw-away copies of XP licenses available all over the place as old systems 
retire and are replaced with newer hardware upon which Vista is now installed.


Jim






From: Darren Cook dar...@dcook.org
To: computer-go computer-go@computer-go.org
Sent: Thursday, September 24, 2009 8:00:03 AM
Subject: Re: [computer-go] is Zen gone commercial?

 It is already shipped in Japan, as Tencho no Igo.

http://soft.mycom.co.jp/pcigo/tencho/index.html

Looks like Windows only. Anyone know if it will run under wine on linux?
They are advertising it as 2-dan (i.e. Japanese 2-dan).

A rather pricey 13,400 yen, or 10,752 yen ($120) online.

Darren

-- 
Darren Cook, Software Researcher/Developer
http://dcook.org/gobet/  (Shodan Go Bet - who will win?)
http://dcook.org/mlsn/ (Multilingual open source semantic network)
http://dcook.org/work/ (About me and my work)
http://dcook.org/blogs.html (My blogs and articles)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Git, any other ideas?

2008-10-24 Thread Jim O'Flaherty, Jr.
Mark,

I would figure that given the popularity of both Eclipse and git, the problems 
connecting the two easily, similar to the way Eclipse and Subversion connect, 
will be solved sooner rather than later. And once they are, it won't be too 
difficult to transition from whatever you choose to use in the interim. It's 
not like the core framework project is going to have a ton of supported 
branches or even contributors, right?

BTW, I don't recall why you were moving off of Subversion. Why not stay there 
for the interim unless you have lots of coders who will be working on the 
framework (as opposed to being a client using the framework .jar-s). I figure 
the JAGS framework would only have a couple of contributors. It's the clients 
of the framework who want to experiment with the least investment in install, 
set up and indefinitely tinker who will gain advantage. And they don't need 
version control at all. Almost all of them will just be consuming the framework 
.jar-s and likely doing the development alone. And for those who are part of a 
team (or are just have to work with a one), they will be choosing their own VCS 
completely decoupled from the choices around the development of the JAGS 
framework.


Jim






From: Mark Boon [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Friday, October 24, 2008 3:13:09 PM
Subject: Re: [computer-go] Git, any other ideas?


On 24-okt-08, at 16:15, Zach Wegner wrote:

 Use git anyways ;) I don't use an IDE, but git works great for me from
 the command line. After I realized that git in pkgsrc was actually
 GNU Interactive Tools and not git, it took me just a few minutes to
 set up. The basic commands are really easy to learn, especially if you
 are familiar with CVS/SVN. There are also separate GUI frontends for
 git, so that might be an option worth looking at.


Over my dead body :)

If I don't get similar integration in Eclipse as Subversion I'm not  
interested.

Now trying Mercurial. Also problems there, as it complains about some  
python library. At least the Eclipse plugin installed without a hitch.

Mark

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] yet a mogo vs human game

2008-08-27 Thread Jim O'Flaherty, Jr.
What were the software improvements? Were they related to the code distributing 
the work, or to the actual game playing/move selection code?


Jim




- Original Message 
From: Robert Waite [EMAIL PROTECTED]
To: computer-go@computer-go.org
Sent: Wednesday, August 27, 2008 9:54:14 AM
Subject: [computer-go] yet a mogo vs human game


* - MoGo was using 5% of Huygens (instead of 25% against Kim);
* - there were some software improvements
* - MoGo won 2 out of 3 games in 9x9 (even games)
* - MoGo won with handicap 5 in 19x19 against the 6D player


That is interesting... it used 1/5th of the processing power and
got approximately the same rank (about 1 Dan). From what I gather..
Kim believed it was 2 or 3 Dan? I guess this is because a 9 stone
handi starts to make the stone per rank estimation get a bit fuzzy.


It is mentioned that there was a software improvement. I wonder how
much the software improvement made up for the reduction in processing
power since it seems to have stayed approximately the same rank. Or could

it mean that dividing the computation strength by 5 did not change
the relative strength of Mogo by much?
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Re: linux and windows

2008-07-17 Thread Jim O'Flaherty, Jr.
All,

Another option is to use a VM, MS's Virtual PC (free), VMWare's offering (free 
for non-commercial use) or any of the flavors of the open source Xen. 
Basically, you can set up an install of whatever target environment you use as 
a client OS. And then install and configure all you need and want natively 
within the Client OS without having to worry that the host OS is Windows.

And for those of you who will say this is inefficient - I would just reply 
with, not participating at all is less efficient than at least participating 
with something inside a VM. There is no need for perfection, as in having every 
little tiny bit of performance eeked out of a box/processor/memory. If you can 
get +90% (which is what all the above VM creators claim for each of theirs), 
then you can participate and gain more experience for your particular 
computer_go player.


Jim




- Original Message 
From: Don Dailey [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; computer-go computer-go@computer-go.org
Sent: Thursday, July 17, 2008 1:31:21 PM
Subject: Re: [computer-go] Re: linux and windows



terry mcintyre wrote:
 A cygwin port can't really be considered a windows application since it 
 requires that the windows user install cygwin. This is not for the faint of 
 heart.

 There are many good reasons why some people develop on Linux. Porting between 
 Linux and Windows is not trivial. 

 A better way to run linux programs on borrowed Windows machines might be to 
 burn a LiveCD with one's program -- something akin to the Hikarunix CD, which 
 tournament organizers could then pop into a computer, boot, and start the 
 program.
  
But you can compile using mingw32 to build native applications.I 
recently compiled my chess program and it runs fine, at least on recent 
windows OS versions - of course it is a UCI program which means the GUI 
is a separate windows program.

- Don





  
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

  
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

[computer-go] Mobile phone go player/client/recorder...

2008-07-17 Thread Jim O'Flaherty, Jr.
All,

What's available in terms of a quality Go game player/client/recorder for 
mobile phones? I have a Windows Mobile 6 phone (ATT Tilt - 8925) and would 
like to be able to play the occasional casual game, be able to connect and play 
with someone else on their mobile phone or desktop PC and to be able to use the 
client to record games in progress and store them as .sgf files.

I have already been to http://www.vieka.com/gnugo/ and that is a very nice 
start. However, it does not have the ability to play someone else except on the 
same phone. And it does not have a way to save a game or generate an .SGF.

Any URLs to existing products would be deeply appreciated.

BTW, it is not very useful that the game is named Go. I tried to Google for 
Windows Mobile Go Game and got lots of useless hits. The word Go is too 
common and only has a very weak relation to the Asian board game.


Thank you,

Jim___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] My experience with Linux

2008-04-09 Thread Jim O'Flaherty, Jr.
I'll second both the original poster (his troubles with Linux mirrored mine) 
and the reply (I was completely enthralled with Ubuntu...WOW!).

Jim

- Original Message 
From: Álvaro Begué [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Wednesday, April 9, 2008 10:18:11 AM
Subject: Re: [computer-go] My experience with Linux

Get ubuntu (http://www.ubuntu.com/). You can ask them to send you a
free CD. And you should consider getting a decent Internet connection.

Álvaro.


On Wed, Apr 9, 2008 at 10:54 AM,  [EMAIL PROTECTED] wrote:
  I got excited about the free software sometime ago and bought a copy of
 Susie Linux. But the installation always hang up at some point and can never
 complete. I had to kiss my $20 goodbye and so much for the Linux. Recently
 my job involves embedded Linux. For whatever reason we used the Fedora
 version 4. It looks like the Windows 3.1. The newest version may be more
 modernized, which I don't have tme to fnd out. The Linux operatng system is
 about 600 Mbyte compressed. Since we have a fast internet, it took only 40
 min. to download. After downloading we needed to find a software that can
 write ISO format on CDs. I failed to find such a software on the internet
 and ended up use the trial version of Nero. Then the Nero I installed
 highjacked my CD drive and I had to unnstall it later.  I also tried the
 64-bit version of Linux and the installation never worked.

  I begin to consder install Linux on my PC at home. With my internet
 connection speed, downloading 600 MB is just unrealistic. The other option
 is to order CD's. They cost $45 and up and I'm sure this cost will go up
 with time. So much for the free software. I keeps asking myself what will
 happen if the installation fails. I only have one computer and one internet
 connection.

  Not that I don't trust other people's opinion, but people pitched other
 things before which we never hear again.


  DL



 
 Get the MapQuest Toolbar, Maps, Traffic, Directions  More!
 ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] speeding up testing of computer go programs

2007-11-25 Thread Jim O'Flaherty, Jr.

Heikki,

I'm with you.  There is no wrong thinking at the present time.  There 
are too many differing agendas, with building the strongest program 
immediately being only one, to claim any approach is futile, inefficient 
or erred.  Once there are approaches that actually come near playing low 
dan levels against humans, I can see how narrowing approaches and 
thinking will become useful.  Until then, lots of chaotic and random 
path experimentation is desirable, including other languages, 
specialized languages, techniques, etc.



Jim


Heikki Levanto wrote:

On Sun, Nov 25, 2007 at 11:52:14AM -0500, Don Dailey wrote:
  

I know that most go programmers don't concern themselves with small
improvements because of the sense that there is bigger fish to fry.   
But this is wrong thinking.   If you can get 10 small improvements it
can be equivalent to one very large improvement.  




This is frong thinking *for you*. Wasn't it yourself who said that people
program go for various reasons, only one of them being making the strongest
possible program. A person with a more theoretical approach might lament
that all that speed optimizing indeed improved the play considerably, but has
not produced any new insight or theory on how best to approach the problem. A
mere amateur like me could complain about the time invested in those small
improvements, that I did not gain any new knowlege for myself, it was just
routine programming.  I humbly suggest that none of us (including you :-) is
guilty of wrong thinking.

Regards

   Heikki

  
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] speeding up testing of computer go programs

2007-11-25 Thread Jim O'Flaherty, Jr.

Don,

I think we have a semantic problem.  Some things don't work as expected 
but provide the genesis for further creativity.  Other things work, but 
not with sufficient additional value for the disproportionate effort 
invested.  Some things don't end up having any enduring value except as 
one of the many infinite possible paths eliminated.


Maybe we are being too abstract here.  If you have the time and 
motivation, would you please tell me in a couple of sentences what your 
standard(s) is upon which you can clearly distinguish right thinking 
from wrong thinking?  And how that standard accommodates active random 
walk experimentation and creativity such that an experimenter can know 
PRIOR to doing the experiment if he is headed off in a right or wrong path?



Jim


Don Dailey wrote:

Jim O'Flaherty, Jr. wrote:
  

Heikki,

I'm with you.  There is no wrong thinking at the present time.  



Of course there is wrong thinking.  Why do you think they call it the
trial and error approach?

- Don




  

There are too many differing agendas, with building the strongest
program immediately being only one, to claim any approach is futile,
inefficient or erred.  Once there are approaches that actually come
near playing low dan levels against humans, I can see how narrowing
approaches and thinking will become useful.  Until then, lots of
chaotic and random path experimentation is desirable, including other
languages, specialized languages, techniques, etc.


Jim


Heikki Levanto wrote:


On Sun, Nov 25, 2007 at 11:52:14AM -0500, Don Dailey wrote:
  
  

I know that most go programmers don't concern themselves with small
improvements because of the sense that there is bigger fish to fry.   
But this is wrong thinking.   If you can get 10 small improvements it
can be equivalent to one very large improvement.  



This is frong thinking *for you*. Wasn't it yourself who said that people
program go for various reasons, only one of them being making the strongest
possible program. A person with a more theoretical approach might lament
that all that speed optimizing indeed improved the play considerably, but has
not produced any new insight or theory on how best to approach the problem. A
mere amateur like me could complain about the time invested in those small
improvements, that I did not gain any new knowlege for myself, it was just
routine programming.  I humbly suggest that none of us (including you :-) is
guilty of wrong thinking.

Regards

   Heikki

  
  



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

  
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Re: The global search myth

2007-11-22 Thread Jim O'Flaherty, Jr.

Seo,

All I described was the scientific method plus simple probability theory 
combined with using intuition to explore unknown unknowns creatively.  
For a layman's explanation into this world, see the works by Talib of 
Fooled by Randomness and The Black Swan.


Not sure about your analogy either.  If their theory is Extra 
Terrestrial Intelligence exists, has their been evidence provided to 
invalidate the theory?  I had not heard of any.  And our existence 
certainly supports the speculation within the theory, i.e. We exist.  
Therefor it is possible other intelligence exists.  And I am suspicious 
any evidence invalidating the core theory (given it is a simple and 
encompassing as I have summarized above) could be found anyway.  It 
would require searching the entire universe in a very short period of 
time as longer periods of time, like millions of years allow for 
possible emergence of evolutionary life forms after the area has been 
searched.


As to your then applying the analogy to computer chess/go - don't see 
the connection.



Jim


Sanghyeon Seo wrote:

2007/11/23, Jim O'Flaherty, Jr. [EMAIL PROTECTED]:
  

Don,

I think it is tenuous to predict, much less emphatically assert, that
just because the evidence is linear at the lower scale, it remains so at
higher scales.  While it is reasonable to assume, it is not certain.  I
see your point that at this time, your theory about it applying to
larger scales has yet to be invalidated.  However, this does not
preclude your theory being invalidated in the future.  Nor does it make
their intuitions about ways others might be able to do so (and keep an
open mind about creating attempts) as superstitious.  It just means they
are yet to be convinced of your position just as you are yet to be
convinced of theirs.  Remember, the direct evidence used to support a
theory that the world was flat.  That theory was later invalidated and
replaced with a new theory incorporating the old evidence as well as the
new evidence.



This starts to sound like a SETI advocate. After forty years of
sustained failures, the burden of proof is on SETI advocates, not
critics. Same goes for computer chess and computer go.

  
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Re: The global search myth

2007-11-22 Thread Jim O'Flaherty, Jr.

Don,

I think it is tenuous to predict, much less emphatically assert, that 
just because the evidence is linear at the lower scale, it remains so at 
higher scales.  While it is reasonable to assume, it is not certain.  I 
see your point that at this time, your theory about it applying to 
larger scales has yet to be invalidated.  However, this does not 
preclude your theory being invalidated in the future.  Nor does it make 
their intuitions about ways others might be able to do so (and keep an 
open mind about creating attempts) as superstitious.  It just means they 
are yet to be convinced of your position just as you are yet to be 
convinced of theirs.  Remember, the direct evidence used to support a 
theory that the world was flat.  That theory was later invalidated and 
replaced with a new theory incorporating the old evidence as well as the 
new evidence.


And you want other attempting to disprove your theory.  It both educates 
them on the current theory and challenges and possibly convinces them to 
share holding your theory.  And it also educates you in the event they 
find some error in your approach/assumptions/context/definitions or are 
actually able to disprove your conclusion.  And it is likely someone 
will eventually disprove your theory while keeping the evidence upon 
which your theory rests.


I would encourage you to keep your theory (every cycle's sacred, every 
cycle's great, if cycle's wasted, God gets quite irate) and work making 
assumptions based upon this being true.  That's efficient.  I would also 
encourage others to challenge your theory and work at invalidating your 
assumptions around low level efficiencies.  Both you, they and 
computer_go will be stronger because of it.



Jim


Don Dailey wrote:

Hi Dave,

You are doing it.No matter what evidence is presented,  people will
find a way to say it doesn't exist.As I mentioned earlier, the
argument was that didn't apply to chess except for the first 4 or 5 ply
- then when that didn't happen they expanded it to the first 6 or 7 and
to this very day people are denying it - although they are looking more
and more foolish in the process.

We have already seen that this holds in GO, I did a massive study of it
month ago on 9x9 boards and showed everyone this beautiful plot with
straight lines showing the ELO per TIME curve which was essentially flat.  


I also remember the response.   ok,  it applies to a small boards but
19x19 is a completely different game that bears no resemblance. 


So I must give up on this.   I know if I do the plot again someone will
say,   it only applies to depths we can currently test.   Surely it
will flatten out next year when the new processors come.

I cannot answer to those arguments when no evidence is presented to back
it up other than superstition of disbelief or my favorite, the
testimony of experts in the field.  I can only say that every bit
of evidence we have backs up what I am saying.   


- Don


Dave Dyer wrote:
  

I agree with your exposition of search as it applies to chess, but
I think there is a qualitative difference in Go.

In chess, evaluators can see clear progress, in the form of material 
balance and statically determined positional factors, so each additional 
ply gives you more opportunity to see progress.


Until Go evaluators give similarly strong and reliable signals, search
will be a very much weaker tool.

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

  


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

  

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Language

2007-11-20 Thread Jim O'Flaherty, Jr.

Colin,

I would NOT recommend this site.  It was last updated in '98.  Many of 
the optimizations listed were great for back then.  They are terrible 
for 2007 and will likely result in SLOWER execution, not faster.


For example, the claim is that a synchronized method call is 10 times 
slower than one which is not synchronized.  While true in '98, this has 
changed considerably and is now patently false.  The cost of 
acquiring/releasing a lock in most modern production available VMs is 
now measured in parts of a percent.  It is rarely worth optimizing this 
out as the constraint(s)/bottleneck(s) are very likely elsewhere.  
Completely changing your architecture to attempt to avoid 
synchronization is now bad for your code (if you have any intentions to 
make it multi-thread capable).


Another claim is marking a method final in an attempt to promote it to 
be inlined by the compiler.  In '98, this could have a substantial 
impact on performance.  Now, it not only does not desirably impact 
performance, the modern JVMs have sophisticated implementations around 
inlining including inlining based on probability with exceptions 
branched out of a default execution flow path (making the exceptions 
slower, but the default path the fastest), it makes the class(es) less 
flexibly to future adaptation.


If you are writing high performance Java code, it is worth your while to 
find references that are no more than 4 years old.  The JVMs have change 
so much in the last 10 years, any assumptions from a recent as 4 years 
ago are likely fallacious.


If you want to follow performance trends and very fixated execution 
performance engineering for Java, I would recommend starting here:

http://www.javaperformancetuning.com/

And for a book:
http://www.amazon.com/exec/obidos/ASIN/0596003773/javaperforman-20

I have used both the site and the book for my own Java performance 
tuning.  Excellent stuff.



Jim


Colin Kern wrote:

On Nov 20, 2007 1:56 PM, Nick Apperson [EMAIL PROTECTED] wrote:

  

On Nov 20, 2007 12:48 PM, Stefan Nobis [EMAIL PROTECTED] wrote:




Colin Kern [EMAIL PROTECTED] writes:

  

I think the reason for Ruby being so much slower is because it is an
interpreted language rather than a compiled language.


It's not the main problem (interpreted languages are slower than those
compiled to native code, but than even Java and C# are interpreted and
don't have such big slowdowns).
  

Java and C# are both compiled at some point if the same loop is running
repeatedly.  Java is usually compiled just in time which is to say as each
function is first run.  I'm not sure how C# is executed, but I think it gets
compiled before execution.




I just found this looking around for things about Java's speed.  Looks
like some useful ways to boost Java's performance.
http://www.cs.cmu.edu/~jch/java/speed.html

-Colin
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

  
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Language

2007-11-13 Thread Jim O'Flaherty, Jr.
Nick,

When I engage in complex multi-threaded distributed processing, I have found 
Java to give me the most value for my limited personal time buck. I am not 
claiming that Java is competitive in performance with hand crafted assembly (or 
C or C++).  I am claiming that I have experienced a many fold increase in my 
productivity by exploiting the much easier to use the language, libraries, the 
distributed computing ability and JVMs of Java than attempting to reliably 
reproduce the same results in hand crafted assembly (or C, or C++, or 
equivalents in terms of raw machine performance).  For me, the primary 
constraint I am attempting to optimize is my own personal productivity.  I am 
willing to give up small percentages of computation performance in trade for 
being vastly more productive in generating experiments.  And at this point, JVM 
efficiencies have become so effective, we are talking about small percentages 
of performance difference.  They are close enough
 for me to easily choose away from the less portable, flexible and shareable 
implementations of libraries I have seen for pretty much any other 
implementation system (Java is more than a language, it is also libraries, JVM 
implementations, standards for inter-system communication, distributed 
computing, etc.).

I still contend that breakthroughs in programming Go are going to come from 
creative experimental algorithms as opposed to a couple percent optimization 
around current algorithms.  As such, I will remain wanting to favor 
implementation flexibility over computational efficiency.  Once we have 
breakthroughs worth optimizing (and from what I am reading here, there aren't 
any yet), I will carefully reconsider my choice of Java.  Recall there was a 
member of this forum who reported as his team went from Java to C/C++ to make 
things more efficient for his own implementation.  He described the resulting 
loss of coding efficiency was not worth the minimal gain in execution 
performance.  That member has since moved his team back to Java acknowledging 
there are efficiency benefits in C/C++, but that Java keeps them able to 
experiment with alternative approaches more rapidly.

As to Java taking over the world - that is kind of too late.  It's everywhere.  
Last calculation is that it is running on over 3 billion machines and devices 
(PCs, mainframes, mobile phones, smart cards, etc.).  And now that it is GPLed, 
it will find many more homes.  And I find it difficult to believe that the core 
reason there are so many machines and devices running Java to be the fact that 
Java has garbage collection.  I will grant you that it is likely an influencer, 
but not near the magnitude you seem to believe it is.  Java garbage collection 
is just one of many benefits collaborating with other language and library 
features which also influence the choice to implement in Java.

I sense you think that a gain for Java is a loss for C/C++.  I don't see it 
that way.  The market continues to expand adding more and more software 
engineers/developers/programmers.  So while C/C++ may not have the same growth 
rates it had in the '90s, there is still growth.  Why does it matter to you 
that Java is growing?  If you are happy with what you have chosen, why is what 
other people are recommending and choosing important to you?  What are you 
defending?  What are you trying to achieve?


Jim


- Original Message 
From: Nick Apperson [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Tuesday, November 13, 2007 12:07:10 AM
Subject: Re: [computer-go] Language

WARNING: This digresses into a rant by the end...  You've been warned.

If you like to have your garbage collected for you then use one of the 
management strategies present in C++.  If you like delayed freeing, overload 
new or use a library that does this.  Really, the difference between C++ and 
most other programming languages (that are strongly typed) is that C++ doesn't 
make any assumptions about what you are going to do with it because of its most 
basic principle: you don't pay for what you don't use.  If you want garbage 
collection, you can have it: it's not like C++ prevents this.  By the same 
token, Java and C# don't allow you to make any decision here which might be 
best in certain circumstances, but it certianly isn't always ideal.  If you 
want the subset of features that say java has, you are welcome to create these 
restrictions in C++ all while remaining more portable.


I personally use garbage collection every once in a while in my C++ code.  It 
is not usually the right tool for me, but there are circumstances where it 
makes sense.  I generally use it when I have data that isn't really owned by 
any object.  It is data that many parts of the program reference and some wish 
to keep a copy for themselves.  This is how the std::string class is 
implemented in C++.  Reference counting and copy on write.


But I'll be damned if Java takes over the 

Re: [computer-go] Intelligence

2007-07-22 Thread Jim O'Flaherty, Jr.

All,

For reasons similar to those mentioned by others, I have found the 
phrase artificial intelligence to be less than adequate to convey my 
interests in this domain.  And after considerable time, I came up with a 
term that I prefer; synthetic awareness.  It comes from having 
interests in several different domains which feed into my interest in 
fabricating non-homo-sapien memetic propagation.


First, synthetic is more inclusive.  It means that borrowing and 
incorporating specialized awareness/knowledge from organic/memetic 
domains is included and acceptable.  It also means that fabrication of 
new awareness/knowledge from strictly computation domains also works.


Secondly, awareness is more expansive than knowledge.  Boolean 
mathematic frames (proof focused rule based systems) and the symbolic 
efficiencies around linguistics (must be able to be articulated 
accurately) have most intellectuals fixated on producing idealized 
knowledge.  And while there is significant value in the results 
produced, the results (to me) are too sequential and fragile to be 
expected to scale up to extremely high levels of complexity.  This is 
why computer Checkers/Draughts is solved, computer Chess is not solved 
but beat the highest skilled humans, and computer Go is not even 
effectively beating low ranking amateurs.  Awareness covers much more 
complex notions like the subtleties implied in intuition and creativity.


Here is my reframing of a statement by a psychology author, Nathanial 
Branden:

STATEMENT_REFRAME
The need to create synthetic awareness has acquired a new urgency in 
the computational age.  The more rapid then rate of change, the more 
fragile and dangerous it is to operate computers mechanically, relying 
on routines of Boolean software and Boolean behavior that may be 
irrelevant or obsolete.

/STATEMENT_REFRAME

As has been discussed ad infinitum here on computer_go, I don't see 
computer Go be solved meaning like Checkers/Draughts has been solved.  
I do think it is achievable to generate some sort of computational 
result which can eventually outplay the humans of the highest skill.  I 
also think some significant breakthroughs are required around the move 
away from booleans (perfect move-vs-imperfect move) and towards scalars 
(probability of each available move will lead to overall increased value).


While the domain of the rules of Go feel very rigid, the complexity is 
so vast that any idealized solution is going to turn out to be a local 
optima, i.e. with enough effort and exploration, it will be discovered 
the idealized solution, too, has weaknesses which can be exploited and 
eventually cause it's failure.  As such, the more dynamic and creative 
the nature of the resulting entity, the more likely it will be the 
entity can eventually hop out of the local optima in search of an even 
higher optima.  The more reserved, risk averse and rigid the entity, 
the more likely it will be unable to move forward and the sooner it will 
succumb to another entity's discovering it's weaknesses and eventually 
out-playing it.


Go is the perfect game for demonstrating that even with a perfectly 
rigid foundation, the solution space is vastly more effectively searched 
via dynamic evolving mechanisms than via static rigid mechanisms.  And 
as can be seen with the recent UCT/MC results, we are still just barely 
above randomness in terms of discovering and inventing solutions.



Jim


Erik van der Werf wrote:

On 7/21/07, Weimin Xiao [EMAIL PROTECTED] wrote:

Intelligence is the ability to adapt or learn.


A hypothetical almighty oracle that already knows the correct answer
to every question and the right response in every situation would
never have to adapt. Hence evidence of intelligence according to your
definition would not be observed.

IMO the adaptation is just a means to an end. The end (Intelligence,
whatever it is) does not necessarily require adaptation.

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Intelligence

2007-07-22 Thread Jim O'Flaherty, Jr.

Erik,

In perfect theory, I agree with you.  In the practicality of attempting 
to generate more effective computer Go players, I disagree.


In theory, there is a perfect girlfriend for me.  In practicality, there 
is my adapting to make the current girlfriend good enough and better, 
with perfection never really obtainable.



Jim


Erik van der Werf wrote:

On 7/21/07, Weimin Xiao [EMAIL PROTECTED] wrote:

Intelligence is the ability to adapt or learn.


A hypothetical almighty oracle that already knows the correct answer
to every question and the right response in every situation would
never have to adapt. Hence evidence of intelligence according to your
definition would not be observed.

IMO the adaptation is just a means to an end. The end (Intelligence,
whatever it is) does not necessarily require adaptation.

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Intelligence

2007-07-22 Thread Jim O'Flaherty, Jr.

How do you know this is incorrect?  Are you claiming omniscience?

[EMAIL PROTECTED] wrote:
No. Erik is wrong even in theory. An arguement can fault in two 
aspects:assumption and logic. His arguement faults on the former, even 
his logic is iron clad. He assumed the existence of an Oracle, which 
we all know is incorrect.
  


-Original Message-
From: Jim O'Flaherty, Jr. [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Sun, 22 Jul 2007 10:40 am
Subject: Re: [computer-go] Intelligence

Erik, 
 
In perfect theory, I agree with you. In the practicality of attempting 
to generate more effective computer Go players, I disagree. 
 
In theory, there is a perfect girlfriend for me. In practicality, 
there is my adapting to make the current girlfriend good enough and 
better, with perfection never really obtainable. 
 
Jim 
 
Erik van der Werf wrote: 
 On 7/21/07, Weimin Xiao [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED] wrote: 
 Intelligence is the ability to adapt or learn. 
 
 A hypothetical almighty oracle that already knows the correct answer 
 to every question and the right response in every situation would 
 never have to adapt. Hence evidence of intelligence according to your 
 definition would not be observed. 
 
 IMO the adaptation is just a means to an end. The end (Intelligence, 
 whatever it is) does not necessarily require adaptation. 
 
 Erik 
 ___ 
 computer-go mailing list 
 computer-go@computer-go.org mailto:computer-go@computer-go.org 
 http://www.computer-go.org/mailman/listinfo/computer-go/ 
 
___ 
computer-go mailing list 
computer-go@computer-go.org mailto:computer-go@computer-go.org 
http://www.computer-go.org/mailman/listinfo/computer-go/ 

AOL now offers free email to everyone. Find out more about what's free 
from AOL at *AOL.com* http://www.aol.com?ncid=AOLAOF0002000437.



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] 9x9 games wanted and the next big challenge

2007-07-08 Thread Jim O'Flaherty, Jr.

Chrilly,

The purpose of investment is to generate a return exceeding the original 
investment, i.e. a profit.  Given the state of Go, I am finding it 
difficult to imagine why an investor would choose to put any good money 
into Go.  There is absolutely no reliable expectation that Go will 
achieve even close to strong amateur status (1D) in the next couple of 
years.  It's possible some wealthy person might decide to generously 
donate money into the computer Go domain so as to forward his own 
passion, just as many of the people here generously donate their own 
very valuable personal time.  Go is not a reasonable place to put 
investments.  At present and from everything I can see, computer Go 
development depends upon personal passion and generosity.  And sans a 
huge breakthrough, I am currently unable to see this changing anytime soon.


That said, I think once Go AI becomes sufficiently and robustly skilled 
to reliably start giving strong amateurs (1D) genuinely competitive 
games, you will start to see investment rise.  And given a sufficiently 
high enough rate of change (objectively measured as increases in playing 
skill), you will start to see the investments accelerate as competition 
will spur on more innovation resulting in more successes resulting in 
more investment resulting in further innovation...and a positive 
feedback loop will be boot strapped.  As the probability of producing 
profits rise, the risk around insufficient returns on an investment 
fall.  Eventually a threshold is crossed and the system becomes 
self-generative.


Succinctly put - there is no money in computer Go (at least compared to 
computer Chess) because there is currently no hope (mathematically 
speaking) of the existing crop of computer Go programs to scale up to 
anything less than moderate amateur levels.  Once this changes from no 
hope to a remote possibility, the investment around Go will likely follow.


No to be too Zen here, but...the sooner you accept things as they are 
and stop resisting what is, the sooner you become free to move 
forward.  Go investment is working exactly as it ought, in relation to 
the whole.


Finally, thank you for your contribution to computer Go.  I get that it 
is an act of generosity (realistically, what else could it possibly 
be).  And I personally appreciate it.



Jim


chrilly wrote:



Sil wrote:

How about http://home.wwgo.jp/jp/minigo/


It seems that only 24 games are available. Is the whole collection
available somewhere?
Rémi

I have read dozens of times that computer-Go is the next big challenge.
But in fact it is a completly amateuristic field where even the most 
basic things are missing. As a chess programmer I did not even think 
about, that it is a problem to get a good game collection. There are 
no proper interfaces, no serious tournaments, a wired data standard...
AND there is no money involved:  For professional programming I get 
60Euro/h (1Euro=1.35$).

2.000h x 60 = 120.000 Euro.
This equation is of course completly wrong. One can not make in 2000h 
a very strong Go programm and one can not earn 120.000 Euro with it.

A more realistic equation is;
20.000 Euro/5000h = 4Euro/h.

The minimum wage (by law) is in Austria 6Euro/h. Obviously Go 
programming is even more unqualified than washing dishes in a restaurant.


If it would be really a big challenge, there would be some money. In 
chess nowadays there is also no money. But once it was a good business 
and there was some considerable money for Deep Blue and on a smaller 
scale also for Hydra, there was Don's project at MIT, one got a big 
Cray for Cray-Blitz, Ken Thompson build a chess engine
Its like some hobbyst engineers and hobby-pilots would try to fly to 
the moon.
Its probably only good for to write some academic papers. In this case 
its even an advantage that everything is so amateuristic. The general 
level is low and one can be the one-eyed king under blind ones.


Its clear to me that things are as they are in the West. Go is played 
only by a small freak community. But if it is so important in 
China/Korea/Japan why is'nt there something like Fritz and ChessBase? 
Or does it exist and we are living in a completly other Go-world?


Chrilly

P.S.: I do not want to offend anyone in this list. Everybody here does 
his best. I am just feed up with the things as they are.




___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] 9x9 games wanted and the next big challenge

2007-07-08 Thread Jim O'Flaherty, Jr.

David,

Very well said.  Thank you.


Jim


David Doshay wrote:

Chrilly,

It is hard to disagree with what Jim writes, but I will in a small way.

When I recently flew to Asia, the screen on the seatback in front of 
me offered Go as one of its games. At its highest level it played far 
worse than the average program on CGOS or in a KGS computer 
tournament, and yet somebody was paid by that airline for the use of 
that program. And Go++ makes a living for its programmer.


There is money to be made in computer Go, but as Jim states, right now 
the risk/reward ratio does not encourage most normal investors, so it 
is for either 1) those with a high risk threshold, 2) those who think 
more about research than production, 3) those motivated by how hard it 
is and not put off by how much effort it is going to take, or 4) 
programmers of other games who underestimate how hard it really is. 
Please do not take offense by number 4. I have huge respect for your 
programming ability and am glad that you have joined us.



Cheers,
David



On 8, Jul 2007, at 8:36 AM, Jim O'Flaherty, Jr. wrote:


Chrilly,

The purpose of investment is to generate a return exceeding the 
original investment, i.e. a profit.  Given the state of Go, I am 
finding it difficult to imagine why an investor would choose to put 
any good money into Go.  There is absolutely no reliable expectation 
that Go will achieve even close to strong amateur status (1D) in the 
next couple of years.  It's possible some wealthy person might decide 
to generously donate money into the computer Go domain so as to 
forward his own passion, just as many of the people here generously 
donate their own very valuable personal time.  Go is not a reasonable 
place to put investments.  At present and from everything I can see, 
computer Go development depends upon personal passion and 
generosity.  And sans a huge breakthrough, I am currently unable to 
see this changing anytime soon.


That said, I think once Go AI becomes sufficiently and robustly 
skilled to reliably start giving strong amateurs (1D) genuinely 
competitive games, you will start to see investment rise.  And given 
a sufficiently high enough rate of change (objectively measured as 
increases in playing skill), you will start to see the investments 
accelerate as competition will spur on more innovation resulting in 
more successes resulting in more investment resulting in further 
innovation...and a positive feedback loop will be boot strapped.  As 
the probability of producing profits rise, the risk around 
insufficient returns on an investment fall.  Eventually a threshold 
is crossed and the system becomes self-generative.


Succinctly put - there is no money in computer Go (at least compared 
to computer Chess) because there is currently no hope (mathematically 
speaking) of the existing crop of computer Go programs to scale up to 
anything less than moderate amateur levels.  Once this changes from 
no hope to a remote possibility, the investment around Go will likely 
follow.


No to be too Zen here, but...the sooner you accept things as they 
are and stop resisting what is, the sooner you become free to move 
forward.  Go investment is working exactly as it ought, in relation 
to the whole.


Finally, thank you for your contribution to computer Go.  I get that 
it is an act of generosity (realistically, what else could it 
possibly be).  And I personally appreciate it.



Jim


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Re: pseudoliberties

2007-03-29 Thread Jim O'Flaherty, Jr.
What's a pseudo-liberty?  And how can there be more of them than there are 
empty intersections (81) on the board?

- Original Message 
From: Jason House [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Thursday, March 29, 2007 1:02:01 PM
Subject: Re: [computer-go] Re: pseudoliberties

After some trial and error, I got 90

 * * * * 
*
 * * * * 
* * * ***
* * *
*** * * *
 * * * * 
*
 * * * * 


On 3/29/07, John Tromp [EMAIL PROTECTED] wrote:
On 3/29/07, John Tromp [EMAIL PROTECTED] wrote:

 Is 88 the maximum number of pseuoliberties a string can have on 9x9?

Make that 89:-)

-John

___
computer-go mailing list
computer-go@computer-go.org

http://www.computer-go.org/mailman/listinfo/computer-go/



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Grid Cosmos

2007-03-15 Thread Jim O'Flaherty, Jr.
Don,

Your question is fertile ground for a language/platform argument fest 
(flame-war?).  :)

From the 10,000 foot view, I see very little difference/advantage between the 
Java language/platform and the C#/.Net language/platform.  As they say, though, 
The difference is in the details.

My being a Java advocate comes mostly from my 10 year investment in Java.  It 
also comes from my legacy of very strong resistance to Microsoft.  I resist MS 
less now-a-days.  I don't see them as the dominant over-bearing threat they 
used to be.

Ultimately, I continue to bet on Java as I see it still mutating and adapting 
into more parallel hardware optimization context possibilities than Mono or 
.Net.  A good part of that is because the nature of Java has been and is very 
closely aligned with the nature of Sun.  And because Java became so 
ridiculously popular.  There are just so many more minds who can specialize in 
producing the libraries of math optimizations upon which I know I will depend 
later.  The GPLing of Java will result in some of IBM's scientists releasing 
some kick ass math libraries with super optimization.  I am so looking forward 
to that.

About the only thing that has caught my interest outside of Java has been your 
investigation and reporting about D.  I really like what I am hearing there.  
And even then, I am reluctant to invest there as opposed to working a higher 
design levels.  My sense is that my moving to D would too strongly influence me 
to do pre-mature performance optimizations and tweaks.  Remaining in Java 
requires I be creative and innovative in different and more 
multi-threaded/distributed computing oriented ways.

As to my own Go player contribution - I wrote one about three years back, 
played around with it and decided I wanted to spend more time playing around 
with conceptual creativity as opposed to being lost in the myriad of technical 
details (distractions).  [basically, it sucked wind, cost me close to 1,000 
hours of personal time and resulted in me refocusing on simpler problem domains 
to prove out my more simple ideas]  I will eventually spend the time to take my 
different lines of thinking and go through the arduous process of getting code 
massaged until it works.  For now, though, I enjoy reading the posts on this 
list, playing with my own ideas in abstract and with little one-off code 
experiments.  I have been sorely tempted dozens of times to try and write a 
very simple example MC implementation and get it validated here in the group.  
I am not certain I am capturing all the nuances around the difference between 
the MC and UCT discussions.

And I would like to personally thank you for all your contributions to this 
group.  I very much look forward to your posts.  And to your progress.  I 
really like how you have approached taking on projects, methodically breaking 
down problems and rigorously experimenting.  And then how articulate, concise 
and yet detailed you are when you post.  I'm jealous of the amount of time you 
are able to invest in the area.  And I thoroughly enjoy living vicarously 
through you by reading your posts and progress.  Please keep it up.


Jim


- Original Message 
From: Don Dailey [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Thursday, March 15, 2007 9:18:14 AM
Subject: Re: [computer-go] Grid Cosmos

What does C# bring that Java doesn't?   My understanding is that C#
is Microsofts way to try to supplant Java as a standard,  not a clone 
but extremely similar.

What advantages over Java?  It is a higher level language?

- Don


On Thu, 2007-03-15 at 07:04 -0700, Jim O'Flaherty, Jr. wrote:
 Eduardo,
 
 I am a strong Java advocate, no doubt.  However, Mono/C# have
 accomplished quite a bit in the last 3 years.  My own experience in
 that area tells me it is much more mature than you have made it sound.
 To get pretty up-to-date information, try here:
 http://en.wikipedia.org/wiki/Mono_%28software%29
 
 
 Jim
 
 
 - Original Message 
 From: Eduardo Sabbatella [EMAIL PROTECTED]
 To: computer-go computer-go@computer-go.org
 Sent: Thursday, March 15, 2007 5:11:41 AM
 Subject: Re: [computer-go] Grid Cosmos
 
 As far I know, Mono implements the virtual machine and
 a couple of core libraries. Anyway, A lot of them are
 missing. I don't know for sure, but It looks
 impossible to use real applications inside mono/linux.
 
 By the way, As far I know, there was a scam with
 Icaza/Novell receiving money from Microsoft, plus java
 sdk released as open source (GPL) a couple of weeks
 ago. 
 
 All directions shows that mono on linux is stuck.
 
 Specially, after Java SDK published as libre/free
 software.
 
 --- Brian Slesinsky [EMAIL PROTECTED] escribió:
 
  On 3/14/07, Darren Cook [EMAIL PROTECTED] wrote:
  
   P.S. Is anyone using C# on linux? I thought C# was
  standardized so I
   expected to find something, but google is only
  giving me articles from
   2001...
  
  I haven't used

Re: [computer-go] Bit Twiddling Hacks

2007-02-13 Thread Jim O'Flaherty, Jr.
Erik,

I am.


Jim


- Original Message 
From: Erik van der Werf [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Tuesday, February 13, 2007 3:37:13 PM
Subject: Re: [computer-go] Bit Twiddling Hacks

On 2/12/07, Phil G [EMAIL PROTECTED] wrote:
 For those doing a lot of bit logic in their computer go programs, you might
 be interested in this collection of highly optimized methods for doing
 things with bits

 (like counting bits sets in parallel and computing the minmum or maximin of
 two integers without branching):

 http://graphics.stanford.edu/~seander/bithacks.html


Seen it before, but still a very nice site with lots of clever tricks.

I have some improved bit counters, if anyone is interested...

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/




___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] an idea... computer go program's rank vs time

2007-01-25 Thread Jim O'Flaherty, Jr.
Terry,

Where's the notion that through small increments, there is no reasonable path 
from a house 3 bedroom house to a 10 story building?  Isn't the consistency of 
the assumption set around how a house is designed and built fundamentally (as 
in pardigm-ally) different than that of how designing and building a 10 story 
building?  And doesn't the assumption set for the 10 story building have to be 
mostly abandoned when creating the design and building a 100 story building?

Isn't there's a point where the shift from one complex infrastructure to 
another results in a setback as nuanced assumptions must be abandoned when 
their lower dependent assumptions have to be reorganized or even replaced?


Jim

- Original Message 
From: terry mcintyre [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; computer-go computer-go@computer-go.org
Sent: Thursday, January 25, 2007 10:23:13 AM
Subject: Re: [computer-go] an idea... computer go program's rank vs time

Go, being a matter of efficiency over one's opponent, may be even more 
susceptible to improvement via many small improvements over many moves than is 
chess. As long as you don't leave weak shapes behind, picking up a point here, 
a point there at a slightly faster rate than your opponent will give you the 
game.
 






 Get your own web address.
 Have a HUGE year through Yahoo! Small 
Business.___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Can a computer beat a human?

2007-01-24 Thread Jim O'Flaherty, Jr.
You can if you use some sort of compression scheme...involving multiple values 
per quanta. I bet there's more than enough room...in the universe...probably 
just in your eyelash.

- Original Message 
From: alain Baeckeroot [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Wednesday, January 24, 2007 2:11:23 PM
Subject: Re: [computer-go] Can a computer beat a human?

Le mercredi 24 janvier 2007 19:56, Stuart A. Yeates a écrit :
 Since no one has mentioned bounding memory, a complete lookup table (a
 complete table of correct moves, perfect-hashed by board state) should do
 the trick.

With 10^170 legal position for 19x19 what would be the size of this table ?
I m afraid we cannot build it with all the matter in visible universe.

Cheers.
Alain
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/




___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Mega transposition table

2007-01-19 Thread Jim O'Flaherty, Jr.

Don,

You wrote:
  Does it matter?...

While I am not totally up-to-date on C++ compiler optimizers, it seems 
like locality of reference compiler optimizations might be influenced if 
you were to specify allocation on the stack as opposed to the heap.  And 
aren't stack based values much more likely to end up in registers and in 
CPU cache than heap based references and values?  Perhaps all of these 
kinds of evaluations are rendered ineffective with more modern day CPUs 
and C++/C compilers.  From what I have been following in the Java JVMs, 
these prove to be VERY important in the way they choose to optimize 
execution paths and data flows.  Just figured that it would matter in 
C++/C in a similar way.



Jim


Don Dailey wrote:

On Fri, 2007-01-19 at 17:19 -0600, Jim O'Flaherty, Jr. wrote:
  

Don,

So could you elaborate on where you are allocating space for big_array
in your code snippet below?





Does it matter?  I just declare it as a global but I will probably
eventually
just place it on the heap via malloc - with a command line argument to
set
the size.

- Don


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

  
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Making Java much faster

2006-11-30 Thread Jim O'Flaherty, Jr.

Wodzu,

There are roughly two types of approaches to bettering the skill of 
computer go solutions; incremental and breakthrough.  I think for 
incremental solutions, ones where lots of work results in small shifts 
in better go playing performance, you are correct.  Any optimizations 
around execution speed will result in better go playing performance per 
time-unit.  This is important if the measurement is winning current 
computer_go competitions.


However, what I hear quite a few people saying is they are looking for 
breakthrough types of go skill improvement, and more at the 
application level as opposed to the individual lines of code.  And to do 
that, their needs around adaptability are more influential on their 
primary constraint (personal time, not eventual execution speed).  Their 
focus is on being able to complete more experiments per personal time 
unit with the hope of stumbling into a new domain where the go playing 
performance takes an order of magnitude leap ahead.  Once in the new 
domain, the priorities for the person may shift back to incremental as 
they begin to see what kinds of limits the new technique might provide.  
This is where I am at personally.  I am far more interested in 
probability based techniques as opposed to perfecting tactics/fighting 
strategies.  I am very happy others are more interested in those areas.  
It's a good match.


There are short-term benefits to the incremental approach.  However, it 
likely has a much closer threshold of diminishing returns if one follows 
the standard constraint reduction techniques, largest first, etc..  At 
which point, all the optimizations start fighting with any attempts to 
change and/or expand newer ideas, techniques and experiments in an 
effort to continue making progress.  Once one has prioritized code 
execution speed optimizations as a root value in moving a system 
forward, almost always there is a large loss in adaptability with the 
eventual result being the person abandons the bulk of the previous code 
base to essentially start from scratch.  In many, if not most, cases, 
the error persists in the new approach as the fixation on maximizing 
execution speed remains too high resulting in a rapid pruning of 
possible exploration options.


There is no short answer to the Go problem.  It is going to takes lots 
of investment by both the code speed optimizers (incremental) and the 
new technique inventor/innovators (breakthrough) and an effective 
integration of both before we see result substantially superior to what 
we experiencing right now.  Personally, I have been enjoying the 
discussions around the progress being made on the UTC/Monte Carlo 
techniques.  I am eager to start playing in that domain.



Jim


Wodzu wrote:





Huh, why not use Pascal? It has speed of C and
simplicity of Java :)


heck, you could use perl.  plenty of packages
available (it can even be made multithreaded!),
shared memory packages, etc.

i mean, if speed isn't your top concern...



i think speed is one of most important things beacuse it affects 
strength of the program ;) (if the time for move is restricted)
anyway, chosing a proper (fastest) algorithm has crucial meaning and 
other things like language, used data structures and so on, have less 
meaning in improving speed.

thats my opinion, regards.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Making Java much faster

2006-11-29 Thread Jim O'Flaherty, Jr.
Mark,

It's true.

My interpretation of Sun's documents:
In the more recent versions of Java (1.4, 1.5, etc.), the runtime analysis in 
the -server option of Sun's Hotspot JVM is able to do several different types 
of optimization around potentially final and mostly final methods.  The 
most recent versions have mostly eliminated the need to suggest optimization 
paths to the compiler via the final or static keywords.  Additionally, 
there are cases where the way the polymorphic calls are actually dropped from 
an indirection (costly) to a Boolean test (cheapest operation on almost all 
processor types).  It occurs when Hotspot notices the call favors one path over 
others, remaps the call from being an always deference/indirection to a direct 
call with a single Boolean test to shuttle off all non-critical-path calls to 
the slower dereference/indirection mechanism, and the primary call path 
executes with virtually no cost (a Boolean check is vastly less expensive than 
all the overhead of a polymorphic context transition).  Add to
 this the fact that the register management of the Java call stack mechanism 
has been managed so that stack based (as opposed to heap based) optimizations 
can be utilized with higher effectiveness reduces even more time issues with 
heap memory fetches.  Again, this is done during execution so that non-obvious 
(at least at compile time) stack use optimization can cross methods.  In 
compiled only languages, this requires the programmer design it in explicitly.  
With Java, it just happens dynamically. (see caveat in PS)

There is a cost for these optimizations.  Some of the CPU is being burned in 
monitoring interpreted code to notice the patterns to optimize.  And once an 
optimization is in place, if the class loader happens to load an additional 
class which impacts the optimized code path, the optimizations are backed out 
until the context can be monitored sufficiently for the critical code path to 
be re-optimized.  It’s quite dynamic, and once produced, very effective 
speed-wise.


This does not mean that any programmer can make Java work well.  It still takes 
focusing on design level values, ones that are potentially much more 
effectively learned in languages like C++/C or assembly.  Understanding the 
fundamentals is almost always an advantage as it enables one to design even 
more optimally in languages like Java.  What I am enjoying is how much I can 
stay with my OO design principles, engage in only a moderate efficiency focus 
on less than 10% of my code base and end up with a screaming fast result.  I 
won't say that it is guaranteed to outperform hand optimized C++/C.  I am 
willing to say that the time it takes me to get the +95% as fast result is an 
order of magnitude smaller in Java than it was in my C++/C/assembly days.  I am 
able to play with many more experiments in the saved time.  It is a slight loss 
short term (not stuck in efficiency fixation local optima) for a huge long term 
gain (more effectively moving towards global optima, or at
 least significantly superior local optima-s).

My experience tells me, at least with Java and Sun's approach to performance 
enhancement, staying with generally accepted OO design principles yields nice 
results immediately, and even better results as Sun continues to expand the 
number of optimizations that are only possible with on the spot run-time 
analysis.  A compiler can only make educated (theory) guesses at the future 
execution profile of a code base.  Some even use an execution profile log to 
assist in their engaging in further optimizations at compile time.  Sun's 
approach augments really good guessing (theory) with up-to-date and in context 
direct observation (practice).  This mixed method approach has proven to be 
significantly more performant and adaptive than the more traditional techniques 
of just compilation optimization.

And given how competitive MS is (regardless of whether you like/dislike and/or 
agree/disagree with them), I expect .Net/C# to make similar leaps.  And I 
expect that both Sun/Java and MS/.Net/C# will create an arms race that benefits 
all their users.


Jim


PS.  It is somewhat difficult to talk about memory management between Java and 
C++/C because their memory models are different.


- Original Message 
From: Mark Boon [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Wednesday, November 29, 2006 9:22:14 AM
Subject: Re: [computer-go] Making Java much faster


On 29-nov-06, at 08:43, Stuart A. Yeates wrote:

Other tricks for faster java include ensuring that, wherever possible, you use 
the final, static and private keywords. This enables the compiler to apply more 
compilation tricks in more places.

More and more I find that using 'final' or 'static' to have no effect on speed 
at all. Most of the time the compiler figures out it can treat a method as 
final or static. I don't think I have found a case were explicitly putting it 
helped 

Re: [computer-go] .. if Monte-Carlo programs would play infinitestrong

2006-11-27 Thread Jim O'Flaherty, Jr.


Don (and others),



Depending upon your definition of God, I think most of the God
conversation is kind of silly.



Given He is omnipotent, he has the ability to alter one of His created entities
such that it is not possible to beat Him PRIOR to casting His reply as
white.  The alteration could be as subtle as changing the active potential
on some sub-set of neurons in his opponents brain or as acute as creating deep
anxiety within his opponent's psyche by being so gargantuan in physical
presence.  And talk about self-esteem.  Hard to top God's opinion of
Himself give you are one of His creations.



Give He is omniscient, he has no need for generating confusion for His
opponent.  He already knows his opponents weakness, how it will manifest
and why it will do so.  That's assuming an omniscient being has any
interest in casting a stone in the first place, something very
difficult to imagine in any sense of the meaning of the words.



Given he is omnipresent, he is has/is/will be in a part of the universe where an
animation of the game about to be played is already playing out to completion,
so he can see how it ends before it begins (a slight lean on his omniscience
here).  Better, the game he is watching is on a board made of harp strings
and with the stones represented by fairies and unicorns.  Hey!  When
your God, you get to make up all sorts of crazy shite.



Finally, what is an objectively best move?  How would one measure
it?  It's as if there was some God knowable state transition
diagram (STD) describing an starting go board where the entry points to the STD
(OMG, the sexual references here abound) mostly show black to win.  So of
that set of initial black moves that perfectly state transition into wins for
black, which is objectively superior to the other?  The question itself is
poorly framed?  The moves are all peers.  None is superior to the
other win in n moves candidates, even if their n's vary.  The
n's only matter if there is some higher value placed on minimizing the number
of moves from start to finish.  Give He is timeless, the length of game,
hence the value of n, is not meaningful.



Now, if God had a younger brother who liked to play Go...none of what I said
above means anythingwhich is still true even if He doesn't. (a nod to your
logic dialog from the other day, Don)





Jim




- Original Message 
From: Don Dailey [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Monday, November 27, 2006 11:59:30 AM
Subject: Re: [computer-go] .. if Monte-Carlo programs would play infinitestrong

A good point to consider - is God actively trying to confuse his
opponent and complicate things, or is he simply playing objectively best
moves?

- Don

On Mon, 2006-11-27 at 07:39 -0800, steve uurtamo wrote:
  wow.  i thought that there were at least two
  stones worth of slack in the opening, and another
  two in ko fighting.  :)
  
  Seems unlikely.  I can't imagine two competent
  players, say 1p or 
  better, coming out of the opening with one of them
  having a two-stone 
  lead.
 
 one of them is not a competent 1p.  one of them
 is a computer with knowledge of the end result
 of all possible game trees (my understanding of
 the definition of a god player).
 
 it could, for instance, create an opening whose
 branches are so complicated that W (or B) was
 forced to take small gains territorially, but
 lose, say, 20 pts. by the midgame.
 
  And, the right to win all ko fights without
  having to fight them 
  is only worth half a stone.
 
 uh, that depends upon what the kos are for.
 
 s.
 
 
  
 
 Sponsored Link
 
 $420k for $1,399/mo. 
 Think You Pay Too Much For Your Mortgage? 
 Find Out! www.LowerMyBills.com/lre
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/




___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/