Pages:
Author

Topic: [Contest] - Win 2 BTC for the best retargeting algorithm. Python testbed inside! (Read 3020 times)

newbie
Activity: 34
Merit: 0
@loracle:

There you go :-)
http://blockchain.info/tx/d81ac630498253c6cd4e98e21649faaff5c69c5e838dd661e81c0a2d8703caac

have fun, a positive feedback would be greatly appreciated.

Thank you so much !
I left a feedback !
legendary
Activity: 1260
Merit: 1168
@loracle:

There you go :-)
http://blockchain.info/tx/d81ac630498253c6cd4e98e21649faaff5c69c5e838dd661e81c0a2d8703caac

have fun, a positive feedback would be greatly appreciated.
sr. member
Activity: 434
Merit: 250
A photo finish!

Gz loracle.

Gz also to EK, as we both really just brought his original algorithm down to limits for the problem.

Now we need a contest to make a more reasonable testbench for another contest?  This just turned into a micro-optimization challenge...

legendary
Activity: 1260
Merit: 1168
I'll enjoy a cuban cigar now ... if no vetos come (i mean, maybe I did miss something or did something wrong) I would send the funds in about 20 minutes.
legendary
Activity: 1260
Merit: 1168
Sorry my objective is a good algo not just number in your POC.  Wink

I hope we can start a discussion about the correct way to do it ;-)

For the contest, I had to make up some rules and I didn't come up with something better than this. But I think we got a lot input and a lot to discuss, evaluate and think about.
I am sure, that Lannister will drop some BTC on this matter in the future (at least I hope so). I just felt I need to make a quick start to get people working on this ... there is nothing more of an incentive than a few tasty BTC ;-)

For now, we ended up with many interesting approaches ... now let's see what we can actually use!
newbie
Activity: 34
Merit: 0
My heart stopped a little when I started reading the decimals.
I will be glad to help you if you need anything !

my btc address:
1AJsjTRrDsAyaCGQ93XoxC2gn4sZyRqywM
copper member
Activity: 2324
Merit: 1348
Hunterminercrafter:
Largest error: 1.89787520814

L'oracle (PM submission from 07:42:50 PM, someone can verify this in my account if wanted):
Largest error: 1.89720766492

My own one (shame on me)
Largest error: 5.31689202348

VeryNewMember:
Largest error: 5.9709180146

Here, all algorithms in zipped form. Change the first line in tester.py to evaluate a specific submission:
http://www.xup.in/dl,17161517/retarget_algorithms.tar.gz/

Does that seem correct so far?
Unbelieveable, how close the two best submissions were.

If everyone agrees with the result, I would need loracle's BTC address to get rid of my hard earned BTC.  Wink

Sorry my objective is a good algo not just number in your POC.  Wink
legendary
Activity: 1260
Merit: 1168
Hunterminercrafter:
Largest error: 1.89787520814

L'oracle (PM submission from 07:42:50 PM, someone can verify this in my account if wanted):
Largest error: 1.89720766492

My own one (shame on me)
Largest error: 5.31689202348

VeryNewMember:
Largest error: 5.9709180146

Here, all algorithms in zipped form. Change the first line in tester.py to evaluate a specific submission:
http://www.xup.in/dl,17161517/retarget_algorithms.tar.gz/

Does that seem correct so far?
Unbelieveable, how close the two best submissions were.

If everyone agrees with the result, I would need loracle's BTC address to get rid of my hard earned BTC.  Wink
legendary
Activity: 1260
Merit: 1168
The random seed for testing is, as described, the following string (with leading 0x)

Code:
0x00000000000000000065e874f49c4ab116f5a7a504a527f0088a3e86d2bda439

I will start the evaluation now!
copper member
Activity: 2324
Merit: 1348
Let me know what you think.  Wink

I think
a) that it is sweet to see that my first "idea" was not so bad after all
and
b) that
Code:
Largest error: 1.94385646144
seems hard to beat
and last but not least
c) that I hope to get the one or another improvement suggestion from you, even after the contest ist over and we have seen this method "in action" in the upcoming 0.9.0 testnet  Wink

Here can you see a active DK3. Yes the retarget is hard but works fine. It is a 5 min Chain. This is with 72 and blockreading count...i think over 400 blocks are possible
https://chainz.cryptoid.info/erc/  -> Last 100 -> Diff
legendary
Activity: 1260
Merit: 1168
Does the contest end at 9:24 or at 7:51 ?

7:51 forum time! In about 20 minutes. And it's about elaborating on different ways, just we had it here until now ;-) So I am very eager to see how the different approaches will eventually perform.
Resubmissions of already present solutions with minor changes should be not allowed unless it's the own ones tweaked.

I will try your PM submission now, loracle ;-) Thanks so far!
newbie
Activity: 34
Merit: 0
Does the contest end at 9:24 or at 7:51 ?
legendary
Activity: 1260
Merit: 1168
Let me know what you think.  Wink

I think
a) that it is sweet to see that my first "idea" was not so bad after all
and
b) that
Code:
Largest error: 1.94385646144
seems hard to beat
and last but not least
c) that I hope to get the one or another improvement suggestion from you, even after the contest ist over and we have seen this method "in action" in the upcoming 0.9.0 testnet  Wink
sr. member
Activity: 434
Merit: 250
Of course ;-)

NM, here is the best I've gotten to so far.  We'll call it a study in realistic simulation being hard and overfitting being too easy.  Somewhat ironically, it is your original algorithm with different parameters and basically only one (subtle) change.

http://pastebin.com/YD6bYzyP

This beats "similar optimization approaches" for my few attempts at a hand-rolled re-target, but I could probably score better with some more time spent there.  I'm curious to see if anyone can beat it, as well.

Let me know what you think.  Wink
legendary
Activity: 1260
Merit: 1168
Yah, this testbench is not so great.  Huh

Using a variant of EK's alg, I reached a largest error of 2.52601249956 on the reference seed.  Without cheating, this time.  Is that good?  I think I still have room for improvement, but I am getting tired.

EK: Can I submit my entry by pm?  Cheesy

Of course ;-)
sr. member
Activity: 434
Merit: 250
Yah, this testbench is not so great.  Huh

Using a variant of EK's alg, I reached a largest error of 2.52601249956 on the reference seed.  Without cheating, this time.  Is that good?  I think I still have room for improvement, but I am getting tired.

EK: Can I submit my entry by pm?  Cheesy
copper member
Activity: 2324
Merit: 1348
For some odd reason, kimoto underperforms under realistic conditions. Maybe we have to make our tests a bit more realistic, but there is not much time left.
For large block-time-variations the kimoto approach tends to error significantly.



Yes that is true, i recommend make the diffretarget not to soft.

Here a bad Example.

legendary
Activity: 1260
Merit: 1168
For some odd reason, kimoto underperforms under realistic conditions. Maybe we have to make our tests a bit more realistic, but there is not much time left.
For large block-time-variations the kimoto approach tends to error significantly.

copper member
Activity: 2324
Merit: 1348
Can you test here 72 return  1 + (0.7084 * pow(((x)/(72)), -1.228)) and her max_block_reading = 72

Worse:

Code:
Executing run 0
  -> generated block 0
Run 0 - total error = 2.17624878297
Executing run 1
  -> generated block 0
Run 1 - total error = 2.23758974444
Executing run 2
  -> generated block 0
Run 2 - total error = 4.59423461528
Executing run 3
  -> generated block 0
Run 3 - total error = 2.13096649602
Executing run 4
  -> generated block 0
Run 4 - total error = 5.36702805093
Executing run 5
  -> generated block 0
Run 5 - total error = 1.86506009398
Executing run 6
  -> generated block 0
Run 6 - total error = 1.93048505133
Executing run 7
  -> generated block 0
Run 7 - total error = 1.78515230057
Executing run 8
  -> generated block 0
Run 8 - total error = 2.10473265039
Largest error: 5.36702805093

I think a harder retarget is better. ;-)
legendary
Activity: 1260
Merit: 1168
Can you test here 72 return  1 + (0.7084 * pow(((x)/(72)), -1.228)) and her max_block_reading = 72

Worse:

Code:
Executing run 0
  -> generated block 0
Run 0 - total error = 2.17624878297
Executing run 1
  -> generated block 0
Run 1 - total error = 2.23758974444
Executing run 2
  -> generated block 0
Run 2 - total error = 4.59423461528
Executing run 3
  -> generated block 0
Run 3 - total error = 2.13096649602
Executing run 4
  -> generated block 0
Run 4 - total error = 5.36702805093
Executing run 5
  -> generated block 0
Run 5 - total error = 1.86506009398
Executing run 6
  -> generated block 0
Run 6 - total error = 1.93048505133
Executing run 7
  -> generated block 0
Run 7 - total error = 1.78515230057
Executing run 8
  -> generated block 0
Run 8 - total error = 2.10473265039
Largest error: 5.36702805093
Pages:
Jump to: