On 11 Dec 2001, at 21:54, Eugene van der Pijll wrote:

> > While it is still fresh in everyone's minds, I thought I should
> > make some notes on possible improvements for the next apocalypse.
> 
> The word 'apocalypse' is already in use for a type of Perl Golf
> tournament, so it is perhaps not the right name.\

What type of tournament is that [for us golf non-cognoscenti]?

> > 2. Tie-breaking rule

 [...]

> I like the idea of awarding prizes to the 'best' or 'most original'
> solutions. Perhaps the 'first to post' rule is best for the overall
> standings, while the 'best per hole' prize will go to the most original
> entry.

How about "the shortest solution that no one else got" [modulo the obvious 
homeomorphisms, of course] for being a somewhat idiosyncratic award?

> > 8. Fairness
> > 
> > I think the key to a fair game is a really tight test program
> > on day one (tsanta.pl had too many holes). It is ideal if you
> > can just say "if it passes the test program, it is ok";
> > that also eliminates ambiguity about the game's semantics
> > and spares you from having to describe the semantics.
> 
> I don't think that can be done. Some rules should have been a bit
> clearer, but you can't foresee every loophole that will be used.
> 
> I found the test program very useful, so as a referee I will make it
> public at the start of the competition. However, programs that pass the
> test program but have fatal effects (output to STDERR, fail for n>100
> etc.) will be disqualified.

I think this is a VERY subtle semantic problem.. I've been pondering it some 
and can't find a good/equitable solution.  My instinct is to prefer a clear 
"text" wording of the requirements of a problem, but then you have the inherent 
vagaries of language to contend with.  But if you make "the scoring program" 
but the sole/primary criterion, you run into oddities, and programs that can 
take advantage of clearly unintended aspects of the _particular_ data sets and 
constraints used in the scoring program.

In particular, how do you define 'fatal effects'?  What if a program fails on 
EBCDIC input, but it passes the scoring program?  I think you could argue that 
if you want 'writing to STDOUT to be a fatal error' then the scoring program 
ought to catch it, and if it doesn't, then it should be presumed legal if 
you're going to have the scoring-program-behavior be the discriminant. no?
Even for file-lengths: you say failing on files >100 lines would be fatal. 
Would failing on files with >2^64 chars be fatal?  Would faililng on files with 
a non-US locale?  [or a non-ISO-Latin charset?]  It seems like a real can of 
worms.

I confess that all that together, I am still inclined to have the "official" 
description be the text one.  And have it be the discretion of the judges 
whether a program violates the rules --- in this model of the world, the actual 
'scoring program' would be *advisory*.  Also, I'm not a golfer, but I have done 
these *sorts* of things in other settings and it is not at all unusual to have 
'clarifications' to the rules appear as the event progresses [and of course, 
those 'clarifications' become part of the rules the next time, so that after 
you've done it a few times you have things pretty well nailed down].

It would mean more up-front work, but it would only have to be done once [and 
could be done collectively by us all]: primarily to make a general set of 
rules.  The general set could include things like "The program may not write 
any data to any file descriptor except as explicitly specified in the 
particular problem".  "When a problem mentions a 'file', it will be a normal, 
sequential-access-but-seekable file using standard ISO-Latin-8 with a US-
English Locale; the file may be of any length but its length will never be 
larger that 2^16 bytes",  etc....

And I think that with a good set of 'general rules' you'd be able to do very 
clear, intuitive and solid problem-descriptions in ordinary English.  And then 
I think you should *not*reveal* the scoring program.  The program's behavior 
should be against the *description* of the problem it is to solve, _not_ 
against a [perhaps] programming error in the scoring program.  If there's a 
question, it should be addressed to the judge [NOT to the scoring program 
source code] and the judge can make public an appropriate 'ruling' [that is, 
'clarification' of either the rules or the particular problem].

   /Bernie\

-- 
Bernie Cosell                     Fantasy Farm Fibers
mailto:[EMAIL PROTECTED]     Pearisburg, VA
    -->  Too many people, too few sheep  <--          

Reply via email to