Hi,
is it possible to get these corrected 34798 positions in the format for mea for download?
e.g. EPD: 1r6/5pkp/3p4/3Pn3/P2r4/1BR3PP/6K1/5R2 w - - bm Ra1; c0 "Ra1=10, Kg1=3, g4=0, Rf4=0"
Thanks
MEA and temere.epd
Moderators: hgm, Rebel, chrisw
-
- Posts: 2877
- Joined: Wed Mar 08, 2006 10:09 pm
- Location: Germany
- Full name: Werner Schüle
Re: MEA and temere.epd
Werner
-
- Posts: 12573
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: MEA and temere.epd
I gave you data that was only 14 plies deep? How embarrassing.Rebel wrote: ↑Tue Apr 28, 2020 5:51 am
MEA creates perfect EPD'S in the "epd_out" folder, example.
BTW, you must have noticed by now that many positions come from your 110 million EPD database, excellent to create random sets.Code: Select all
1b1qrr2/1p4pk/1np4p/p3Np1B/Pn1P4/R1N3B1/1Pb2PPP/2Q1R1K1 b - - bm Bxe5; ce 203; acd 12; 1k1r2r1/1b4p1/p4n1p/1pq1pPn1/2p1P3/P1N2N2/1PB1Q1PP/3R1R1K b - - bm Nxf3; ce 124; acd 13; 1k1r3r/pb1q2p1/B4p2/2p4p/Pp1bPPn1/7P/1P2Q1P1/R1BN1R1K b - - bm Bxa6; ce 178; acd 14;
I guess that shows you how fast technology moves.
The data in the archive I posted has a minimum depth of 30.
I wonder if your data set and the data set I provided can be merged?
I would also be curious to see what the effect would be of using only the positions where both sets are in agreement.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 12573
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: MEA and temere.epd
The data set I provided was not analyzed multi-pv. There will be some percentage where I have multiple evaluations, but it would be somewhat incomplete in that regard.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 7026
- Joined: Thu Aug 18, 2011 12:04 pm
- Full name: Ed Schröder
Re: MEA and temere.epd
No worries, for the purpose I use it positions need to be re-analyzed with MultiPV=4 or higher to create a STS like set.Dann Corbit wrote: ↑Tue Apr 28, 2020 12:06 pmI gave you data that was only 14 plies deep? How embarrassing.Rebel wrote: ↑Tue Apr 28, 2020 5:51 am
MEA creates perfect EPD'S in the "epd_out" folder, example.
BTW, you must have noticed by now that many positions come from your 110 million EPD database, excellent to create random sets.Code: Select all
1b1qrr2/1p4pk/1np4p/p3Np1B/Pn1P4/R1N3B1/1Pb2PPP/2Q1R1K1 b - - bm Bxe5; ce 203; acd 12; 1k1r2r1/1b4p1/p4n1p/1pq1pPn1/2p1P3/P1N2N2/1PB1Q1PP/3R1R1K b - - bm Nxf3; ce 124; acd 13; 1k1r3r/pb1q2p1/B4p2/2p4p/Pp1bPPn1/7P/1P2Q1P1/R1BN1R1K b - - bm Bxa6; ce 178; acd 14;
I guess that shows you how fast technology moves.
The data in the archive I posted has a minimum depth of 30.
I wonder if your data set and the data set I provided can be merged?
I would also be curious to see what the effect would be of using only the positions where both sets are in agreement.
90% of coding is debugging, the other 10% is writing bugs.
-
- Posts: 434
- Joined: Fri Dec 16, 2016 11:04 am
- Location: France
- Full name: Richard Delorme
Re: MEA and temere.epd
OK, Amoeba internal's epd parser now parses the c0 comment but I am puzzled in front of the list of moves and scores. What to do with it ?
The highest score is usually 10, but it can be higher, 15, 11, 13 or whatever. Such a higher score is usually found on the second move. Why is it so?
How to score a move outside the list. Zero ? But some moves inside the list are also already scored 0. It looks like the c0 comment just contain an array of 4 "best" moves. Why does the array keep the bad moves (scored 0) ? What about positions having more than 4 best moves?
On the examples given the max score is 30 x the number of position of the epd files. How it is gotten? The best score of the list is rescaled to 30 or the test is run 3 times and the score of the first move of the list (10) is retained as the max score; although some other moves are scored higher ?
Richard Delorme
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: MEA and temere.epd
I extract the "good" moves list with their score and increment an overall score with that.abulmo2 wrote: ↑Thu Apr 30, 2020 10:12 amOK, Amoeba internal's epd parser now parses the c0 comment but I am puzzled in front of the list of moves and scores. What to do with it ?
The highest score is usually 10, but it can be higher, 15, 11, 13 or whatever. Such a higher score is usually found on the second move. Why is it so?
How to score a move outside the list. Zero ? But some moves inside the list are also already scored 0. It looks like the c0 comment just contain an array of 4 "best" moves. Why does the array keep the bad moves (scored 0) ? What about positions having more than 4 best moves?
On the examples given the max score is 30 x the number of position of the epd files. How it is gotten? The best score of the list is rescaled to 30 or the test is run 3 times and the score of the first move of the list (10) is retained as the max score; although some other moves are scored higher ?
I just keep track of the total at the end to bench the engine.
The relevant (but dirty) Minic code for that is
Code: Select all
else { // look into c0 section ...
Logging::LogIt(Logging::logInfo) << "Mea style " << extP.comment0()[0];
std::vector<std::string> tokens = extP.comment0();
for (size_t ms = 0 ; ms < tokens.size() ; ++ms){
std::string tmp = tokens[ms];
tmp.erase(std::remove(tmp.begin(), tmp.end(), '"'), tmp.end());
tmp.erase(std::remove(tmp.begin(), tmp.end(), ','), tmp.end());
std::cout << tmp << std::endl;
std::vector<std::string> keyval;
tokenize(tmp,keyval,"=");
if ( keyval.size() > 2 ){ // "=" prom sign inside ...
std::stringstream strTmp;
copy(keyval.begin(),keyval.begin()+1, std::ostream_iterator<std::string>(strTmp,"="));
strTmp >> keyval[0];
keyval[1] = keyval.back();
}
std::cout << keyval[0] << std::endl;
std::cout << keyval[1] << std::endl;
results[k][t].mea.push_back(std::make_pair(keyval[0], std::stoi( keyval[1] )));
}
results[k][t].score = 0;
bool success = false;
for(size_t i = 0 ; i < results[k][t].mea.size() ; ++i){
if ( results[k][t].computerMove == results[k][t].mea[i].first){
results[k][t].score = results[k][t].mea[i].second;
success = true;
Logging::LogIt(Logging::logInfo) << "Good " << i+1 << " best move : " << results[k][t].mea[i].first;
break;
}
}
if ( breakAtFirstSuccess && success ) break;
}
-
- Posts: 7026
- Joined: Thu Aug 18, 2011 12:04 pm
- Full name: Ed Schröder
Re: MEA and temere.epd
With MultiPV sometimes second, third best moves produce higher scores than the best move.abulmo2 wrote: ↑Thu Apr 30, 2020 10:12 amOK, Amoeba internal's epd parser now parses the c0 comment but I am puzzled in front of the list of moves and scores. What to do with it ?
The highest score is usually 10, but it can be higher, 15, 11, 13 or whatever. Such a higher score is usually found on the second move. Why is it so?
Correct, the result of using MultiPV=4.How to score a move outside the list. Zero ? But some moves inside the list are also already scored 0. It looks like the c0 comment just contain an array of 4 "best" moves.
Because you don't want to get those moves points.Why does the array keep the bad moves (scored 0) ?
Then the set has to be re-analyzed with a higher MultiPV=4 value.What about positions having more than 4 best moves?
An essential part of the formula is the time how fast a move is found in the list, depending on that an extra bonus of maximal 20 points is added to the move value, making the maximum 30 points, it's where the maximum score comes from, 30 x number of positions and not 10.On the examples given the max score is 30 x the number of position of the epd files. How it is gotten? The best score of the list is rescaled to 30 or the test is run 3 times and the score of the first move of the list (10) is retained as the max score; although some other moves are scored higher ?
90% of coding is debugging, the other 10% is writing bugs.
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: MEA and temere.epd
Good ! will you share this time bonus rules ? so that we can use it in our own tools ?Rebel wrote: ↑Thu Apr 30, 2020 11:38 am An essential part of the formula is the time how fast a move is found in the list, depending on that an extra bonus of maximal 20 points is added to the move value, making the maximum 30 points, it's where the maximum score comes from, 30 x number of positions and not 10.
-
- Posts: 7026
- Joined: Thu Aug 18, 2011 12:04 pm
- Full name: Ed Schröder
Re: MEA and temere.epd
Sure, here is.xr_a_y wrote: ↑Thu Apr 30, 2020 11:44 amGood ! will you share this time bonus rules ? so that we can use it in our own tools ?Rebel wrote: ↑Thu Apr 30, 2020 11:38 am An essential part of the formula is the time how fast a move is found in the list, depending on that an extra bonus of maximal 20 points is added to the move value, making the maximum 30 points, it's where the maximum score comes from, 30 x number of positions and not 10.
The idea behind the tool is that one runs it at fast time control since you need so many positions to get a reliable result, hence the tool concentrates itself at time controls between 100-500ms, 1000ms max. This gives the following two tables, ms (milliseconds) and a corresponding table pt (points).
Code: Select all
int ms [] = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 125, 150, 175, 200, 250, 300, 400, 500, 600, 700, 800, 900, -1 };
double pt [] = { 3.0, 2.9, 2.8, 2.7, 2.6, 2.5, 2.4, 2.3, 2.2, 2.1, 2,0, 1.9, 1.8, 1.7, 1.6, 1.5, 1.4, 1.3, 1.2, 1.1, 1.0, 1.0, 0.0 };
If your engine plays none of the above moves, no points.
Suppose it plays Qa4 it gets 10 points * pt[x]; where x is the index found in the ms table when the engine had Qa4 as best move and remained stable to the end.
And so we may get:
Qa4 found at 8ms and stable, 10 * 3.0 = 30 points, the maximum.
Qa4 found at 190ms, 10 * 1.7 = 17 points.
Rxc2 found at 70ms, 9 * 2.4 = 21 points.
f6 found at 5ms, 5 * 3.0 = 15 points.
f6 found at 100ms, 5 * 2.1 = 10 points.
Kg7 found at 5ms, 1 * 3.0 = 3 points.
Kg7 found at 100ms, 1 * 2.1 = 2 points.
90% of coding is debugging, the other 10% is writing bugs.
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: MEA and temere.epd
Thanks a lot !