As writer of the DATC I can say, that is not entirely true.
DipTool uses a different algorithm and also passes all
test cases.
I am great supporter of adjudicators that has a generic
solving mechanism, rather than specific such as the
DPTG and other older adjudicators. Those specific
algorithms are very difficult to get bug free. Currently,
no such adjudicator exists that is flawless (the DPTG has
3 hard adjudicator bugs).
However, the DATC algorithm, is not the only possibility.
The problem is in situations on the board, that result in
a cyclic dependency of orders to be resolved. Those
situations can be divided in two groups:
- A cyclic dependency, with 0 or more than 1 resolution.
- A cyclic dependency, but still with one resolution.
The first group are circular movements or convoy paradoxes.
They must be resolved by a special rule, the circular movement
rule or a convoy paradox solving rule.
However, if we would only have the first group, then it would
not be very difficult for the adjudicator. We just write a recursive
procedure, that applies the circular movement rule or a
convoy paradox solving rule, when it detects a lock up.
The problem is the second group. Those situation are comparable
with the first group, but with some additional orders, which
result that there is only one resultion. Examples of that are
a circular movement with one of the units with a support or
one of the units bouncing on an other unit. At that moment there
is only one valid adjudication for the circular movement (before
considering the circular movement rule). Similar with a convoy
paradox, additional orders can interfere with the paradox such that
there is only one resolution.
Still, the second group, consists of cyclic dependent orders.
The tackle this, the DATC algorithm can solve those situation
by making decisions on partial information.
For instance, in case of a circular movement. If a unit in
the movement gets a support or bounces, then the DATC
algorithm can solve this order, without first solving the order
of the unit on the destination area.
The ability to resolve on partial information, is sufficient of
resolving all situations of the second group under the
standard rules (it might not be true with extension rules).
However, an alternative for the second group of orders
is to 'try' a certain outcome. This is how DipTool works.
DipTool builds up a graph of the orders. The orders for
which all dependencies are solved (this includes orders
without dependency at all), can be resolved directly.
For a cyclic dependency, it tries a certain outcome and
checks whether the outcome is consistent. If so, it also
tries all other possibilities. If there is only one consistent
outcome, it will take that one, if not, the circular movement
rule or paradox rule is applied.
If only single circular dependencies can occur (what is
the case for the standard rules, but might not be the
case for extension rules), then it can even be programmed
in a recursive function (no graph logic necessary).
This simplifies the DipTool algorithm.
The recursive funtion will first do a 'guess' of the order
that must be resolved. Then it resolves first all orders on
which it depends, by calling itself recursively. The recursive
functions, also returns whether the result was dependent
(directly or indirectly) on a guess. If all the dependent
orders, where not dependent on a guess, then its own guess
is replaced by the real outcome. If it was dependent on
a guess. some additional logic is needed (left as exercise
for the reader).
This result in algorithm that is probably a little bit shorter
(and faster) than the algorithm in the DATC, because
the specific Diplomancy rules, only need to be programmed
once.
Regards,
Lucas
On Dec 31 2007, 11:17 am, "jeremie.lefranc...@gmail.com"
<jeremie.lefranc....TakeThisOut@gmail.com> wrote:
> No, my engine only runs on stabbeurfou.
>
> It did not take 10 years to build it but I have worked on it by
> episodes, starting in 1992, 15 years ago then.
> The only way to have a flawless adjudicator I think is to use the datc
> algorithm (from my experience).
>
> The strength of the stabbeurfou adjudicator stems in the error and
> warning messages when orders are submitted - I think.
>
> On Dec 30, 5:49 pm, Chris Babcock <cbabc....TakeThisOut@cox.net> wrote:
>
>
>
> > On Sat, 29 Dec 2007 09:39:50 -0800 (PST)
>
> > "jeremie.lefranc...@gmail.com" <jeremie.lefranc....TakeThisOut@gmail.com> wrote:
> > > Entering a position and testing adjudicator is available in the
> > >www.stabbeurfou.orgsite. Use the gadgets.
> > > Direct link below :
> > >http://www.stabbeurfou.org/Interrogation.php
>
> > > And also in the diplomatie-online french website, and not in the
> > > 18centres french website (or not to my knowledge).
>
> > > Thehttp://www.stabbeurfou.org/hasadjudication engine been fully
> > > tested withe the DATC test cases (amongst others).
> > > Compliant to Hasbro 2000 rules, to former French Descartes 1994 rules.
> > > See within rules page.
>
> > Jérémie, is it your engine running behind playdiplomacy.com? If so, I'm
> > somewhat relieved that there hasn't been an enormous duplication of
> > effort. I know you spent about 10 years working on yours.
>
> > > Test reports are of course available on site, see below :
> > >http://www.stabbeurfou.org/docs/regles/en/Test_report.htm
>
> > > Deviations from DATC are only due to different interpretation of the
> > > rules (land route first for convoy to adjacent place for instance).
>
> > > There are to my knowledge at least two more serious automated
> > > websites : dipbounced and dpjudge. I have not seen any test report of
> > > their adjudicator.... phpdiplo for instance is not cited since I
> > > understood phpdiplo does not implement the full diplomacy rules. And
> > > there are probably more automated website around.
>
> > DP Judge, like nJudge, requires convoy routes to be specified. It's a
> > fairly serious flaw in the shared ancestry of both programs that I think
> > should be addressed in nJudge 2.0 if such a creature is ever born. DP
> > Judge is even less likely than nJudge to get such a serious update to
> > the core code.
>
> > > My personnal comment : people tend to be more interested in the
> > > quality of the maps then the adjudication....
>
> > That is until there is a problem with the adjudication. The also care
> > little about security... until they think someone is cheating. You can
> > always fix a map. You can fix most security problems, although you may
> > have to flush the user database. When an adjudicator is broken, however,
> > it's broken for the life of the program. At least that's what it seems
> > like. :-/
>
> > Anyhow, look at jDip if you want to see some good maps and RealPolitik
> > if you want some maps to compare to good maps.
>
> > Chris- Hide quoted text -
>
> - Show quoted text - >> Stay informed about: Play Diplomacy Online (beta test)