Skip to search.

Breaking News Visit Yahoo! News for the latest.

×Close this window

abalone_prog · Abalone

The Yahoo! Groups Product Blog

Check it out!

Group Information

? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Messages

Advanced
Messages Help
Messages 60 - 89 of 96   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#60 From: abalone_prog@yahoogroups.com
Date: Tue May 2, 2006 2:19 am
Subject: Poll results for abalone_prog
abalone_prog@yahoogroups.com
Send Email Send Email
 
The following abalone_prog poll is now closed.  Here are the
final results:


POLL QUESTION: Do you plan to participate in the 2006 Olympics?

CHOICES AND RESULTS
- Yes, 0 votes, 0.00%
- Maybe, 2 votes, 50.00%
- No, 2 votes, 50.00%

INDIVIDUAL VOTES
- Yes
- Maybe
      - peer.d.sommerlund@...
      - tino.werner@...
- No
      - david.malek@...
      - squalydingo@...


For more information about this group, please visit
http://groups.yahoo.com/group/abalone_prog

For help with Yahoo! Groups, please visit
http://help.yahoo.com/help/us/groups/

#61 From: "icyclemort" <Sebastian.Mort@...>
Date: Sun May 14, 2006 2:00 pm
Subject: I am new here and full of questions
icyclemort
Send Email Send Email
 
Hello all!


A quick introduction:

I am new to the field of Abalone programming.

Nevertheless, my goal is clear, I want to create an Abalone engine
superior to Aba-Pro (mid-term) and possibly (hard to judge how
difficult it is) make it equal or even superior to the cream of human
players(long term).

I also want to provide a GUI that'll include a lot more powerful tools
for analysis and game/database management.

To be honest, Abalone programming as of now seems to be a rather loose
field, pursued without the required professional approach.
I've got a lot of chess programming experience, and I am very
confident that I'll be able to deliver a GUI/engine package that is
superior to what is currently available.

I am able to reach higher search depths than current Abalone progs (10
ply I was told in case of Aba-Pro).

Positionally, I've got a lof of ideas that I'll try and see if they
work as well as I hope to.

So, now you're informed about my lofty goals. ;


--- GUI/engine/interface ---


My engine is now up and running fine, although it is still lacking a
lot of basic search algorithm enhancements and Abalone knowledge, but
both will come...

I am still working on the GUI, it'll include a lot more stuff than
current Ablone GUI's. It'll include a lot of stuff that should be
interesting for Abalone players and programmers alike. Analysis Modes,
game/database management, engine matches/tournaments, patzer/reduced
strength computer modes and a lot of interesting stuff that has not
yet made into a single abalone GUI (think chess and chessbase).

Engine and GUI are seperated programs and communicate through an
interface that is shamelessly based upon the Universal Chess Interface
(UCI). I'll publish the sepecification along with the GUI, so if
anybody is interested they can then program only an engine and rely
upon an existing and powerful GUI. That will also help to make better
comparisons between engines (automatic and easy to organize engine
matches and tournaments). It should increase the competitve side of
Abalone programming and hopefully fuel the field with more enthusiasm
and creativity...


--- questions ---

What i noted most about Abalone (in contrast to chess) is the lack of
information even regarding such simple things as rules/notation.

I am currently a bit baffled by Abalone notation and some rules, and
I'd like to clarify those before I move on.

--- rules ---

Rules about movement and win conditions are simple and clear. Perfect.


But I am not so sure about repetition rules. Is the repetition of a
position allowed to happen or is there some rule forbidding it or
deciding in favor of a draw/or one of the players?
If there is no such rule, how are infinite repetitions (nobody willing
to deviate from a position; or even positions where everything but the
a repetition would wreck one side's position) dealt with??


What about the length of a game, is there some kind of established
maximum number of moves (e.g. without a single lost stone) after which
a game is aborted in some kind of way?


--- notation ---

Regarding the board/fields, I follow the Aba-Pro way of doing it.
(That is, the interface specification will; the GUI is customizable
and supports Netablone board noatition)

a1 is bottom/left
i9 is top/right


inline moves and pushes are recorded as following:

a1b2c3>b2c3d4 = a1b2


broadside moves are a bit troubling, because very different notations
seem to be in use:

a1b2c3>b1c2d3

is recorded as:
(1) = a1c3b1 (makes sense to me)
(2) = c3a1d3 (the same but other direction)
(3) = a1c3d3 (less intuitive, IMO)
(4) = c3a1b1 (same as above the other way round)

(1) and (2) are FromFirst/FromLast/ToFirst
(3) and (4) are FromFirst/FromLast/ToLast

I am strongly leaning towards (1) and (2) but would like to hear
recommendations.

Regarding the difference between (1)/(3) and (2)/(4), it is the
question of from where to start counting the stones.
I've read suggestions that the first stone should be the one most
closely to the bottom or the top of the field (both seem to be in use).

Never have I read a suggestion of how to record a move like
(c3c4c5>d3d4d5) where the issue would have to be decided upon a
left/right criteria.

Is there a style that is more commonly used?

BTW, I despise an ambigious style. The interface specification will
certainly not allow more than one way to handle it.

(The GUI will though, there you should and will be able to choose any
kind of notation you wish to, I might even enable custom-build notations.)

So that is the notation issue, thx for reading my rant.


--- Aba-Pro ---

A completely different issue. I have tried to get my hands on Aba-Pro.
But the website given seems to be dead. I am close to calling the
faculty in Graz directly.
Is there currently any way to buy/order Aba-Pro?


--- finishing ---


So, I hope somebody will answer my questions regarding rules and notation.
Don't expect GUI/engine to appear before the end of july/august.

Happy abalone programming!


BTW, if somebody is interested in the engine/GUI concept and might
want to program such an engine, I'd advise to contact me by e-mail
(Sebastian.Leibnitz{a} googlemail . com)


Regards, and bye.

#62 From: "peer_sommerlund" <peer.d.sommerlund@...>
Date: Mon May 15, 2006 7:58 am
Subject: Re: I am new here and full of questions
peer_sommerlund
Send Email Send Email
 
Hi Sebastian, and welcome.

Good to hear about your ambitions, we will do what we can to help you
so don't hestiate to use this list.


--- In abalone_prog@yahoogroups.com, "icyclemort" <Sebastian.Mort@...>
wrote:
>
>
> Nevertheless, my goal is clear, I want to create an Abalone engine
> superior to Aba-Pro (mid-term) and possibly (hard to judge how
> difficult it is) make it equal or even superior to the cream of human
> players(long term).

Although Aba-Pro is the official computer champion, the program "My
Lovely Abalone" by David Malek are probably stronger. A windows binary
can be downloaded for free from http://www.mogwai.lunarpages.com/lovely/

> I also want to provide a GUI that'll include a lot more powerful tools
> for analysis and game/database management.

Great! Could you give us some hints as to how we can access your work?
Will it be open source? Free download w/o source? Will it be possible
to buy the program?

> Positionally, I've got a lof of ideas that I'll try and see if they
> work as well as I hope to.

If you are not afraid of competition, you could try to share the ideas
here. At least during your entry to the field of Abalone, we may be
able to save you from the mistakes we have made.



> --- GUI/engine/interface ---
>
> Engine and GUI are seperated programs and communicate through an
> interface that is shamelessly based upon the Universal Chess Interface
> (UCI). I'll publish the sepecification along with the GUI, so if
> anybody is interested they can then program only an engine and rely
> upon an existing and powerful GUI. That will also help to make better
> comparisons between engines (automatic and easy to organize engine
> matches and tournaments). It should increase the competitve side of
> Abalone programming and hopefully fuel the field with more enthusiasm
> and creativity...

This is an excellent idea. I have myself worked on a specification
that is a mix of UCI and WinBoard, but as you have working code, your
specification are probably more mature. It would be great if we could
have one (not two) well documented protocol for this purpose. David
has also worked on this, but his protocol requires COM and thus is
Windows only. I have not seen a specification of his protocol, but
given that we work on a unified protocol it would be nice to mix his
and your work in the specification. (i.e. does David's protocol
contain stuff that your protocol lacks or vice versa)

> --- rules ---
>
> But I am not so sure about repetition rules. Is the repetition of a
> position allowed to happen or is there some rule forbidding it or
> deciding in favor of a draw/or one of the players?

Alas, Abalone desperately needs the 50-move rule from chess. When
beginning from the classic strarting position games are often drawish,
and the solution has been to have a referee that penalises players for
playing too passive!! A most unsatisfying solution.

I would urge the entire Abalone community to implement the 50-move
rule, and I suggest that any abalone program implements it (but makes
it possible to disable it). In chess the rule states 50 moves without
a piece taken or a pawn moved results in a draw. For Abalone it should
be 50 moves without a piece taken (pushed out) results in a draw.

The 1993 Waterloo computer competition disallowed repetition. This is
also a solution, but too hard to verify in human-human games.

> What about the length of a game, is there some kind of established
> maximum number of moves (e.g. without a single lost stone) after which
> a game is aborted in some kind of way?

no, but a 50-move rule would effective limit it to 11*50 moves.


> --- notation ---

Have you read
http://148009.aceboard.net/148009-512-179-0-Some-Elements-Programming.htm

I have proposed a simpler notation at
http://90214.aceboard.net/90214-2318-15375-0-Move-notation.htm
>
> --- Aba-Pro ---
>
> A completely different issue. I have tried to get my hands on Aba-Pro.
> But the website given seems to be dead. I am close to calling the
> faculty in Graz directly.
> Is there currently any way to buy/order Aba-Pro?

The website is down and Tino has left the university. Try mailing Tino
directly. He is on this list. Tino, can you hear us? :-)


> BTW, if somebody is interested in the engine/GUI concept and might
> want to program such an engine, I'd advise to contact me by e-mail
> (Sebastian.Leibnitz{a} googlemail . com)

No problem, but since the discussion might interest others why not do
it here?



Regards,
Peer Sommerlund

#63 From: "icyclemort" <Sebastian.Mort@...>
Date: Mon May 15, 2006 1:06 pm
Subject: Re: I am new here and full of questions
icyclemort
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, "peer_sommerlund"
<peer.d.sommerlund@...> wrote:
>
> Hi Sebastian, and welcome.
>
> Good to hear about your ambitions, we will do what we can to help you
> so don't hestiate to use this list.

I will not, though it seems to be rather small at the moment... ;)


> Although Aba-Pro is the official computer champion, the program "My
> Lovely Abalone" by David Malek are probably stronger. A windows binary
> can be downloaded for free from http://www.mogwai.lunarpages.com/lovely/

I already found it after posting my message (too impatient, i am).
Haven't got it running yet, as the automatic setup is not able to
handle proxy servers to access the internet.
I'll get the necessary packages by hand and look very closely.

And, btw, good for Abalone that the field is moving. :)


> > I also want to provide a GUI that'll include a lot more powerful tools
> > for analysis and game/database management.
>
> Great! Could you give us some hints as to how we can access your work?
> Will it be open source? Free download w/o source? Will it be possible
> to buy the program?

It will not be open source. And you'd probably not be very pleased if
it were, because the GUI is written in Delphi/Object Pascal. Delphi is
well suited for RAD, but i suspect that I'd find few volunteers to
help with coding...
If there are Delphi programmers out there, who'd like to help me, I'd
perhaps reappraise my decision.
I've not yet decided upon the free-/shareware issue. Perhaps there
will be two versions. It will probably depend upon the work I'll put
into it and the progress that I make.
All versions under all circumstances will be open and accessible for
engines by other people. There will never be any kind of bias or
exclusive feature only  for my engine.


> > Positionally, I've got a lof of ideas that I'll try and see if they
> > work as well as I hope to.
>
> If you are not afraid of competition, you could try to share the ideas
> here. At least during your entry to the field of Abalone, we may be
> able to save you from the mistakes we have made.

I will do so.
Regarding positional evaluation, many ideas might not be easily used
by other engines, though.
Especially positionaltly algorithms are heavily dependent on the
engine framework, especially the chosen methods of board representation.
Bitboard engines can do eval-stuff that other engines will never be
able to do without a major slowdown.
Engines with a one-dimensonal-array and pregenerated data-tables will
also have different do's and dont's for static eval than engines with
a tri-dimensional board representation, which should be able to
correctly access hexagon field relations...

> > --- GUI/engine/interface ---
> >
> > Engine and GUI are seperated programs and communicate through an
> > interface that is shamelessly based upon the Universal Chess Interface
> > (UCI). I'll publish the sepecification along with the GUI, so if
> > anybody is interested they can then program only an engine and rely
> > upon an existing and powerful GUI. That will also help to make better
> > comparisons between engines (automatic and easy to organize engine
> > matches and tournaments). It should increase the competitve side of
> > Abalone programming and hopefully fuel the field with more enthusiasm
> > and creativity...
>
> This is an excellent idea. I have myself worked on a specification
> that is a mix of UCI and WinBoard, but as you have working code, your
> specification are probably more mature. It would be great if we could
> have one (not two) well documented protocol for this purpose. David
> has also worked on this, but his protocol requires COM and thus is
> Windows only. I have not seen a specification of his protocol, but
> given that we work on a unified protocol it would be nice to mix his
> and your work in the specification. (i.e. does David's protocol
> contain stuff that your protocol lacks or vice versa)

Ughh, COM? :0  Sorry David for my lack of subtetly. I've once done
inter process communication with COM. Even leaving aside the
portability issue it is not your most easy to code IPC. It would
probably scare off a lot of people interested in using an open interface.
I very much prefer the UCI/winboard way of doing it. It is very easy
to use for engine programmers (everbody can deal with standard in- and
output in console applications, no?)

Regarding our sharing of protocolls and subsequent discussion, I am
all for it. :)
I'll probably whip up an alpha version of my Universal Abalone
Interface (UAI) ;p very soon. I'll post it here for discussion within
the week.

> > --- rules ---
> >
> > But I am not so sure about repetition rules. Is the repetition of a
> > position allowed to happen or is there some rule forbidding it or
> > deciding in favor of a draw/or one of the players?
>
> Alas, Abalone desperately needs the 50-move rule from chess. When
> beginning from the classic strarting position games are often drawish,
> and the solution has been to have a referee that penalises players for
> playing too passive!! A most unsatisfying solution.
>
> I would urge the entire Abalone community to implement the 50-move
> rule, and I suggest that any abalone program implements it (but makes
> it possible to disable it). In chess the rule states 50 moves without
> a piece taken or a pawn moved results in a draw. For Abalone it should
> be 50 moves without a piece taken (pushed out) results in a draw.

> The 1993 Waterloo computer competition disallowed repetition. This is
> also a solution, but too hard to verify in human-human games.

The 50-move rule is rather an issue for my next question (dealing with
  not ending games).
With repetion I was solely refering to a (probably) infinite
repetition of moves, where the same board position is reached over and
over again. What happens in the Abalone Comuter Olympiads if two
engines repeat over and over again?
Which result is awarded?


> > What about the length of a game, is there some kind of established
> > maximum number of moves (e.g. without a single lost stone) after which
> > a game is aborted in some kind of way?
>
> no, but a 50-move rule would effective limit it to 11*50 moves.

Yes, I think a 50-move rule would be an effective means of
establishing an upper bound to boredom. And if you are referring to 50
moves=100 ply, I'd also think that is not too short a frame.
I'll probably do so. (and make it switchable and a featured option of
the interface)


> > --- notation ---
>
> Have you read
>
http://148009.aceboard.net/148009-512-179-0-Some-Elements-Programming.htm
>
> I have proposed a simpler notation at
> http://90214.aceboard.net/90214-2318-15375-0-Move-notation.htm

The first didn't contain information about broadside-move-notation,
which is the problem.
The second one did, though.
I am not sure what your simpler notation is, but if it was the
FromFirst>ToLast, then I have to dissappoint you.
That is ambigious and can refer to two distinct broadside move
(2stones and 3 stones in 60° rotated directions).

An example from the standard starting position:

"c3d5" could encode two broadside moves:
"c3c4c5>d3d4d5" and "c3c4>d4d5"

It would only be unambigious if you add the information wheather it is
a two- or three-stone move.


I still consider the broadside-move-notation issue problematic and as
it is fundamental for a common (if we want to) interface, we should
try to find a solution that is both human-readable and unambigious
(preferably both ways; notation> 1 move is a must, but move>1 notation
is also preferable)


> > --- Aba-Pro ---
> >
> > A completely different issue. I have tried to get my hands on Aba-Pro.
> > But the website given seems to be dead. I am close to calling the
> > faculty in Graz directly.
> > Is there currently any way to buy/order Aba-Pro?
>
> The website is down and Tino has left the university. Try mailing Tino
> directly. He is on this list. Tino, can you hear us? :-)


I will, thank you.


> > BTW, if somebody is interested in the engine/GUI concept and might
> > want to program such an engine, I'd advise to contact me by e-mail
> > (Sebastian.Leibnitz{a} googlemail . com)
>
> No problem, but since the discussion might interest others why not do
> it here?


I didn't expect the interest, I'll make it public.
How best to upload a *.txt file here?


Regards,
Sebastian Leibnitz.


PS:
Why are messages moderated? It doesnt seem to be group suffering under
high traffic and it slows down communication...

#64 From: "peer_sommerlund" <peer.d.sommerlund@...>
Date: Tue May 16, 2006 7:18 am
Subject: Re: Why is messages moderated
peer_sommerlund
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, "icyclemort" <Sebastian.Mort@...>
wrote:
>
> Why are messages moderated? It doesnt seem to be group suffering under
> high traffic and it slows down communication...

Only the first message you post is moderated. This is to prevent
spam-bots from creating a new member and posting spam, which have
previously been a problem.

Your second, third, etc. messages are not moderated.

#65 From: "peer_sommerlund" <peer.d.sommerlund@...>
Date: Wed May 17, 2006 6:49 am
Subject: Re: I am new here and full of questions
peer_sommerlund
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, "icyclemort" <Sebastian.Mort@...>
wrote:
>
> It will not be open source. And you'd probably not be very pleased if
> it were, because the GUI is written in Delphi/Object Pascal. Delphi is
> well suited for RAD, but i suspect that I'd find few volunteers to
> help with coding...
> If there are Delphi programmers out there, who'd like to help me, I'd
> perhaps reappraise my decision.

Well, my first Abalone implementation back in 1997 was in Delphi 3,
and judging from the replies to
http://groups.yahoo.com/group/abalone_prog/surveys?id=12181117 several
of the members here are old enough to know Pascal.

Personally, I switched to C++ using the GUI library
http://www.wxwidgets.org and the http://www.codeblocks.org IDE to make
my program crossplatform (it should work on Windows, Linux, Mac).
Converting the code is a manuel process, but it is not that hard.



> What happens in the Abalone Comuter Olympiads if two
> engines repeat over and over again?
> Which result is awarded?

The games are played with a 30 minute time limit for the entire game,
so one of the players will loose. See
http://www.cs.unimaas.nl/Olympiad2003/rules.html#Default%20Conditions



> > > --- notation ---
> >
> > http://90214.aceboard.net/90214-2318-15375-0-Move-notation.htm
>
> I am not sure what your simpler notation is, but if it was the
> FromFirst>ToLast, then I have to dissappoint you.
> That is ambigious and can refer to two distinct broadside move
> (2stones and 3 stones in 60° rotated directions).
>
> An example from the standard starting position:
>
> "c3d5" could encode two broadside moves:
> "c3c4c5>d3d4d5" and "c3c4>d4d5"
>
> It would only be unambigious if you add the information wheather it is
> a two- or three-stone move.

It is unique: c3d5 only refers to c3c4>d4d5. To encode the broadside
move c3c4c5>d3d4d5 you would have to write c5d3. This is because the
number of marbles moved must correspond to the manhattan distance
between FromFirst and ToLast. Quoting the link above: "For inline
moves this is obvious how to interpret the move. For broadside moves
it is not obvious that this notation defines a move. The notation is
made unique by requiring that the number of steps between FromFist and
ToLast must equal number of marbles moved."



> > > BTW, if somebody is interested in the engine/GUI concept and might
> > > want to program such an engine, I'd advise to contact me by e-mail
> > > (Sebastian.Leibnitz{a} googlemail . com)
> >
> > No problem, but since the discussion might interest others why not do
> > it here?
>
> I didn't expect the interest, I'll make it public.
> How best to upload a *.txt file here?

In the files section at http://groups.yahoo.com/group/abalone_prog/files/

#66 From: "icyclemort" <Sebastian.Mort@...>
Date: Thu May 18, 2006 4:21 pm
Subject: Re: I am new here and full of questions
icyclemort
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, "peer_sommerlund"
<peer.d.sommerlund@...> wrote:

> Well, my first Abalone implementation back in 1997 was in Delphi 3,
> and judging from the replies to
> http://groups.yahoo.com/group/abalone_prog/surveys?id=12181117 several
> of the members here are old enough to know Pascal.
>
> Personally, I switched to C++ using the GUI library
> http://www.wxwidgets.org and the http://www.codeblocks.org IDE to make
> my program crossplatform (it should work on Windows, Linux, Mac).
> Converting the code is a manuel process, but it is not that hard.

I probably won't convert my GUI to C++.
I am far too efficient using Delphi. I could probably build a text
editor blindfolded (well, maybe not...)

I'll look into the license issues. I don't yet know if i am even able
to release my Delphi code. (it's a personal editon license...)
Ah, the hassles of proprietary licenses.


> > What happens in the Abalone Comuter Olympiads if two
> > engines repeat over and over again?
> > Which result is awarded?
>
> The games are played with a 30 minute time limit for the entire game,
> so one of the players will loose. See
> http://www.cs.unimaas.nl/Olympiad2003/rules.html#Default%20Conditions

:0

Quite an arbitrary solution, no?


> > I am not sure what your simpler notation is, but if it was the
> > FromFirst>ToLast, then I have to dissappoint you.
> > That is ambigious and can refer to two distinct broadside move
> > (2stones and 3 stones in 60� rotated directions).
> >
> > An example from the standard starting position:
> >
> > "c3d5" could encode two broadside moves:
> > "c3c4c5>d3d4d5" and "c3c4>d4d5"
> >
> > It would only be unambigious if you add the information wheather it is
> > a two- or three-stone move.
>
> It is unique: c3d5 only refers to c3c4>d4d5. To encode the broadside
> move c3c4c5>d3d4d5 you would have to write c5d3. This is because the
> number of marbles moved must correspond to the manhattan distance
> between FromFirst and ToLast. Quoting the link above: "For inline
> moves this is obvious how to interpret the move. For broadside moves
> it is not obvious that this notation defines a move. The notation is
> made unique by requiring that the number of steps between FromFist and
> ToLast must equal number of marbles moved."

Yes, I see it.

Quite ingenious.

It's not that easy to parse, though. (not too complicated either, but
the other solutions are more simple)
But for engine-GUI communication, this looks quite interesting.


One would still need a definiton about choosing FromFirst, though.
c3c4>d4d5 could be both: c3d5 and c4d3.

I am not so sure about confronting humans with it. It's very easy to
have a move in mind and figure out the notation, but the other way
round it's not immediately obvious (in the sense of figuring out the
move almost instantly).
I think it would take some time until it gets intuitive.


Still, I'll probably follow your lead there. I'll include it in my
GUI/engine interface spec...

Do you plan on using it for your game format?



Regards,
Sebastian Leibnitz.

#67 From: david.malek@...
Date: Fri May 19, 2006 2:25 am
Subject: Re: I am new here and full of questions
mogwaifrance
Send Email Send Email
 
Hi Sébastian,

Welcome to the Abalone world :)

>Engines
Aba-pro is a powerful engine, I think Tino has done a very impressive work. I
took me ages to beat this engine with MLA. I'm sure abapro is faster in node
evaluation than MLA.

> I am able to reach higher search depths than current Abalone progs (10
> ply I was told in case of Aba-Pro).
Exploring the game, and paticulary the tree cutting issues, legal moves
generation, position evaluation will lead you to the max depth you'll be able
to reach lol (for example, ProbCut doesnt seem to work and Aba-pro's heuristic
has been proven wrong in its expansion strategy by MLA is some cases, other
example : bitboards seem to lead nowhere).

> field, pursued without the required professional approach.
Lol, do not underestimate Peer, Tino and others :) Particularly their knowledge
of game programming (for both search and evaluation lol).

> I also want to provide a GUI that'll include a lot more powerful tools
> for analysis and game/database management.
There is a game file format in MLA, and some tools (like a Macromedia Flash game
player for your web pages), feel free to contact me for further info. It's the
same concerning API/engine communication, Peer is also using the AbNet
protocol.

> What i noted most about Abalone (in contrast to chess) is the lack of
> information even regarding such simple things as rules/notation.
Rules and notation are around, MLA allows both notations. To me, theoretical
knowledge of the game is an important issue. From the opening book automatic
generation work i've done so far (no yet embedded in my engine) this is a
tricky issue. But knowledge generation still looks possible to me.

Note that my MLA work is in standby for the time being, these days, i'm more
focused on my girlfriend, my job and vacations (i'm back from mexico today and
will run to kenya in july).

Good luck, build competition to Nacre, Abapro and MLA :) Feel free to share your
ideas, ask for any info / litterature that could help you.

Promise : If you beat MLA i'll put my hands in the engine again lol. 2.5 is the
current version, if you beat it. 1.8 is the one to beat, it's the won that won
against abapro.

David.







Selon icyclemort <Sebastian.Mort@...>:

> Hello all!
>
>
> A quick introduction:
>
> I am new to the field of Abalone programming.
>
> Nevertheless, my goal is clear, I want to create an Abalone engine
> superior to Aba-Pro (mid-term) and possibly (hard to judge how
> difficult it is) make it equal or even superior to the cream of human
> players(long term).
>
> I also want to provide a GUI that'll include a lot more powerful tools
> for analysis and game/database management.
>
> To be honest, Abalone programming as of now seems to be a rather loose
> field, pursued without the required professional approach.
> I've got a lot of chess programming experience, and I am very
> confident that I'll be able to deliver a GUI/engine package that is
> superior to what is currently available.
>
> I am able to reach higher search depths than current Abalone progs (10
> ply I was told in case of Aba-Pro).
>
> Positionally, I've got a lof of ideas that I'll try and see if they
> work as well as I hope to.
>
> So, now you're informed about my lofty goals. ;
>
>
> --- GUI/engine/interface ---
>
>
> My engine is now up and running fine, although it is still lacking a
> lot of basic search algorithm enhancements and Abalone knowledge, but
> both will come...
>
> I am still working on the GUI, it'll include a lot more stuff than
> current Ablone GUI's. It'll include a lot of stuff that should be
> interesting for Abalone players and programmers alike. Analysis Modes,
> game/database management, engine matches/tournaments, patzer/reduced
> strength computer modes and a lot of interesting stuff that has not
> yet made into a single abalone GUI (think chess and chessbase).
>
> Engine and GUI are seperated programs and communicate through an
> interface that is shamelessly based upon the Universal Chess Interface
> (UCI). I'll publish the sepecification along with the GUI, so if
> anybody is interested they can then program only an engine and rely
> upon an existing and powerful GUI. That will also help to make better
> comparisons between engines (automatic and easy to organize engine
> matches and tournaments). It should increase the competitve side of
> Abalone programming and hopefully fuel the field with more enthusiasm
> and creativity...
>
>
> --- questions ---
>
> What i noted most about Abalone (in contrast to chess) is the lack of
> information even regarding such simple things as rules/notation.
>
> I am currently a bit baffled by Abalone notation and some rules, and
> I'd like to clarify those before I move on.
>
> --- rules ---
>
> Rules about movement and win conditions are simple and clear. Perfect.
>
>
> But I am not so sure about repetition rules. Is the repetition of a
> position allowed to happen or is there some rule forbidding it or
> deciding in favor of a draw/or one of the players?
> If there is no such rule, how are infinite repetitions (nobody willing
> to deviate from a position; or even positions where everything but the
> a repetition would wreck one side's position) dealt with??
>
>
> What about the length of a game, is there some kind of established
> maximum number of moves (e.g. without a single lost stone) after which
> a game is aborted in some kind of way?
>
>
> --- notation ---
>
> Regarding the board/fields, I follow the Aba-Pro way of doing it.
> (That is, the interface specification will; the GUI is customizable
> and supports Netablone board noatition)
>
> a1 is bottom/left
> i9 is top/right
>
>
> inline moves and pushes are recorded as following:
>
> a1b2c3>b2c3d4 = a1b2
>
>
> broadside moves are a bit troubling, because very different notations
> seem to be in use:
>
> a1b2c3>b1c2d3
>
> is recorded as:
> (1) = a1c3b1 (makes sense to me)
> (2) = c3a1d3 (the same but other direction)
> (3) = a1c3d3 (less intuitive, IMO)
> (4) = c3a1b1 (same as above the other way round)
>
> (1) and (2) are FromFirst/FromLast/ToFirst
> (3) and (4) are FromFirst/FromLast/ToLast
>
> I am strongly leaning towards (1) and (2) but would like to hear
> recommendations.
>
> Regarding the difference between (1)/(3) and (2)/(4), it is the
> question of from where to start counting the stones.
> I've read suggestions that the first stone should be the one most
> closely to the bottom or the top of the field (both seem to be in use).
>
> Never have I read a suggestion of how to record a move like
> (c3c4c5>d3d4d5) where the issue would have to be decided upon a
> left/right criteria.
>
> Is there a style that is more commonly used?
>
> BTW, I despise an ambigious style. The interface specification will
> certainly not allow more than one way to handle it.
>
> (The GUI will though, there you should and will be able to choose any
> kind of notation you wish to, I might even enable custom-build notations.)
>
> So that is the notation issue, thx for reading my rant.
>
>
> --- Aba-Pro ---
>
> A completely different issue. I have tried to get my hands on Aba-Pro.
> But the website given seems to be dead. I am close to calling the
> faculty in Graz directly.
> Is there currently any way to buy/order Aba-Pro?
>
>
> --- finishing ---
>
>
> So, I hope somebody will answer my questions regarding rules and notation.
> Don't expect GUI/engine to appear before the end of july/august.
>
> Happy abalone programming!
>
>
> BTW, if somebody is interested in the engine/GUI concept and might
> want to program such an engine, I'd advise to contact me by e-mail
> (Sebastian.Leibnitz{a} googlemail . com)
>
>
> Regards, and bye.
>
>
>
>
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>

#68 From: "icyclemort" <Sebastian.Mort@...>
Date: Fri May 19, 2006 5:07 pm
Subject: Re: I am new here and full of questions
icyclemort
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, david.malek@... wrote:
>
> Hi Sébastian,
>
> Welcome to the Abalone world :)

Thx :)


> >Engines
> Aba-pro is a powerful engine, I think Tino has done a very
impressive work. I
> took me ages to beat this engine with MLA. I'm sure abapro is faster
in node
> evaluation than MLA.

I'll look at both. I still havn't asked Tino for AbaPro, but I'll do
so once I find the time.


> > I am able to reach higher search depths than current Abalone progs (10
> > ply I was told in case of Aba-Pro).
> Exploring the game, and paticulary the tree cutting issues, legal moves
> generation, position evaluation will lead you to the max depth
you'll be able
> to reach lol (for example, ProbCut doesnt seem to work and Aba-pro's
heuristic
> has been proven wrong in its expansion strategy by MLA is some
cases, other
> example : bitboards seem to lead nowhere).

I took a look at bitboards, but I think that - while certainly doable
- they won't give too much of benefit.
IMO, search depths are only substantially influenced by two factors
(taking basics like a fast search algorithm, hash tables, etc. for
granted):
1) the quality of move ordering
2) how to cut/reduce/prune moves/sub-tress that are a waste to be
looked at (or rather: that the benefits of not searching these is
higher than the drawback of an unlikely move missed)


Number 1 is of course a free-lunch exercise, but at some point a
ceiling will be hit with little further possible improvement.
I think that the second route is still not explored as much as it
could be (not even in the chess world). It's of course an exercise in
testing whether a particular reduction/extension or prunging is
benefitial or not...

To put it in my favorite way of thinking, there is no search
depth-ceiling that cannot be reached. But there is a ceiling in nodes
that can be analyzed. The problem always is where to spend those nodes...


> > field, pursued without the required professional approach.
> Lol, do not underestimate Peer, Tino and others :) Particularly
their knowledge
> of game programming (for both search and evaluation lol).

:) Now that i reread that statment it sounds quite arrogant. Wasn't
meant the way you understood it though.
The lack of professional approach didn't refer to the qualitiy of
their/your programming.

It referred to the substantial lack of :
1) specs and agreed upon formats (move-formats,position-formats,etc.)
2) uncontended and unamibgious notation!!
3) unifying GUI's and ability to easily compare and contest engines
4) test-suites (for positional/tactical analysis)
5) rating-lists
6) discontinuity of strong programs

and other such things.
It's quite probably due to the (small) size of the field. But (IMO),
if that could be changed, the whole field would become broader and
better.
It's an issue of how much time is spent once to achieve these results
and how much is saved later on, if once done.

> > I also want to provide a GUI that'll include a lot more powerful tools
> > for analysis and game/database management.
> There is a game file format in MLA, and some tools (like a
Macromedia Flash game
> player for your web pages), feel free to contact me for further
info. It's the
> same concerning API/engine communication, Peer is also using the AbNet
> protocol.

I'll post here soon, regarding GUI/engine communication.


> > What i noted most about Abalone (in contrast to chess) is the lack of
> > information even regarding such simple things as rules/notation.
> Rules and notation are around, MLA allows both notations. To me,
theoretical
> knowledge of the game is an important issue. From the opening book
automatic
> generation work i've done so far (no yet embedded in my engine) this
is a
> tricky issue. But knowledge generation still looks possible to me.


Regarding notation, that ain't an issue for the GUI. You just give the
user the option to use whatever sound or crappy notation the user
wants to use.
It is more of an issue in common protocols, file-formats and the like.
Especially broadside move notation, where I've seen so many variants
that it is hard too keep track of them.


> Note that my MLA work is in standby for the time being, these days,
i'm more
> focused on my girlfriend, my job and vacations (i'm back from mexico
today and
> will run to kenya in july).

:)

> Good luck, build competition to Nacre, Abapro and MLA :) Feel free
to share your
> ideas, ask for any info / litterature that could help you.

I will.
Search algorithms, I'll most likely be able to share a lot of
knowledge, while I might have questions about what has already been
tried in evaluation.

> Promise : If you beat MLA i'll put my hands in the engine again lol.
2.5 is the
> current version, if you beat it. 1.8 is the one to beat, it's the
won that won
> against abapro.
>
> David.

:)
Better remember that promise, ;)


Regards and thx,
Sebastian Leibnitz.

#69 From: "mogwaifrance" <david.malek@...>
Date: Sat Sep 2, 2006 9:50 pm
Subject: i'm programming an abalone game server with AJAX
mogwaifrance
Send Email Send Email
 
i'm now programming an abalone game server with AJAX

find it at http://mogsinteractive.net

click "se connecter" or the UK flag and then "connect"

marbles are moved by drag and drop of a marble onto an adjacent empty
field or onto an adjacent stone of the same colour

i'm only starting lol

#70 From: <peer.d.sommerlund@...>
Date: Mon Sep 4, 2006 8:18 am
Subject: SV: i'm programming an abalone game server with AJAX
peer_sommerlund
Send Email Send Email
 
Cool. How do you do broadside moves?

-----Oprindelig meddelelse-----
Fra: abalone_prog@yahoogroups.com [mailto:abalone_prog@yahoogroups.com] På vegne
af mogwaifrance
Sendt: 2. september 2006 23:50
Til: abalone_prog@yahoogroups.com
Emne: [abalone_prog] i'm programming an abalone game server with AJAX

i'm now programming an abalone game server with AJAX

find it at http://mogsinteractive.net

click "se connecter" or the UK flag and then "connect"

marbles are moved by drag and drop of a marble onto an adjacent empty
field or onto an adjacent stone of the same colour

i'm only starting lol






Yahoo! Groups Links

#71 From: david.malek@...
Date: Mon Sep 4, 2006 5:21 pm
Subject: Re: SV: i'm programming an abalone game server with AJAX
mogwaifrance
Send Email Send Email
 
You cannot (yet)


Mogwai

------------------------------------------------------------
Selon peer.d.sommerlund@...:

> Cool. How do you do broadside moves?
>
> -----Oprindelig meddelelse-----
> Fra: abalone_prog@yahoogroups.com [mailto:abalone_prog@yahoogroups.com] På
> vegne af mogwaifrance
> Sendt: 2. september 2006 23:50
> Til: abalone_prog@yahoogroups.com
> Emne: [abalone_prog] i'm programming an abalone game server with AJAX
>
> i'm now programming an abalone game server with AJAX
>
> find it at http://mogsinteractive.net
>
> click "se connecter" or the UK flag and then "connect"
>
> marbles are moved by drag and drop of a marble onto an adjacent empty
> field or onto an adjacent stone of the same colour
>
> i'm only starting lol
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>
>

#72 From: "mogwaifrance" <david.malek@...>
Date: Mon Dec 4, 2006 8:46 am
Subject: My game server has moved to http://moggames.net
mogwaifrance
Send Email Send Email
 
The server has moved to http://moggames.net

Yes you can enter broadside moves, but move entry ergonomy has
changed drastically. You click on one marble, release the mouse
button, move you mouse to the other marbles to move and then you
move the mouse to the target. Let me know if you encounter any
difficulty.

Since sept 2, i'm significantly enhanced the server with :

- blitz / time limited
- suspending/resuming games
- draw offering
- exotic variants
- a mail system

I'm mostly missing a tournament systam, a player ranking system,
together with news channel.

then i think it'll be ready to be promoted :)

I'm also trying to make MLA as a permanent player, but i'm still
having some tech problems with this.

Once I get enough abalone games in the server database, i'll work on
building an opening book for MLA...

#73 From: "Peer Sommerlund" <peer.d.sommerlund@...>
Date: Mon Dec 4, 2006 9:28 am
Subject: Re: My game server has moved to http://moggames.net
peer_sommerlund
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, "mogwaifrance" <david.malek@...>
wrote:
>
> The server has moved to http://moggames.net
>
> Yes you can enter broadside moves, but move entry ergonomy has
> changed drastically. You click on one marble, release the mouse
> button, move you mouse to the other marbles to move and then you
> move the mouse to the target. Let me know if you encounter any
> difficulty.

:-) I noticed the broadside guestures, see also my post on
http://148009.aceboard.net/148009-512-5872-0-enter-move.htm



> I'm mostly missing a tournament systam, a player ranking system,
> together with news channel.

I suppose this is just a matter of time.
Here are a couple of liks (which I'm sure you already know)
http://en.wikipedia.org/wiki/Round-robin_tournament
http://remi.coulom.free.fr/Bayesian-Elo/



> I'm also trying to make MLA as a permanent player, but i'm still
> having some tech problems with this.

Will you publish the interface or will you perhaps implement abnet?



> Once I get enough abalone games in the server database, i'll work on
> building an opening book for MLA...

Will it be public available? I can understand if the answer is "no"
since you have put quite a lot of work into building the server.

#74 From: "mogwaifrance" <david.malek@...>
Date: Mon Dec 4, 2006 10:50 am
Subject: Re: My game server has moved to http://moggames.net
mogwaifrance
Send Email Send Email
 
I'm working on the ranking system and the tournament system at the
moment ...

A few things from your post :

- making MLA (or nacre) as a permanent online player needs you to
convert your engine to a .NET assembly. This assembly needs to
comply with a specific interface. At the moment, the interface is
too complex to be used by someone else than me, because it includes
benchmarking, returning the 3 top lines and a conversion between the
move data structure used by the server and the move data structure
of my engine lol. Therefore i would need to simplify the API spec so
that you would "only" have to convert nacre as a .NET assembly ...
you would also need me to copy your compiled assembly (.dll) to my
server and integrate it with the engine calling system in my web
services :) If you want to provide such a .NET assembly, i can work
on the spec ...  But only my tech problems with MLA are solved. An
alternative is to define the spec of an engine web service you would
have to comply with. In such a case, you will need to host the
engine on some web site and expose the required web service ... this
would be OS independant ...

- about the games database : this will be made available to the
public for free (on request).
- about the MLA opening book : i'm not sure it'll be available... ;)

david

--- In abalone_prog@yahoogroups.com, "Peer Sommerlund"
<peer.d.sommerlund@...> wrote:
>
> --- In abalone_prog@yahoogroups.com, "mogwaifrance" <david.malek@>
> wrote:
> >
> > The server has moved to http://moggames.net
> >
> > Yes you can enter broadside moves, but move entry ergonomy has
> > changed drastically. You click on one marble, release the mouse
> > button, move you mouse to the other marbles to move and then you
> > move the mouse to the target. Let me know if you encounter any
> > difficulty.
>
> :-) I noticed the broadside guestures, see also my post on
> http://148009.aceboard.net/148009-512-5872-0-enter-move.htm
>
>
>
> > I'm mostly missing a tournament systam, a player ranking system,
> > together with news channel.
>
> I suppose this is just a matter of time.
> Here are a couple of liks (which I'm sure you already know)
> http://en.wikipedia.org/wiki/Round-robin_tournament
> http://remi.coulom.free.fr/Bayesian-Elo/
>
>
>
> > I'm also trying to make MLA as a permanent player, but i'm still
> > having some tech problems with this.
>
> Will you publish the interface or will you perhaps implement abnet?
>
>
>
> > Once I get enough abalone games in the server database, i'll
work on
> > building an opening book for MLA...
>
> Will it be public available? I can understand if the answer is "no"
> since you have put quite a lot of work into building the server.
>

#75 From: "Peer Sommerlund" <peer.d.sommerlund@...>
Date: Mon Dec 4, 2006 12:42 pm
Subject: Robot players on http://moggames.net
peer_sommerlund
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, "mogwaifrance" <david.malek@...>
wrote:
> - making MLA (or nacre) as a permanent online player needs you to
> convert your engine to a .NET assembly.

This is only if the player must run on the same host as the web-server.

> An
> alternative is to define the spec of an engine web service you would
> have to comply with. In such a case, you will need to host the
> engine on some web site and expose the required web service ... this
> would be OS independant ...

This is sort of what I had in mind. However, your AJAX must send the
move to the server somehow. I figured that I could use the same
interface. No need for me to build a web service.

#76 From: david.malek@...
Date: Mon Dec 4, 2006 4:23 pm
Subject: Re: Robot players on http://moggames.net
mogwaifrance
Send Email Send Email
 
Selon Peer Sommerlund <peer.d.sommerlund@...>:

> This is sort of what I had in mind. However, your AJAX must send the
> move to the server somehow. I figured that I could use the same
> interface. No need for me to build a web service.
>
Yeah, it sends the moves by calling a web service :) i.e in our case it's
calling an URL with specific parameters ... like

http://nacre.com/ilovepeer/getmove.asp?move=a1b1

and your web server returns an XML flow giving the answer from your engine.

all you would need is a web server, and a web page that takes the parameters
from the query string in the URL, and returns an XML response. The query string
can be a little more complicated (i'm using a microsoft like web services), but
not that much :) Calling any process on your web server with the protocol you
love is fairly easy. even PHP under Unix and Apache...

btw building a web service is also pretty easy lol.

My idea is definitely not to have nacre running on your PC with some interface
between my AJAX (on the client) and the nacre engine like you usually do with
NetAbalone, i dont want to call some TCP/IP socket protocol (eg abnet). This
would be a lot more complex than simply calling an URL (we are in 2006 lol, no
more 68000 assembly please).

I also want this to comply with both firefox and IE and be pure javascript on
the client (no java, no activeX, no download, no security issue, no popup
blocker and so on). i.e. comply with the tech rules i've set for my server
since oct/sept this year.

david

#77 From: "Peer Sommerlund" <peer.d.sommerlund@...>
Date: Mon Dec 4, 2006 11:17 pm
Subject: Re: Robot players on http://moggames.net
peer_sommerlund
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, david.malek@... wrote:
>
> Selon Peer Sommerlund <peer.d.sommerlund@...>:
>
> > This is sort of what I had in mind. However, your AJAX must send the
> > move to the server somehow. I figured that I could use the same
> > interface. No need for me to build a web service.
> >
> Yeah, it sends the moves by calling a web service :) [...]
>
> My idea is definitely not to have nacre running on your PC with some
interface
> between my AJAX (on the client) and the nacre engine like you
usually do with
> NetAbalone, i dont want to call some TCP/IP socket protocol (eg
abnet). This
> would be a lot more complex than simply calling an URL (we are in
2006 lol, no
> more 68000 assembly please).

LOL, I don't know which is worst: JavaScript or 68000 assembly ;-)
this just shows how old I am, I guess.

But I agree, writing and calling a web service using IIS, Visual
Studio and C# is a breeze. I'll probably use Code::Blocks, C++ and
gSOAP or Axis, though.

So, after a quick dive into your JavaScript, I guess you want me to
use the web service at http://moggames.net/abalone/MiGs.asmx, right?

Even though the operations have nice names like CreateUser and
CreateSession, I still need to figure out how to use them. I could
read through all JavaScript but I would appreciate a few lines on how
to use it. This would save a lot of time :-) Do you have time to write
a few lines on the use of the web service?

#78 From: david.malek@...
Date: Tue Dec 5, 2006 8:37 am
Subject: Re: Re: Robot players on http://moggames.net
mogwaifrance
Send Email Send Email
 
i'm a little confused about  your last message, are you intending to :

- replace my ajax client by nacre and call my web services ?
- create your own web service implementing nacre's engine, this web service
being called by my own web services?

this doesnt seem to be very clear to me ;)

my preference goes to the integration of your engine as a web service/web page
called by my server ... this would :

- make nacre available to everyone even if you are not logged in ...
- would automatically archive the games, provide replay functions and so on ...
- avoid me the publication of a calling spec for my web services .... this spec
would include the authentication process i use and therefore expose the
security of my server to cheaters and hackers :)

if you are ready to write a web service (hosted ... somewhere) or provide some
simple web pages (as described in my previous message) i'll do it for MLA first
and then provide you with a spec of the engine calls.

i think this thread should become private :

david

Selon Peer Sommerlund <peer.d.sommerlund@...>:

> --- In abalone_prog@yahoogroups.com, david.malek@... wrote:
> >
> > Selon Peer Sommerlund <peer.d.sommerlund@...>:
> >
> > > This is sort of what I had in mind. However, your AJAX must send the
> > > move to the server somehow. I figured that I could use the same
> > > interface. No need for me to build a web service.
> > >
> > Yeah, it sends the moves by calling a web service :) [...]
> >
> > My idea is definitely not to have nacre running on your PC with some
> interface
> > between my AJAX (on the client) and the nacre engine like you
> usually do with
> > NetAbalone, i dont want to call some TCP/IP socket protocol (eg
> abnet). This
> > would be a lot more complex than simply calling an URL (we are in
> 2006 lol, no
> > more 68000 assembly please).
>
> LOL, I don't know which is worst: JavaScript or 68000 assembly ;-)
> this just shows how old I am, I guess.
>
> But I agree, writing and calling a web service using IIS, Visual
> Studio and C# is a breeze. I'll probably use Code::Blocks, C++ and
> gSOAP or Axis, though.
>
> So, after a quick dive into your JavaScript, I guess you want me to
> use the web service at http://moggames.net/abalone/MiGs.asmx, right?
>
> Even though the operations have nice names like CreateUser and
> CreateSession, I still need to figure out how to use them. I could
> read through all JavaScript but I would appreciate a few lines on how
> to use it. This would save a lot of time :-) Do you have time to write
> a few lines on the use of the web service?
>
>
>
>
>

#79 From: "loabok" <m.winands@...>
Date: Sat Apr 14, 2007 1:26 pm
Subject: CFP : Abalone at the Computer Olympiad
loabok
Send Email Send Email
 
Amsterdam 2007

From 2007-06-11 to 2007-06-18, Science Park Amsterdam, Amsterdam, The
Netherlands.

The 15th World Computer-Chess Championship and the 12th Computer
Olympiad will be held in Amsterdam, the Netherlands in conjunction
with the Computer Games Workshop 2007 (CGW2007).

IBM, SARA Computing and Networking Services and NCF (Foundation of
National Computing Facilities) are enabling the organization of the
Computer Games Workshop 2007 (CGW2007) (15-17 June 2007), the 15th
World Computer-Chess Championship (WCCC) (11-18 June) and the 12th
Computer Olympiad (CO) (11-18 June) to be held in Amsterdam, The
Netherlands. Location: CGW2007 (The Turing hall - Z011), WCCC
(Eulerzaal – Z009) and Computer Olympiad (Newtonzaal – Z010) , Science
Park Amsterdam, Kruislaan 413, 1098 SJ Amsterdam.

The start of the event will be in conjunction with the official
inauguration of the new Dutch National Supercomputer, which will take
place on June 13. The mayor of Amsterdam, Dr. Job Cohen, will attend
the starting meeting.

Below we mention 28 different games for which a program can be
submitted to the Olympiad.

Abalone
Amazons
Arimaa
Backgammon
Bao
Bridge
Chinese Chess
8x8 Checkers
Clobber
Computational Pool
Connect6
Diplomacy
Dominoes
Dots and Boxes
10x10 Draughts
Gipf
Go
9x9 Go
Hex
Kriegspiel
Lines of Action
6x7 OCTI
9x9 OCTI
Othello
Poker
Renju
Scrabble
Shogi

The game of Renju, claimed to be solved, is still welcome since we
have not seen a fully-operational program on internet that plays
perfectly. Moreover, we are willing to host more games, such as Ataxx,
Dvonn, Mediocrity, Onyx, Tamsk, TwixT and Zèrtz but we do not know of
the existence of adequately playing programs. We are awaiting
suggestions and proposals of programmers before we include them in the
official list given above.

For each game a tournament will take place provided that at least two
programs enter the tournament for that particular game. Gold, Silver
and Bronze medals will be awarded to the leading programs in each
tournament.

The Tournament Director of the WCCC and Computer Olympiad will be:
H.J. van den Herik.

The rules of the WCCC and Computer Olympiad will be soon published.

The entry fees for the WCCC are as follows:

Amateur: € 25
Semi-professional: € 250
Professional: € 500

The entry fees for the other tournaments are as follows:

Amateur: € 25
Semi-professional: € 100
Professional: € 250

A participant is expected to be ICGA member (€ 40).

Deadline early registration: May 21, 2007. Registration after May 21,
2007 will double the entry fee.

"Amateur": programmers who have no commercial interest in their
program, and are not professional game programmers. Applications for
amateur classification must supply information to justify their claim.

"Semi-professional": Any program submitted by an employee or associate
from a games-programming company. The program's name must not be
derived from or similar to a commercial product.

"Professional": A program whose name is the same as or derived from a
commercial product.

http://amsterdam2007.icga.org/

#80 From: "mogwaifrance" <david.malek@...>
Date: Sun May 20, 2007 10:52 pm
Subject: Announcing MLA 3.0
mogwaifrance
Send Email Send Email
 
Yeah! MLA 3.0 just killed MLA 2.5.5 finally i get something new.

I'm not satisfied by the end of the two games, but yes i found
something new for the opening :)

You can replay the games between MLA 2.5 and MLA 3.0 at
http://www.mogwai.lunarpages.com/lovely/

Note the 3.0 is not yet ready for download, i need to fix the end of
game issue

I introduced a new term in the evaluation function, it relates to
patterns found on each line of the board. And it seems to work
amazingly, but wrong weight at some stage lol. Or I'll change the way
i define the opening phase, so that it may last longer and then i
return to the MLA 2.5.5 evaluation that proved to be strong for
middle game. Finding an edge in the opening even with white is
clearly something i'm aiming at :)

Before releasing MLA 3.0 to the general public, it'll go through the
usual "against humans" testing for tuning lol.

David.

#81 From: "Peer Sommerlund" <peso@...>
Date: Mon May 21, 2007 10:37 am
Subject: Re: Announcing MLA 3.0
peer_sommerlund
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, "mogwaifrance" <david.malek@...>
wrote:
>
> Yeah! MLA 3.0 just killed MLA 2.5.5 finally i get something new.

Congratulations! I cannot wait to see your latest creation.

Can you reveal any thoughts behind the line-patterns? Nacre also
examines line-patterns, but you probably found some even better way to
utilize them.

The Nacre patterns test for domination. Think of an 1D abalone game.

Regards,
Peer

#82 From: david.malek@...
Date: Mon May 21, 2007 3:06 pm
Subject: Re: Re: Announcing MLA 3.0
mogwaifrance
Send Email Send Email
 
Hi Peer,

In fact, MLA is already using sumitos (i.e. in line domination).

In this MLA 3.0 test I replaced connectivity (i.e. counting the number of same
colour neighbors around each marble + some undisclosed formula lol) by saying :

- marbles with less than two neighbors are bad (was required after the first
tests)
- the following patterns are good for the side to move (let's say White) :

- B W B (one stone in the middle of others) except B W B B (it's a sumito)
- B W W B (two stones in the middle of others)

Combined with the abapro-like center of mass calculations it makes the 3.0
engine insist on rushing to the center  (as shown by the two games you can
replay with my plash player at http://mogwai.lunparges.com/lovely) during the
opening (more precisely it's rushing to "between the two daisies of the
opponent").

So the opening is enhanced, but connectivity is partly lost, so i need to
reintroduce it in the engine, so that I may have two terms for which i can
adjust the weight for testing :

- connectivity in itself (without the line patterns)
- line patterns

If I succeed in getting the engine to rush, and once the rush is "finished",
return to MLA 2.5 way of doing things, then it might make sense to go to larger
patterns.

      . .
     . . .
      . .

Maybe you know how to recognise patterns of the following size :

      . . .
     . . . .
    . . . . .
     . . . .
      . . .

Dont tell me i need to find a way to do hexagonal bitboards? hmm no ! arg ;)

lol

david

By the way, the max number of moves might be 148, but in fact my formula was
wrong (but not MLA), the max calculation is :

- 6 directions for each of the 14 stones : 6x14
- two directions to go through a line, choice to move two of three stones and 2
directions for move => 8 X 14

i.e. 196 moves. but how to find a more than 148

Selon Peer Sommerlund <peso@...>:

> --- In abalone_prog@yahoogroups.com, "mogwaifrance" <david.malek@...>
> wrote:
> >
> > Yeah! MLA 3.0 just killed MLA 2.5.5 finally i get something new.
>
> Congratulations! I cannot wait to see your latest creation.
>
> Can you reveal any thoughts behind the line-patterns? Nacre also
> examines line-patterns, but you probably found some even better way to
> utilize them.
>
> The Nacre patterns test for domination. Think of an 1D abalone game.
>
> Regards,
> Peer
>
>
>

#83 From: david.malek@...
Date: Tue May 22, 2007 9:19 am
Subject: Re: Pattern matching
mogwaifrance
Send Email Send Email
 
Thanx for all this :)

I still dont understand why my new version of the engine beats the previous one
lol. Each time I slightly change my amendments to the engine, it doesnt win
anymore. Therefore, conceptually, no conclusion so far.

If the board dispays WBWW, searching for WBW , is similar to searching for a
.BWW sumito but earlier in the search tree. It's probably a sumito threat.

By considering this type of sumito threat, i'm probably influencing the horizon
effect too :)

Therefore i'm currently lost ;) We'll wait for the next episode :)

Searching for WBW or WBBW patterns is very similar to performing legal move
generation. I fully implemented legal moves generation with bitboards 6 months
ago (with the same programming language), and it didnt prove to be faster than
the current move generation in MLA (so i gave it up, i might try to use it in
the near future but only if i can use assembly code and prove to be faster).

In MLA, in line move generation is performed as follows :

If the board shows in a given direction something like

BBBWWE (where E means Empty)

let's assume that :

0 means white
1 means black
2 means empty
3 means outside of the board

in BBBWWE, let's ignore the first character, BBWWE can be written

1 1 0 0 2

MLA computes a number (called the move number in my source code) as follows :

(((1 + 4 x 1) x 4 + 0) x 4 + 0) x 4 + 2 = 322

I have an array telling me than 322 is a legal move for black.

To compute the resulting board, i.e. EBBBWW.

322 (for black) is also associated the list of board changes
vector "0 0 1 0 -2":

1 1 0 0 2

added to

0 0 1 0 -2

gives

1 1 1 0 0

I'm pushing a black marble therefore the first position is empty. we get :

2 1 1 1 0 0 i.e. EBBBWW

Note that using bitboards means using XORs and logicial shift to do this (i.e.
recycling as you called it in the previous message). But using bitboards is
slower because i need to build the long integers for each row in each direction
first.

Bitboards would be efficient if i had a way to record a move (i.e. perform it on
the board) using a limited number of XORs and shifts. I havent investigated it
seriously. I should look into chess programming for move recording when using
bitboards ...

But it's true that i havent pushed it to the limit of using only one binary
number for both move generation and move recording and evaluation function. This
is the probably the path i need to follow to enhance "nodes per sec"
drastically.

For each "move number" MLA also knows how many marbles are ejected, pushed,
moved.

But i'm also searching for a faster move generation and a faster center of mass
computation (updating the center of mass of each side after is move is already
performad, but the evaluation function calculates a reference point from the two
centers of mass and then re-calculates the distance of each stone to this
reference point, and it's time consuming lol).

I think i need to look into pattern matching research related to the the "game
of go", I'm sure someone found fast algorithms for pattern matching lol.

I'll also go on working on the amended engine to understand why MLA 3.0 beats
2.5 lol.

plenty of ideas though ;)

David.

Selon Peer Sommerlund <peer.sommerlund@...>:

> With respect to patterns, I have no better idea than a sliding window:
>
> Think of an ordinary 2D grid (easy to translate to hexagonal board)
>
> . . . a
> . . . a
> . . . a
>
> This pattern is a 3x3 pattern. When you slide to the right, you must
> match most of the positions again, only shifted. The only new fields are
> the "a" column.
> If you compute the examined pieces to an integer, you can shift the
> integer and recycle the old fields. For example:
> value = 0;
> for (int i=0; i<9; i++) {
>   value <<= 2; // or *3 if you want to save a few bits
>   value += field[i];
> }
>
> incremental:
> value = old_value << 6;
> for (int i=6; i<9; i++) {
>   value <<= 2; // or *3 if you want to save a few bits
>   value += field[i];
> }
>
> Do a table lookup to find out if the pattern is interesting or not. (or
> simply what value you have assigned to it)
>
> A 7-field circle (radius 1) can hold 3**7 = 2187 < 2**12 values, with 2
> bits pr field: 4**7 = 2**14
> A radius 2 circle can hold 3**19 = 1G162 < 2**31 values. 2 bits: 4**19 =
> 2**48
>
> Radius 1 you can do a direct lookup to see if it was a match, and even
> lookup the shifted value.
> Radius 2 you have to work the other way, using partial matches - or
> split the pattern into 2 or 3 parts where you can perform lookup on each
> of them. If the number of patterns you want to look for is small, this
> can work.
>
> Another way (that also makes it easier to build large patterns) is to
> first do a horizontal translation, then a vertical. You translate every
> series of x fields into a single number representing the pattern of size x
>
> Lets consider the first row (it has 5 fields)
> ABCDE
>
> If you are looking for patterns of size 3, you would compute 3 values:
> ABC, BCD, CDE
> You can easily compute patterns of size 2 at the same time. Do this
> again on rows
> ABC     BCD
> ABCD    BCDE     etc
> BCD     CDE
>
> If you want to use bitboars you can work the other way: For each
> pattern, test it against all possible locations on the board: A complete
> board takes less than 128 bits (2*61 = 122 bits).
>
> The test is simple
> if ((board & shifted_mask) ^ shifted_pattern == 0)
>    // we have a match
>
> .. fast, but the time is O(n) with number of patterns

#84 From: david.malek@...
Date: Tue May 22, 2007 3:27 pm
Subject: Re: Pattern matching
mogwaifrance
Send Email Send Email
 
> In MLA, in line move generation is performed as follows
>> Why add? Why not simply overwrite? It ought to be faster.
True. But adding makes undo a substraction of the same numbers. Also it allowed
me to define ranges for the move number, due to unchanged fields (0 values can
be added to anything). It's probably the reason why it's still performed this
way in MLA lol.

> But i'm also searching for a faster move generation
> I have previously posted a paperon how to do incremental computation of
compactness.
I found this paper long time ago lol, maybe i needed to understand it (gosh i
dont know latex lol i'm a windows guy). I finally converted it to PDF, lol, you
are right again. I'll most probably enhance the speed significantly (evaluation
is about 30% of the time i use).

> With respect to bitboards, I have not found a convincing case for them.
oh yes, finding patterns and handling rotation is documented by the author of
crafty too. your C is interesting. But trying to use the ONLY bitboards for
center of mass computation, move generation, domove/undomove might be hard. Hmm
this would even impact my search ... hmm for MLA 4.0 lol.

>Seriously, though - I would really love to hear more about useful patterns.
Oh yeah, i'll keep you posted, once i've understood why MLA 3.0 wins lol. As it
questions connectivity, connectivity means radius-1 patterns.

So well, i'm all set, i have good leads to increase speed, and probably good
leads to increase strength :)

What else would i need? Hmm maybe a good beer ;)

David.

#85 From: david.malek@...
Date: Tue May 22, 2007 5:00 pm
Subject: Re: Pattern matching
mogwaifrance
Send Email Send Email
 
I looked at the LaTeX formulas, the problem is that i'm not using the manhattan
distance as such. i.e. based on independant x and y when calculating.

I'm using arithmetic distance defined as follows

d(xi,yi,xc,yc) =

if (xi-xc)(yi-yc)>0
  return max (xi-xc,yi-yc)
else
  return abs(xi-xc) + abs(yi-yc)

based on a "c" point, i need to sum for all (xi,yi)

additionnaly, i'm computing integers only, so floor(x) has to be ...
reconsidered.

this doesnt prevent me from finding a solution :) the sum of all d(xi,yi,xc,yc)
can be written s the sum of sums depending on the cases. but it looks
complicated.

except for the calculation of c, i just disclosed the center of mass
calculations of MLA lol.

david

Selon david.malek@...:

>
> > In MLA, in line move generation is performed as follows
> >> Why add? Why not simply overwrite? It ought to be faster.
> True. But adding makes undo a substraction of the same numbers. Also it
> allowed
> me to define ranges for the move number, due to unchanged fields (0 values
> can
> be added to anything). It's probably the reason why it's still performed this
> way in MLA lol.
>
> > But i'm also searching for a faster move generation
> > I have previously posted a paperon how to do incremental computation of
> compactness.
> I found this paper long time ago lol, maybe i needed to understand it (gosh i
> dont know latex lol i'm a windows guy). I finally converted it to PDF, lol,
> you
> are right again. I'll most probably enhance the speed significantly
> (evaluation
> is about 30% of the time i use).
>
> > With respect to bitboards, I have not found a convincing case for them.
> oh yes, finding patterns and handling rotation is documented by the author of
> crafty too. your C is interesting. But trying to use the ONLY bitboards for
> center of mass computation, move generation, domove/undomove might be hard.
> Hmm
> this would even impact my search ... hmm for MLA 4.0 lol.
>
> >Seriously, though - I would really love to hear more about useful patterns.
> Oh yeah, i'll keep you posted, once i've understood why MLA 3.0 wins lol. As
> it
> questions connectivity, connectivity means radius-1 patterns.
>
> So well, i'm all set, i have good leads to increase speed, and probably good
> leads to increase strength :)
>
> What else would i need? Hmm maybe a good beer ;)
>
> David.
>
>

#86 From: "Peer Sommerlund" <peso@...>
Date: Tue May 29, 2007 9:28 am
Subject: Re: Pattern matching
peer_sommerlund
Send Email Send Email
 
--- In abalone_prog@yahoogroups.com, david.malek@... wrote:
>
> I looked at the LaTeX formulas, the problem is that i'm not using
the manhattan
> distance as such. i.e. based on independant x and y when calculating.
>
> I'm using arithmetic distance defined as follows
>
> d(xi,yi,xc,yc) =
>
> if (xi-xc)(yi-yc)>0
>  return max (xi-xc,yi-yc)
> else
>  return abs(xi-xc) + abs(yi-yc)

Your formula for distance is in fact the Manhattan distance. Charles
Fu had it figured out in 1994. Read this link:
http://www-cs-students.stanford.edu/~amitp/Articles/Hexagon2.html
At the bottom it proves that

1/2 (|x1 - x2| + |y1 - y2| + |z1 - z2|)
=
max(|x1 - x2|, |y1 - y2|, |z1 - z2|)

And the latter is the same as your formula. Note that z = x-y since
your coordinate system has 120 degrees between x and y axes. In this
case z is 60 degrees from both x and y axes.

>
> > > In MLA, in line move generation is performed as follows
> > >> Why add? Why not simply overwrite? It ought to be faster.
> > True. But adding makes undo a substraction of the same numbers.

Good point, I didn't think of that.



> > > With respect to bitboards, I have not found a convincing case
for them.
> > oh yes, finding patterns and handling rotation is documented by
the author of
> > crafty too. your C is interesting. But trying to use the ONLY
bitboards for
> > center of mass computation, move generation, domove/undomove might
be hard.
> > Hmm
> > this would even impact my search ... hmm for MLA 4.0 lol.

I don't think it would be faster than a hybrid approach. I think it is
faster to use a byteboard to find the movenumber, then use bitboards
for the stuff that they do better (pattern matching, for example).  It
is very fast to update a bitboard, once you have a movenumber.



Regards,
Peer

#87 From: "mogwaifrance" <david.malek@...>
Date: Mon Apr 14, 2008 7:01 am
Subject: MLA 3.0 preview 1 is released
mogwaifrance
Send Email Send Email
 
MLA 3.0 preview 1 is released (i.e. not the stable version yet), you
can download it at:

http://mogwai.lunarpages.com/lovely

It includes the current status of my ongoing work on openings in the
abalone game. The included opening book includes the top ten moves
calculated by MLA at depth=10 for each of the two first moves from
each side.

You can have this opening book used by the MLA engine by ticking the
appropriate box in the preferences (be careful if you pick the 3.0.2
engine version it will crash with the opening book ...).

If the opening book is used, the engine picks its moves from the
opening book based on an evaluation "window" (i.e. moves no degrading
the "best line" too much).

If you want to include this opening book in your engine ask me for
the file and the file format description (pretty straight forward).

Enjoy!

Mogwai.

#88 From: "Peer Sommerlund" <peso@...>
Date: Sat Nov 8, 2008 2:00 pm
Subject: abmove 0.1 on sourceforge
peer_sommerlund
Send Email Send Email
 
If you are planning to write your first abalone program, you might
want to use abmove. It is a small library with a board representation,
and code for saving and loading games.

The code is very much alpha, and it has collected dust on my disk for
over a year now - so don't expect it to reach version 1.0 any time soon.

You can find it at
https://sourceforge.net/project/showfiles.php?group_id=83427

Regards,
Peer

#89 From: "mogwaifrance" <david.malek@...>
Date: Mon Jan 12, 2009 12:01 pm
Subject: MiGs 3.0 is released, play Abalone online at http://moggames.net
mogwaifrance
Send Email Send Email
 
You can now play online for free on my new flash/air server in its
version 3.0.

At http://moggames.net

Messages 60 - 89 of 96   Oldest  |  < Older  |  Newer >  |  Newest
Add to My Yahoo!      XML What's This?

Copyright © 2010 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines NEW - Help