Jul 31, 2012

[Info] Corrupted performance.bin

The previous release included a corrupted performance.bin file. Meaning Mediocre loaded the opening book but didn't play any moves from it.

The reason it was corrupted was me adding it to the filtered resources in my build process. Filters replaces certain strings, e.g. ${version} with a real value (I have a couple of them in my readme.txt for example).

But when you try to filter a binary file, all sorts of weird things happens to it. I.e. not good. :)

I've fixed this and uploaded it to sourceforge (same name and link). So if you haven't downloaded the new version yet, you won't have to do anything.

However if you did download it already, either re-download from the same link, or replace performance.bin with a fresh copy.

The perfomance.bin file can be downloaded separately here.

Jul 30, 2012

[New Version] v0.5 - Futility pruning, revamped evaluation

Changes:
  • Futility pruning working, should give a noticeable strength increase
  • Added tapered eval and some significant changes to evaluation, shouldn't matter to much in terms of strength or style though
  • Major background changes in the build process and so on (now using Maven)

Note: Should be noticable stronger than v0.4, mainly due to futility pruning which is finally working. The revamped evaluation might add some style or strength differences, but nothing to get excited about. Next version I will concentrate on evaluation only, and hopefully get something nice out of it.

Download here

[Info] Found it!

To recap my last post, I found a mystery version of Mediocre called v0.5beta that I'd left undocumented last December.

No sources or clues as to why it was beating v0.4 by a good margin.

After a couple hours of manual digging in the class-files I gave up. But having a terrible cold today I decided to give it another go (what else would you do half-consious in bed than read decompiled java programs? :).

Since the decompiled versions are slightly different on almost every row I tried to rule out parts of the code by testing. Evaluation seemed to be exactly the same as what was left in source (my experimental changes to evaluation).

But the search was still returning a different tree. Having been almost certain the evaluation was the culprit I turned to the search instead.

So taking Matthew's advice from my previous post I took a look at all the lines touching futility pruning, and I found a difference. It was indeed futility being turned off (I had missed a third boolean).

However, this version was still being crushed by both v0.4 and v0.5beta. So I looked through Engine.java line by line, and found another "slight" difference, I had completely turned off LMR.

The second I saw it I remembered I did it to get better lines for the University project I was doing around that time...

Lesson to be learned: If you're going to ruin your code, commit your changes first. :)

Jul 26, 2012

[Info] One of those versions again

I've been working on getting a decent build/release procedure in place and it's coming along nicely. The readme and bat-file and resources and anything you can think of really is now being updated automatically.

Very very convenient.

But when looking in the development directory on my old harddrive I found a version of Mediocre called v0.5beta from December 7 2011. This version is actually crushing v0.4 (or maybe not crushing, but a good 70-80 elo stronger).

Now, the problem is I have no idea what this version contains. I know it uses my new evaluation but any setup I try with that doesn't come close in strength.

I've tried to look at the class-files (with a decompiler) but it's really hard to follow as the decompiler isn't perfect and I can't follow the code line by line.

I refuse to start working on anything before I figure out how I made this version. :) Hopefully I'll figure it out soon.

[Tournament] WBEC-Ridderkerk division 5 results

So the division 5 finals of WBEC-Ridderk finished. Top 7 qualified for division 4, and Mediocre placed in... 7th place. :)

 1: DiscoCheck 3.61-x64      29.5 / 36
 2: iCE 0.2-b1092            26.5 / 36
 3: Atlas 3.20-x64           25.5 / 36
 4: Ifrit m1.8-x64-JA        25.0 / 36
 5: Bearded Neural 44.5-x64  24.5 / 36
 6: TJchess 1.1-x64          23.5 / 36
 7: Mediocre 0.4-JA          22.0 / 36
 8: Sjakk 1.1.9              21.5 / 36
 9: EveAnn 1.67-b11          20.5 / 36
10: Ayito 0.2.994            17.5 / 36
...

Really sad that Leo decided to stop running his tournaments after this edition, but one of my longterm goals have been to get Mediocre up to the fourth division and I guess it happened on the last try. :)

Jul 15, 2012

[Tournament] WBEC-Ridderkerk

Mediocre 4.0 is playing in the fifth division final in WBEC-Ridderkerk, qualifying for the fourth division. Top seven engines qualify and Mediocre is currently in.. seventh place (having played a couple games fewer that the engines in front though).

So fingers crossed, fourth division would be quite neat.

[Plan] Back at it

So new job, new town (Stockholm), new apartment, new ideas.

This time around I'm going to try creating a proper build procedure, running JUnit tests, keeping track of versions and spitting out a fully functional Mediocre in the end.

I've always wanted to do this, but never really found the inspiration to do it right. Especially JUnit tests have been missing. I did a very crude test-class that runs some basics, but it's not automated at all and quite cumbersome.

Also, I got some input from a reader (or whatever I should call it), Zong Li, which I will try out and see if I can improve performance slightly.

And lastly, I'll turn that futility pruning on again. :)

So look forward to some progress again, we'll see where it ends up.