Chat:World/2021-05-29

From CG community
Jump to navigation Jump to search

IlluBlack: OMG Im gonna see thank you <3

Default avatar.png 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

Default avatar.png NotSureWhyThisWorks: Nice, I'll check it out

Default avatar.png ArtLiteracyStory: woooooooooooo

Default avatar.png ArtLiteracyStory: We are playing Clash of Code here! https://www.twitch.tv/andee927

Default avatar.png Taka-Li: hello

Default avatar.png Taka-Li: I have never bean the first one

Default avatar.png The_chosen_coder: start

Default avatar.png bg117: hallo

Default avatar.png rohrokz: https://www.codingame.com/clashofcode/clash/1781675f36403a1772fb910b2319321821d8dc1

jacek: happy Caturday

Default avatar.png Vishnu_31: https://www.codingame.com/clashofcode/clash/1781683505f6a8eaa9396ccf0b627a7e91026e2

BlaiseEbuth: :cat:

Default avatar.png polan: hello

Default avatar.png Anonymous_Maddy: hii

BlaiseEbuth: Hey Robin_Hood.

Default avatar.png ikustom: Exam

Default avatar.png ikustom: tes

MarijaLiutkeviciute: Hello

MarijaLiutkeviciute: :grinning:

jacek: good afternoon

Default avatar.png Taka-Li: how to set up a portrait

jacek: go to your profile

Default avatar.png Taka-Li: and then?

Default avatar.png Taka-Li: I donot see it

Default avatar.png Taka-Li: cannot find anything relate to protrait setting

struct: over your current avatar

struct: or the profile page

struct: on the*

Default avatar.png Taka-Li: thx

Xeno_1221: .

Default avatar.png scisaif: would you

Default avatar.png Voudrais: hello all

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

Default avatar.png Explosion-Scratch: Hallo

Default avatar.png Catas39: can you do here Clash of Code for gaming stuff ?

Default avatar.png Catas39: I mean not the Clash of Code section but something for gaming

Default avatar.png 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

Default avatar.png Saint_Rose: 1

Default avatar.png Xascoria: whats coc

MappedParadox: cock

Default avatar.png DeFau1T: hmm

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?

Default avatar.png Xascoria: hey guys, new around here, quick question

Marchete: and I swapped positions ofc

Marchete: 50% as P1 50% as P2

Default avatar.png 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?

Default avatar.png Xascoria: yes the code gives the right answer

jacek: you print answer for testcases. if theyre right the testcases pass

Default avatar.png Xascoria: but some janky mechanic will cause it to throw an error right after it

Default avatar.png Xascoria: I mean for the final result

Default avatar.png Xascoria: will i pass or fail in this case

jacek: will CG testcases catch it and fail

Default avatar.png Xascoria: it says success but it also gives an error

Default avatar.png Xascoria: so im not sure

Default avatar.png Xascoria: also the error stopped rest of the output from printing so that is actually part of my solution

Default avatar.png Xascoria: janky as hell ik

jacek: i tested and got 100% when after print i thrown a runtime exception

Default avatar.png Xascoria: nice

Default avatar.png Xascoria: ty

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 : &currentModel; Model* m1 = ((i & 1) != 0) ? &candidateModel : &currentModel;

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

jacek: https://medium.com/oracledevs/lessons-from-alphazero-part-4-improving-the-training-target-6efba2e71628

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

Default avatar.png ApplePie1212: HELLO

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

Default avatar.png ogulcan_uygun: Hello everyone

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

Default avatar.png Lyar: .

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