Chat:World/2021-05-29
IlluBlack: OMG Im gonna see thank you <3
NotSureWhyThisWorks: No worries!
IlluBlack: Thank you, it worked perfectly I was practicing the code in another online compiler https://replit.com/, it worked really well, in case anyone needs another compiler hahahaha
NotSureWhyThisWorks: Nice, I'll check it out
ArtLiteracyStory: woooooooooooo
ArtLiteracyStory: We are playing Clash of Code here! https://www.twitch.tv/andee927
Taka-Li: I have never bean the first one
rohrokz: https://www.codingame.com/clashofcode/clash/1781675f36403a1772fb910b2319321821d8dc1
jacek: happy Caturday
Vishnu_31: https://www.codingame.com/clashofcode/clash/1781683505f6a8eaa9396ccf0b627a7e91026e2
BlaiseEbuth: :cat:
BlaiseEbuth: Hey Robin_Hood.
MarijaLiutkeviciute: Hello
MarijaLiutkeviciute: :grinning:
jacek: good afternoon
Taka-Li: how to set up a portrait
jacek: go to your profile
Taka-Li: cannot find anything relate to protrait setting
struct: over your current avatar
struct: or the profile page
struct: on the*
Xeno_1221: .
Pandz18: hola
Gaurav.:
Gaurav.:
Gaurav.:
Gaurav.:
Gaurav.:
Gaurav.:
Gaurav.:
Gaurav.:
Gaurav.: http://chat.codingame.com/pastebin/a6f2880f-7742-4fb2-9bd5-c9deec5e69a5
Gaurav.: a \n a
Scarfield: Is it normal to have the selection as bottleneck in mcts? (working on uttt)
MSmits: how much of a bottleneck?
MSmits: also which stage of the game
Scarfield: in the beginning, so far the only thing im profiling since i cant get more than 20k rollouts in 2nd turn
MSmits: can you share you uct function?
MSmits: your
Gaurav.: rip
Gaurav.: Hello guys
Catas39: can you do here Clash of Code for gaming stuff ?
Catas39: I mean not the Clash of Code section but something for gaming
Catas39: I only found the space ship game tutorial
Wontonimo: Hey Scarfield , I was having a hard time getting above 20k in 2nd turn also. MSmits suggested I calculage the log(Nparent) just once. That saved a bunch of cycles. Also tried replacing new obj with custom array
Scarfield: yea he helped me out in pms, but thanks :)
Wontonimo: in the end what I did to squeeze out some more juice and rank was to run 2-3 rollouts per expansion
Wontonimo: my rollout was super fast, my expansion not so much, so it worked well
Scarfield: makes sense then, but right now im just trying to get higher simcount, but good point ill probably try it later :)
Wontonimo: have you added the MCTS solver?
Wontonimo: that certainly boosted me a several ranks. i dont know if the Gold boss has a solver, but it would be a great way to get an edge with even a lower sim count
Scarfield: nope, simply "pure" mcts still. When im happy with the simcount ill begin playing with other improvements
MSmits: gold boss definitely does not have a solver
MSmits: back when uttt was new, there was already a gold boss and I think robo was the first to use the solver
MSmits: because he found that paper that explains it
struct: I added teccles and jumped from 100 to 57
MSmits: yeah that does help
Wontonimo: adding just that could be enough to push you over. it would be close. The solver makes your bot super strong in the last dozen or so moves
MSmits: it guarantees a good move as player one most of the first 20 plies
struct: teccles is just for p1 right?
MSmits: well
MSmits: I use it for p2 too, up to ply 20
MSmits: it doesnt matter really
Wontonimo: what's teccles ?
Scarfield: poor teccles being pinged all the time xD
struct: if board is clear force opponent to play on that board next
MSmits: teccles means your move has the same index as your board index
Wontonimo: oh, that's the heuristic about forcing. right
reCurse: Many bots did that before teccles...
MSmits: ah but things get named after the first person to publicly share :)
Wontonimo: yeah, I have that as a "soft" hint
Scarfield: even my bot finds such a move fairly often
Wontonimo: if it finds it nearly immediately, then it can spend more resources looking into the future
MSmits: yeah it does. the NN's mostly use it too
MSmits: even if it's not hardcoded
Wontonimo: do you reuse your graph from turn to turn Scarfield ?
Scarfield: yea good point wonto, and yes tree reused
MSmits: btw naming this thing teccles, is more about having one word to describe it than giving him any credit. It's just easier for conversation
MSmits: could have been any name really
Scarfield: Ill take full credit
MSmits: Allright, we'll name it the Scar
MSmits: nice and short
Scarfield: xD
BlaiseEbuth: Be preeeeepaaaaaared !
[.]: finally top 100 in coc after 3 days of playing casually
MappedParadox: cock
MSmits: End games done. Time: 975 ms. States: 646645
MSmits: cutting it kinda close =/
MSmits: (this is times 146 so roughly 10 million states)
MSmits: it's annoying, I can just barely reach 10 seeds...
BlaiseEbuth: Your fault Scarfail...
MSmits: lol sure let's blame him
Scarfield: Ill take full credit
MSmits: kk
BlaiseEbuth: Always have a culprit on hand.
MSmits: who can change oware first turn to 1100 ms instead of 1000 ms ? :P
BlaiseEbuth: [CG]Maxime
MSmits: ow now you pinged him
BlaiseEbuth: :speak_no_evil:
Scarfield: thanks again for the tips, the lookup array and UCB changes improved my 2nd turn simcount with around 2-5k :)
MSmits: nice
Scarfield: also a neat detail with the factorization of invsqrt, didnt notice until i started implementing it
BlaiseEbuth: Sqrtfield
struct: why do you need 1100ms MSmits?
Scarfield: BlamesEbuth
MSmits: I have a 9 seed endgame book for oware and I made some optimizations and now I just barely can do 10 seeds
MSmits: i can do it below 1s most of the time, but... cpus
struct: Not possible to do template magic?
MSmits: what will that do?
MSmits: can you show me some example of template magic to make things faster?
MSmits: sounds like something I should know
struct: https://en.wikipedia.org/wiki/Template_metaprogramming
struct: I never did it
struct: Just heard about it before
struct: Not sure if its possible for your case, but I guess its worth a read
MSmits: can you do all calculations at compile time?
MSmits: this would be an insane boost for me
MSmits: dont you have several seconds to compile?
struct: yeah you have more time to compie
struct: compile*
struct: Im not sure though, maybe some expert in c++ knows
MSmits: hmm
struct: http://chat.codingame.com/pastebin/479ebbcc-89d4-473c-beaa-16c03850ee03
struct: If you see this example
struct: it does calculations
struct: and its compile time
BlaiseEbuth: Oh? Always thought compile time was included in first turn time...
MSmits: i wonder what the limitations of this are
MSmits: Can I fill an array with 10 MB of states >
MSmits: complex calculations calling lots of functions
struct: I never tried it before, but I think its feasible on what you want to do
1415495: I think that CG has a compilation timeout and I don't think it is very long
1415495: and I doubt that in 10s of meta template compiling you can do more computation than in the 1s of the first turn
1415495: the compilo is not what I would call "fast"
1415495: but I have not tried it so...
reCurse: Doesn't seem like it's going to work
reCurse: Doing computation at compile time is very difficult
MSmits: difficult to write code for or inefficient?
reCurse: Both
MSmits: do you ever try this?
MSmits: on CG?
reCurse: No
MSmits: hmm ok
reCurse: In general, yes
reCurse: Then even if you succeed on CG, you might break executable sizes
reCurse: And if you don't chances are IO speed will make the whole thing pointless
MSmits: well it's gonna be 10 MB larger
reCurse: So lots of obstacles
MSmits: I see
1415495: I tend to think it is a bit of a way to go behind the rules but in the same time, "play to win" so as long as it is not yet forbidden
MSmits: well it would have a very small effect on gameplay really
MSmits: I could even keep calculating in the following turns if i want to. I mean I can always run an opening book while I use 50 ms per turn to finish it off :P
1415495: but in itself, it can be a fun excuse to try meta programming
MSmits: sure
reCurse: Fun and metaprogramming and C++, pick 2
MSmits: gonna submit this bot to see if it even times out
1415495: if you stumble upon a decoder for template error output by gcc/clang, I am interested ;)
Scarfield: fun and fun
MSmits: ye, sometimes times out =/
1415495: I prefer reading code from ioccc than template error
MSmits: ioccc?
1415495: https://www.ioccc.org/ The International Obfuscated C Code Contest
struct: lol
MSmits: ohh ok
MSmits: :)
1415495: some are really interesting
1415495: like a tiny (probably very limited) C compiler in 2K source code
1415495: (not exactly 2K, I think they exclude some characters from the count)
MSmits: thats impressive
Zorg1: yes the "OTCC" : https://bellard.org/otcc/ that become later TCC
Smelty: hhhh-
Skinjbir: hello world
Smelty: goodbye world
**Smelty says
jacek: fenrir in Search Race can you tell what was the input for your NN?
MSmits: lol... I am trying to locally generate a seed db and it's using 31.2 out of 31.7 RAM
MSmits: GB
MSmits: probably i should get off chrome :P
jacek: oh my
MSmits: it's only 20 seeds, but for 185 different turns so..
MSmits: uh oh, this is not good, windows decided i dont need most of that memory for my process, but i do =/
MSmits: hope it doesnt crash
MSmits: bah it crashed. Evil windows
MSmits: how to block windows from stealing my memory ?
jacek: use linux
MSmits: :P
struct: 31 gb for end game tablebase?
MSmits: yeah
MSmits: I am working on a different method now, so that i can spit stuff out to HD in between
MSmits: should help
MSmits: SSd actually
MSmits: it's so big because i store a different value depending on how many turns left
MSmits: and oware can be 200 turns. I skip the first 15
MSmits: if I didnt have to do the turns thing I would be able to have a 31 seeds DB
MSmits: probably will do that for NN
jacek: the things you do for an NN
struct: Do chess engines train with or without tablebases?
MSmits: well this 20 seeds thing is just an upgade for my normal meta mcts, but yeah because I want to do supervised for the NN, i need a good endgame table
jacek: dunno
MSmits: struct was wondering this yesterday. It seems weird to me if they train on things they dont need to know
jacek: for tournaments endgame tables may be limited
MSmits: yeah but they still wouldnt train on the part they dont need to know would they?
jacek: likely not
darkhorse64: MSmits: would not it be more efficient to store the number of moves till end instead of storing a pair seeds, remaining moves ?
MSmits: hmm
MSmits: what do you mean number of moves till end?
MSmits: basically what I am storing is the maximum net gain of seeds given the current board state and the remaining number of turns
MSmits: (if both sides play perfectly)
MSmits: the interesting thing is that even for only 9 seeds on the board, 200 turns left up to 146 turns left gives the same result, but below 146 turns left it gives different results. Apparently it takes a lot of time sometimes
MSmits: it gets worse for more seeds obviously
darkhorse64: For a given seed which leads to victory, you may win because there is enough moves left, or because you win on score after 200 moves or .... Obviously, the result depends on the remaining moves but storing all pair <seeds, remaining moves> may be overkill
dscientist: Guys, Is this site French? Several comments in the community are writen in French.
jacek: its made by french, but world chat is english and most stuff here is in english
MSmits: darkhorse64 in my eventual DB, I store them in a persistentdictionary with 1 key per state, the key is used to look up a string which holds a value for each of the 185 states. it's 4GB for a 15 seed book, around 40 GB for a 20 seed book (when i am done with it).
MSmits: it's really the only way to have an exact prediction of the end result, since the number of turns matters a lot when the result is close
ZarthaxX: are you really wasting 40gb for oware? D:
MSmits: sure why not
ZarthaxX: seems so much sheez
ZarthaxX: idk haha
MSmits: the guys who solved aware used around 1TB:P
MSmits: awari
ZarthaxX: :O
ZarthaxX: holy
MSmits: almost the same game
ZarthaxX: i just get scared by huge numbers, ignore me :P
MSmits: but it doesnt have this weird 200 turn limit, so it was easier for them
ZarthaxX: right
MSmits: it's the same with our checkers. There are many states which are officially solved as win, but are unwinnable on CG, because they take too long
MSmits: so it'll just be a draw
MSmits: and that is true even if you dont repeat any states
MSmits: thankfully you would not have to store 300 turns of checkers lookups. You can suffice with storing the DTM value (how many turns to win from current state)
jacek: welp 8-man chess endtables are estimated >5PB
MSmits: ye it's insane
MSmits: checkers explodes really quickly also
MSmits: oware not so bad
Marchete: so are you solving oware?
Marchete: are you using it for the NN?
jacek: either that or cancer research. which one would you choose
MSmits: not solving, I am going to try to get as big a endbook as i can, run meta mcts for a while and try to supervised learn the NN
Scarfield: cat girls not an option this time jacek :o
Marchete: ok
Marchete: I'm still trying alphazero like
Marchete: but I'm testing much more each step
MSmits: sounds good
Marchete: not really
jacek: Scarfield thats an obvious
Scarfield: good good, was afraid you were an imposter
Marchete: too many things that can go wrong
Marchete: right now I sometimes have >55% winrate when pit the same NN as P1 and P2
MSmits: maybe try simple things first?
Xascoria: hey guys, new around here, quick question
Marchete: and I swapped positions ofc
Marchete: 50% as P1 50% as P2
Xascoria: if i have something that gives the right answer and throws an error afterwards, will the tester be happy with it
Marchete: not always, but some
Marchete: maybe I need to go to 57% or smth
Marchete: or more plays
jacek: Xascoria gives right answer?
Xascoria: yes the code gives the right answer
jacek: you print answer for testcases. if theyre right the testcases pass
Xascoria: but some janky mechanic will cause it to throw an error right after it
Xascoria: I mean for the final result
Xascoria: will i pass or fail in this case
jacek: will CG testcases catch it and fail
Xascoria: it says success but it also gives an error
Xascoria: also the error stopped rest of the output from printing so that is actually part of my solution
jacek: i tested and got 100% when after print i thrown a runtime exception
jacek: Marchete youre pitting 2 NNs against each other?
Marchete: yes
Marchete: but as a test it's the same NN
Marchete: so it should be around 50%
Marchete: sometimes I'm getting 55%
jacek: just some fluctuations
jacek: is it trained NN or random
Marchete: untrained
jacek: random initialization could favor 1 player
MSmits: even if untrained it's still very deterministic
Marchete: but I do 50% of games as P1 and 50% as P2
MSmits: my untrained TTT player sometimes started with 35% WR vs a random player
Marchete: so even if it favours
MSmits: so worse than random
Marchete: it should be around 50%
jacek: and how many games did you play
Marchete: Model* m0 = ((i & 1) == 0) ? &candidateModel : ¤tModel; Model* m1 = ((i & 1) != 0) ? &candidateModel : ¤tModel;
MSmits: is it the same network with the same random initialization?
Marchete: on a loop
MSmits: the same random seed?
Marchete: exactly the same file
Marchete: no seed
Marchete: it's oware
Marchete: just dirichlet noise
Marchete: added
jacek: but oware has 48 seed
Marchete: ....
jacek: maybe thats your problem :v
MSmits: i meant random seed for initializing neural network weights
Marchete: :D
Marchete: I read from the same file
Marchete: I have only 1
Marchete: so
MSmits: yes, but does this file initialize the weights in the process, or are the weights hardcoded
Marchete: I'm adding more mcts rollouts and some more games
Marchete: NN must be exactly the same
Marchete: file ARe the weights
Marchete: ARE
MSmits: ahh ok
Marchete: and NN won't predict is not "Loaded"
jacek: is the one if more mcts rollouts winning more
MSmits: 57% is a plausible WR with 400 games or so
Marchete: if not*
MSmits: if it would be 1k+ i'd worry
Marchete: 500 games
Marchete: same rollouts, same all
jacek: so its within confidence interval eh
MSmits: Marchete does go by rollout count or by calc time
Marchete: rollout count
MSmits: does it have a random move component?
MSmits: or fully deterministic?
Marchete: fully deterministic is exactly 50%
MSmits: yes
MSmits: it should be
Marchete: with dirichlet noise is 45%-55%
Marchete: maybe I should go more than 500 matches?
MSmits: it's easier to just add a random 0-0.05 to the NN output
Marchete: I thought 500 could be enough
Marchete: I imagine it's easier
Marchete: but as these papers talk about this noise
Marchete: I added it
MSmits: ah ok
Marchete: probably on "submit" mode
jacek: dirichlet noise sounds smarter
Marchete: I'd change it to some 0.95-1.05
Marchete: yeah, and I just C&P it
Marchete: because it was overly complex
jacek: but 500 games is not enough for random init net to see if 55% is legit
Marchete: ok
Marchete: so I'll increase it
Marchete: it's usually inside 47-53
Marchete: but I want to be sure of each part
jacek: fyi i dont use pitting, i update NN every iteration and use it
Marchete: I think selfplay have correct outputs
Marchete: correct sign of propagated values, etc etc
Marchete: define "iteration"
Marchete: my idea was
Marchete: selfplay N games
Marchete: output all mirrored as player 0
Marchete: value is k*MCTS_mean_value + (1-k)*endgameReward
Marchete: policy similarly
jacek: selfplay N games into buffer, learn from buffer, pit in arena (alphago zero but not in alphazero if I understand correctly,
jacek: and repeat
Marchete: selfplay->learn->pit
Marchete: winrate > 55%? candidate converted to best
Marchete: I was thinking that
MSmits: I think jacek just based on MCTS_mean_value
MSmits: not endgame reward
MSmits: so k = 1
Marchete: yeah
Marchete: I need to try different k's
jacek: eeyup
MSmits: endgame reward for oware seems too far away
RoboStac: yeah, and I do it entirely on endgame reward
Marchete: and they are turn based
jacek: https://en.wikipedia.org/wiki/AlphaZero#Relation_to_AlphaGo_Zero second point
MSmits: nice RoboStac
Marchete: k is high at first turns
Marchete: because of the uncertainty
Marchete: and because of that
Marchete: I have a big doubt
Marchete: I can have many exact gamestates
Marchete: with completely different values
Marchete: because at start I can win/lose
Marchete: so I don't know how the trainer behaves with these
Marchete: i.e. I'll have N starting positions
jacek: NN will average if there are different targets for the same input
Marchete: all of them with completely different values
Marchete: like -0.4 and 0.5 at the same time
Marchete: it's OK for the trainer?
RoboStac: seems to work fine
Marchete: thanks Robo :*
RoboStac: I've seen some (and tried a bit myself) making unique gamestates with averaged policy / values
RoboStac: didn't seem to make much difference overall - possibly slightly quicker training
Marchete: I was trying that, thanks for pointing out
RoboStac: yeah, that article was one of them
MSmits: if you run 100 games to get data, you'll visit the same states early game also
Marchete: I've used that, yes
MSmits: in fact, you always have the same 1st state
MSmits: so you get that 100 times :P
Marchete: exactly that
Marchete: I have 100 1st states
Marchete: but each one with a "random" value
MSmits: i wouldnt worry about that
MSmits: all it does is make that state more important than other states. And it is, so...
RoboStac: you can just drop the first turn as it's pretty pointless to train on
MSmits: you can extend that with an opening book on first 5 turns too
Marchete: well, not in my idea
Marchete: it should pick the best move
Marchete: maybe value is noisy
Marchete: but policy part should be more useful
Marchete: I won't learn you all anything, nevertheless
Marchete: I'm "years" behind you in terms of NN
jacek: oO
MSmits: Marchete you are doing a policy + value network right?
MSmits: why not just do value?
MSmits: seems easier
MSmits: if you're not having much succes it's time to reduce variables imho
MSmits: damn, I keep finding bugs where I am overflowing 32 bit ints
jacek: 32 bit? what year is it
MSmits: for (uint64_t s = 0; s < stateCount; s++)
MSmits: had this as int s = 0 =/
Marchete: because I'm not going for easy
Marchete: I'm going for policy based NN
MSmits: good :)
jacek: *5 years later*
Marchete: but there are sooo many thingsd
Marchete: yeah
Marchete: at my pace
struct: you will probably do it before me
Marchete: this thing is so hard
Marchete: that even people that "knows"
Marchete: have no f*cking idea about how to tune parameters
Marchete: https://github.com/optuna/optuna
1415495: it depends on which kind, but in my experiences policy NN are easier (but some here will probably have the opposite experiences)
Marchete: the whole NN experience is hard
struct: Has a big learning curve
Marchete: so many little parts
Marchete: and all of them can fail
MSmits: supervised learning seemed quite easy Marchete
1415495: https://www.alexirpan.com/2018/02/14/rl-hard.html (Deep Reinforcement Learning Doesn't Work Yet)
MSmits: using keras/tf
MSmits: but you're going for something much harder
jacek: fear the day we will have working theory of hyperparameters and how exactly NNs work
AllYourTrees: once we have AI, they can just learn how to make NNs for us
Marchete: I'm OK with being slaves of AI's
Marchete: anyways humankind are mostly sh*t people
MSmits: poopypeople
Marchete: just check pandemic behaviour
struct: hey my country hosted CL :D
struct: ...
MSmits: well there's selfishness, irrationality and ignorance. They are all different problems about people Marchete
MSmits: some people dont care, some people don't know and some people can't think
struct: Sometimes gov doesnt care
MSmits: gov is not 1 person
MSmits: well in some cases it is maybe :p
struct: well if majority doesnt I think its fair to say they dont care
jacek: gorvernment lies https://poorlydrawnlines.com/wp-content/uploads/2014/02/lies.png
ddreams: I am the senate
struct: I need a flag on nodes for mcts solver right?
1415495: did someone derived the formulat for the derivative for the PPO policy update ? I find something a bit weird
MSmits: you can do it various ways struct
MSmits: but you need *something*
MSmits: what i do is a flag that's -1,0,1 or 2
struct: ok, thanks
MSmits: when it's 2, the game isnt solved
struct: I see
AllYourTrees: is everyone working on NN now?
AllYourTrees: :eyes:
struct: not me
struct: I paused it for a bit
MSmits: not me... or at least not directly. Working on local oware stuff
MSmits: 40 gb book finally running correctly. Takes some time to create
struct: 40gb o.o
MSmits: i'm about 10% in :0
MSmits: I am hoping my C# program can read the binary data correctly
struct: How long does it take to generate it?
MSmits: hard to say, probably a few hrs? I am guessing 3 hrs
struct: not bad
MSmits: yeah but this is 20 seeds. the one i want for NN is 31 seeds
MSmits: doesnt need more memory, because i am not doing 185 times each state. But it does need wayyyy more calc time
struct: how many seed does oware have?
MSmits: possibly 31 is too ambitious
MSmits: 48
MSmits: it would take around 1TB to store all states
RoboStac: I'm fascinated to find out how accurately you can get a <100kb nn to train on that much data
MSmits: oh, I wasnt going to train it on *all* the data. I am just going to refer to it. I'll let it run games same as you guys, except i am not using the values form the games, just the gamestates
AllYourTrees: NNs can memorize data very easily
MSmits: so i just look up target values
AllYourTrees: https://arxiv.org/pdf/1611.03530.pdf
MSmits: very efficiently but not at 100% accuracy
AllYourTrees: tl;dr: NNs can easily memorize random labels on training data
MSmits: which is why NN is good on unsolved games, but not on solved games :)
RoboStac: yeah, I'm not saying it in a bad way, I'm actually interested to find out how well it works compared to the more standard methods
MSmits: ahh yeah, me too. Could be a bust
struct: well the good thing is that you can still use the end game tablebase with it
MSmits: i am mostly choosing this method, because I need an intermediate step before i try your way
MSmits: supervised learning just seems easier to me
MSmits: struct in game just the small one, 9 seeds only :)
struct: is 9< seeds common?
jacek: if you put nn will you have space for endgames anymore
MSmits: on equal strength bots yeah, but even if the state doesnt occur in the game, it occurs in the tree
MSmits: my endgame book doesnt use space :)
struct: yeah
struct: o.o
struct: what magic is that?
MSmits: i generate it in 1st second
struct: ah, it doesnt use code space
MSmits: this is why i was complaining about the time earlier remember
struct: I thought you meant it doesnt use memory
struct: sorry
ddreams: Abusing the time-space continuum
MSmits: oh, it uses less than 10 MB
MSmits: so negligible
MSmits: 9 seed is very small, still millions of states though
MSmits: locally it's billions
MSmits: I like that I still get draws vs Robo and jacek even with their new versions that I havent counterbooked
RoboStac: when I submitted this one my first game against you was a loss, was very worried it was going to continually play into one of your counterbook lines
MSmits: oh, yeah, I should maybe just remove the book
MSmits: at least then it'd be more easy for you guys to test
MSmits: i'd still be rank 5
RoboStac: it was the only one though so not sure what happened
MSmits: ahh ok
Astrobytes: What have I missed recently? Oware still MSmits, you are a dedicated man I must say.
MSmits: well I did some supervised learning on TTT, got it to play almost perfectly. Now going to try some supervised learning for oware. But needs loads of preparation because I need good data
MSmits: beefing up endgame book from 15 to hopefully as close to 31 as possible
MSmits: and running new meta mcts when it is done, gonna be a while
Astrobytes: OH yeah, I forgot about your newly upgraded hardware
MSmits: the memory certainly helps
AllYourTrees: meta MCTS? :eyes:
MSmits: AllYourTrees do you know mcts?
AllYourTrees: ya
MSmits: meta mcts is running whole games instead of random sims
MSmits: so a mcts thats running other mcts's
Astrobytes: Yeah, it's like an MCTS inside an MCTS, didn't jacek do an article?
AllYourTrees: huh interesting, ty
MSmits: yeah he did
MSmits: AllYourTrees mostly it's used to create opening books
MSmits: find the best starting moves for deterministic opening games
Astrobytes: 'on generating opening books for yavalath' I think
MSmits: but you can use it to solve games too
jacek: just replace playout/simulation with MCTS and youre done
Astrobytes: I'm busy so I won't bother looking it uup
MSmits: jacek, dont you have some smarter way to choose between search and book?
MSmits: I never did that part
MSmits: in my case book is always preferred
Astrobytes: But switch when off book? Isn't that a normal thing
MSmits: possibly i am doing it wrong and just doing well by sheer brute calculation :P
jacek: i choose book if available
MSmits: ah ok
MSmits: not sure where i read this then
MSmits: maybe it is during book creation
MSmits: bot picks from book sometimes and sometimes tries new moves
MSmits: something like that
MSmits: i just start a game process from the meta mcts leaf
MSmits: other than that, the two processes have no contact
Astrobytes: Hm. Well that sounds risky
MSmits: well the process is running, i am actually reusing it
jacek: during training i do more randomness
Astrobytes: "sometimes tries new moves" I mean
MSmits: oh ok
jacek: what if it misses better move
MSmits: yeah me too. I have an exploration of 2.5 usually
MSmits: in normal games i use 1.0
MSmits: the hope is that with more visits, it will also find better moves
MSmits: mmh my computer is spacing out, maybe I should have stopped the 10-game connect4 solver before i started generating 40 gb book :P
Astrobytes: anyway, just a brief visit, see ya all later
MSmits: gn Astrobytes
MSmits: btw i tabbed you and it said AstroHydes
MSmits: is this an alt?
MSmits: you hide with?
struct: gn
Smelty: MSmits y e s
struct: he uses it during contests due to chat lag
Smelty: ^
MSmits: ah ok
MSmits: 19 GB, going pretty fast
MSmits: I am writing binary int8_t's in c++ hope C# can understand it when I read it into my other program :P
MSmits: i used to write pure text, but that would be too big now
Smelty: hrmm
MSmits: it's one byte at a time right, so I am guessing it'll be ok... not sure though
ddreams: Should be perfectly fine
1415495: should be fine but be careful with sign/unsigned
MSmits: yeah that is what worries me
MSmits: I am writing signed bytes.
MSmits: so either it goes from -127 to +128 or -128 to + 127 right?
1415495: if you read it signed also, should not create a problem, everyone now use 2 complement
1415495: -128 -> 127
MSmits: whats 2 complement?
MSmits: oh ok
MSmits: good to know, thanks
1415495: it's always from - 2^(n-1) to 2^(n -1) - 1
ddreams: and has -0 and +0 :p
1415495: for integer, no
1415495: as it's a 2 complement
MSmits: I will just remember the negative part gets an extra 1 :P
ddreams: right
ddreams: 1's complement has signed zero
Zorg1: or float ...
ddreams: -127 to 127 and signed zero
1415495: exact
ddreams: Fall Challenge 2020
Promotion to Gold League in :
00H 00MN 27SC
ddreams: found the bug
ddreams: was generating repeated casts as legal moves, but didn't apply the repeat when making the move
Chainman: pewpepew
Chainman: Finally the weekend :grinning:
Chainman: why do I always get shortest mode in coc :(
ddreams: rng jesus
Chainman: hey
struct: hi
ddreams: Fall Challenge 2020 Legend League Rank 1/499
ddreams: lol, interesting that it says rank 1 when it has not computed a rank yet
struct: small bugs
ddreams: some kind of bug blindness.. small function which "obviously" is correct
ddreams: ended up at 59th... wonder how my contest code would have fared with just that bugfix
ddreams: not beating gold boss with either the mcst or the bfs version
Chainman: oh wow
ddreams: the fall challenge was two weeks after I became a father, so I wasn't really able to compete, but always bothered me that nothing seemed to work
ddreams: now I know, and can go to sleep with peace :)
ddreams: gn
Smelty: gn
Smelty: well, good afternoon for m