Chat:World/2020-06-08
eulerscheZahl: oh, another hypnotoad
hydroglicerol: there multiplying I thought he was you
hydroglicerol: you have to pronounce your dominance to attract mates its what all toads do
hydroglicerol: also what happens when I invite you to clash of code
eulerscheZahl: i will hate you forever
hydroglicerol: that doesnt sound horrible I was expecting instant death
LelouchVC2: I still can't believe its not butter
WINWINWIN: :/
LelouchVC2: Same
LelouchVC2: I tried it, it definitely does not taste like butter
Nerchio: euler you're not coming back to PR2?
NicatSadiqov: is it not pointer?
NicatSadiqov: in reverse question, 15 ---- xfb1111o17
LelouchVC2: A pointer would not be the same every run
LelouchVC2: So it wouldn't make sense for a pointer to be the output since it can't be confirmed
JKSTUDIOS2020: :wink:
Illedan: Nice rank Nerchio
Astrobytes: ooof yeah, grats Nerchio
WINWINWIN: Nicely done Nerchio, gl Illedan hope you win :)
WINWINWIN: PHP bots cannot come first :P
Nerchio: thx :P
kovi: great improvement nerchio!
Nerchio: :)
Nerchio: or maybe lucky submit
MSmits: PR-2?
WINWINWIN: Yes
Nerchio: ye
MSmits: cool, gj Nerchio
Nerchio: you will try MSmits?
kovi: well, being only specator i cant tell
MSmits: I like the game, but I don't have much of an idea of where too start. I talked to Thiesjoo and his ideas where also my ideas and after he implemented them he got stuck
WINWINWIN: Doesnt it seem a lot like GitC?
MSmits: I mean, when he explained them to me, i thought, well... that would be what I would have tried first
MSmits: yeah, WINWINWIN, that is the problem :P
WINWINWIN: :D
Nerchio: only a little bit similar
MSmits: also, believe it or not... i am still doing uttt :P
Nerchio: since your units don't really get stuck if you send them somewhere
WINWINWIN: Arent you 1st?
MSmits: not atm
MSmits: I could cheese my way to 1st if i want to, but i want a bot that is significantly better
MSmits: so i am rewriting it
MSmits: different searches etc.
WINWINWIN: Full rewrite to minimax?
MSmits: no
MSmits: mcts variant
MSmits: I think I have a good evaluation function, so trying various ways to put that in
WINWINWIN: Isnt the only important part of the search the eval function?
MSmits: you can use an eval function in many ways and that is pretty important
MSmits: but sure, if its bad, the whole bot is bad
WINWINWIN: Good luck :)
MSmits: it's like this: If you're doing a running competition and you're training hard and you're super fast, you'll still lose if you run in the wrong direction
WINWINWIN: Makes sense
eulerscheZahl: "Nerchio 11:51AM euler you're not coming back to PR2?" probably not
eulerscheZahl: i know 2 or 3 things to improve. but not really motivated
Csar00: /me
Csar00: /me
**Csar00 slaps enulerschezahi around a bit with a large fishbot
**Csar00 slaps csar00 around a bit with a large fishbot
eulerscheZahl: you spelled that wrong
Csar00: lol
Csar00: (╯°□°)╯︵ ┻━┻
WINWINWIN: Is FluentAssertions available in C# here?
hydroglicerol: hew
hydroglicerol: winwinwin
hydroglicerol: I am not 100% sure
hydroglicerol: but I think they have it
Hjax: i havent come up with a good way to decide when to re-explore areas in PR2 yet
Hjax: right now my pods just head to the enemy base if they dont see anywhere obvious to go
Hjax: but sometimes that results in the enemy retaking a lot of space on the map and killing me
eulerscheZahl: how mea
eulerscheZahl: n
Hjax: yeah people should just let me win
BigUP: seem's the best to do
IamTheSmix: what is the best structure to choose for storing data in the UTTT contest ?
Hjax: bitboards
Uljahn: for storing MCTS tree nodes you mean?
Hjax: oh i interpreted it as for a single position,
IamTheSmix: for nodes yes
Uljahn: some sort of an array of structs perhaps
IamTheSmix: I use this
IamTheSmix: class Node(): http://chat.codingame.com/pastebin/0a0c792b-dda2-43e8-a590-e3575a8deaae
IamTheSmix: Its cost me like 2 ms to create one node
ZarthaxX: python is not the right choice :sweat:
Uljahn: you have 1 sec on the first turn, so create a pool for nodes and reuse them later without creating new ones
Uljahn: ZarthaxX: i agree it's nearly impossible to reach legend with python but still you can learn MCTS with it
IamTheSmix: My idea is just learn MCTS and reach Gold iwth python
Hjax: id be pretty impressed if someone reached legend with python in uttt
Uljahn: IamTheSmix: for python i'd go with numpy -- it has nice structured arrays
IamTheSmix: I used numpy
MSmits: IamTheSmix dont store the boardstate on the node
MSmits: just the move is enough
MSmits: when you go down the tree, you apply the moves
Uljahn: also gold can be reached without trees with plain UCB1 like in MAB
IamTheSmix: @MSmits I agree I can remove the boardstate
IamTheSmix: for example : if I want to get available moves from board I use : np.argwhere(board == empty)
IamTheSmix: that cost me 1.9 ms
MSmits: I have a minimax tic tac toe bot in python that uses bitboards
MSmits: maybe you can walk through it for some performance improvements?
IamTheSmix: Yeah I would like to
MSmits: https://repl.it/@msmits/Tic-Tac-Toe
MSmits: there's a lot of draw functions and such, minimize that
MSmits: not sure if it is helpful, but it works quite well
IamTheSmix: thank you
MSmits: np... this is just an experiment of mine to practice python. I needed to learn it for teaching
MostComplicatedUsername: msmits you're not part of the pr2 contest?
MSmits: not atm no
MSmits: maybe later
MostComplicatedUsername: Why?
MostComplicatedUsername: Okay
MSmits: it's not an official contest so it's not really enough to draw me away from uttt :)
MostComplicatedUsername: Only 7 days left...
MostComplicatedUsername: Still doing uttt?
MSmits: yup
MSmits: well it's not just uttt, i am also experimenting with different mcts stuff. If I make something work, I can use it for other multis
MostComplicatedUsername: AH
MSmits: I used what worked for me in oware, in onitama and got nr 1 there
MostComplicatedUsername: Ah*
MostComplicatedUsername: :thumbsup:
IamTheSmix: MSmits I read somthing like hybrid MCTS
IamTheSmix: you know about this ?
IamTheSmix: any thoughts ?
MSmits: it's a bit vague. Have to know what you're hybrid-ing
Uljahn: solver? MCTS with minimax?
MSmits: probably using an evaluation function
IamTheSmix: MCTS with minimax
MSmits: right, you can do that
MSmits: a solver is not really a hybrid though
IamTheSmix: and mabye they add also multi MCTS
IamTheSmix: like two agents exploring two trees
MSmits: oh
MSmits: that exists
IamTheSmix: but this can't work on CG
MSmits: DUCT
MSmits: works on CG
MSmits: jolindien won xmas rush with it
inoryy: do you know if anyone used AZ for UTTT?
MSmits: whats AZ again?
inoryy: alphazero
MSmits: dont think so
MSmits: I was thinking about trying it, but you need so much calc time
IamTheSmix: I was hoping to train my NN on it
IamTheSmix: but can't on CG
Uljahn: i heard reCurs e have failed with NNs for uTTT
MSmits: re curse did try a nn yeah
MSmits: I think if you want to try a nn for it, you should try offline first, without the limitations of CG, to see if it is even viable
MostComplicatedUsername: I like your pfp ulj ahn
MSmits: there's so much room to experiment with NN's, I am pretty sure one is possible for uttt
MostComplicatedUsername: Imagine not just randomly placing
MostComplicatedUsername: smh
MSmits: I am also sure that any bot that is somewhat deterministic (doesnt have to be fully deterministic) can be beaten 100% when they are p2
MSmits: at least... I am 99% sure this game is solved as win for p1
Uljahn: MSmits: is you meta-MCTS still going?
IamTheSmix: maybe drawn !
MSmits: yeah
MSmits: it is
IamTheSmix: SmitsMax
IamTheSmix: mine is SmixMax
MSmits: IamTheSmix, I haven't succeeded in finding a path to draw that works
IamTheSmix: oh what was the problems ?
MSmits: I can take any series of moves of a game that I lost or drew as p2. Put it into mcts and then work back along the game until i find my mistake
MSmits: if i correct that mistake, i win as p1
MSmits: as p1 i mean
MSmits: I havent found a draw i couldnt solve that way
MSmits: the current line of play of karlis o I solved from ply 25 or so
MSmits: he always plays the same moves up to 25 as a reaction to my moves and then he loses
MostComplicatedUsername: just add an if statement for that one situation :)
MSmits: this version is not on the leaderboard though... I want a real improvement, not a cheesy opening book one
IamTheSmix: how about making two algorithms : minimax for like 25 moves early in the game and then switch to MCTS after ?
MostComplicatedUsername: And pretty soon your code becomes an if jungle
MSmits: I dont need an if statement
MSmits: I have an opening book. Every turn i check the book, if the gamestate is in there, i play from there
MSmits: ok, so 1 if statement :)
IamTheSmix: oh like Alpha-zero
MSmits: no alpha zero is completely a different thing
MSmits: it's a mcts with a neural network
IamTheSmix: he uses also opening book
MSmits: sure, it can do that, but thats' just a bonus, it's not the actual alpha zero
MSmits: you can use opening books with any algo
IamTheSmix: is it possible on CG ?
MSmits: what is
IamTheSmix: use openning book ?
MSmits: yes
MSmits: i have it on uttt and yavalath
MostComplicatedUsername: lots of typing...
IamTheSmix: how to get data on CG ?
MSmits: just part of the code
Hjax: got to be careful about the code size limits though
Uljahn: it's more like hardcoding, ye
IamTheSmix: ah but it souldn't over pass 50k !
Hjax: cant just export a massive tree
MSmits: for uttt mine is 8 kb and not even efficiently compressed
Hjax: how deep is it MSmits
MSmits: depends, as i said, against karlis o I go extremely deep, i just follow his moves. Maybe I use 50-100 moves just for his line of play. Probably 35 plies deep, some of them
IamTheSmix: I see intresting
Uljahn: does it account for symmetry?
MSmits: yes
MSmits: even symmetry between players
IamTheSmix: you took acount of reflexion too ?
MSmits: so an inverted board will have the same move
MSmits: with all Xs being Os
MSmits: reflection and rotation yes
IamTheSmix: did you get real bonux for rotation and reflection ?
MSmits: not that much
jacek: ohai
MSmits: well
MSmits: it does for the start
MSmits: because the first move of p2 has only 2 real possibilities
MSmits: corner and side
MSmits: without the symmetry it would be 8
IamTheSmix: I see
MSmits: jacek hi
MSmits: other types of transpositions are super rare though
MSmits: like, doing moves in a different order and coming to the same gamestate
MSmits: doesnt happen much in uttt
Nerchio: do you guys have any idea why i time out in the arena and never in the ide
IamTheSmix: hmm but it does for chess
MSmits: it does yes, but in chess you can also go back. Uttt is always progressive
Hjax: theres different computers running the games Nerchio, maybe you are getting a slower one sometimes in the arena?
Hjax: i dont think theres any performance different for java between ide and arena
Nerchio: my turns are usually like 10 ms there shouldn't really be timeouts ;s
MSmits: also ide runs without optimizations for some rlanguages
IamTheSmix: does mini-max can lead to legend ?
MSmits: sometimes optimization introduces bugs... it does in c++.
MSmits: I should say: optimizations reveal bugs
Hjax: i dont think theres any difference in optimization for java between ide and arena though
MSmits: probably not
MSmits: rust has it though
Hjax: rust is a neat language, i keep meaning to learn it
MSmits: Nerchio it might also be that the arena tests your bot against many different players and some play in such a way that causes timeouts
Hjax: but then i decide to do C++ instead, get frustrated with C++, stop, and the cycle continues :D
MSmits: the timeouts might not be actual timeouts due to calctime, but an infinite loop somehow
jacek: i did it! https://www.codingame.com/replay/471751954
jacek: darn reBless
MSmits: first win or did you make a better bot?
MSmits: better than re curse
jacek: first win and probably last one
MSmits: these NN's are ridiculously hard to beat
MSmits: I spent many weeks tweaking eval
jacek: got to tune the eval
jacek: still cant get the mcts with ept working
MSmits: my experience was that i would random rollout to depth 5 at first and slowly lowered it as the eval got better
jacek: do you use eval directly or if eval > 0 return 1 else return -1
MSmits: there's different ways to do it, but for onitama and oware i set a maximum/minimum
Nerchio: it says reading input takes 180 ms =/ is it possible that PR2 is an old game and is running different jvm than new games?
MSmits: so, say the maximum is 10k, then i divide the score by 10k and cap it to -1/+1
jacek: no tanh?
MSmits: should i do that?
jacek: sounds fancy
MSmits: I didnt get this from some paper, tanh would probably be better
MSmits: I should probably try that
MSmits: the danger of capping is that when you're ahead, all moves will count as a win
MSmits: but, that is what i am doing now
jacek: thats my problem probably
jacek: if locally eval says its win, all moves are win apparently
MSmits: could be. I have a parameter for the cap and i just fitted it till it worked
MSmits: the 10k i divide by
MSmits: the reason it is so large is because then i can use integers for all the features i calculate
MSmits: i am trying to google how to use the tanh, i remember seeing it in the context of training NN
jrke: astrobytes https://www.codingame.com/share-replay/471753135 ;)
jacek: tanh or sigmoid(eval) should give you percentage of winning.
MSmits: sigmoid yeah, i found it
jacek: though you should scale your eval. i.e. sigmoid(0.003*eval)
IamTheSmix: you have choice sigmoid or ReLu
MSmits: yeah, that scale parameter is what replaces my hard cap
jacek: i.e. if you want being 10 seeds up should give 90%, scale accordingly
MSmits: it's just a different parameter to fit
jacek: if eval returns 0.1 do you backpropagate 0.1 and -0.9?
jacek: or 0.1 and -0.1.
MSmits: i have scores between -1 and 1
MSmits: so 0,1 and -0,1
MSmits: meaning the sigmoid needs to be shifted
jacek: ahh right
MSmits: i got that
MostComplicatedUsername: I have a question about pr2
MostComplicatedUsername: Does your hq start out owned by you?
Hjax: yes
MostComplicatedUsername: Hmmm
MostComplicatedUsername: odd
MSmits: would be weird if it didnt
MostComplicatedUsername: true
Hjax: you also get vision of your opponents hq on the first frame
MostComplicatedUsername: https://www.codingame.com/share-replay/471754727 This is happening tho
Hjax: well, starting from the first frame
Hjax: so you can detect your opponents location
MostComplicatedUsername: I set my bot to move pods toward zones that arent mine
MostComplicatedUsername: And that happened
Nerchio: in private chat there is no pastebin automatic?
MostComplicatedUsername: yep
MSmits: nope
MSmits: just world chat
MSmits: it's to protect vs spam mostly
MostComplicatedUsername: msmits double negative = positive :)
Nerchio: http://chat.codingame.com/pastebin/d0e53e4e-e0c5-44b8-986d-e1b309634b7f
MSmits: yes, i am a positive person
MostComplicatedUsername: No, I mean-
MostComplicatedUsername: You answered his question with "No", meaning that
MostComplicatedUsername: THere is pastebin in private chat
jacek: we dont need no education!
Nerchio: for anyone who has 1 minute and understands java, my last printline says 180ms sometimes and this is just reading input there is nothing there that can take that much time
MostComplicatedUsername: jacek you just said that you do-
IamTheSmix: I saw red discussion sometimes is it private ?
IjustKilledutoo: hello guys i am back
MSmits: jacek, I am going to try to see if my oware bot is better with your sigmoid idea
MostComplicatedUsername: IamTheSmix red means your name was mentioned
MSmits: have to code it first
MSmits: should not be too hard
IamTheSmix: Ok okay thanks
Nerchio: guys timer starts when you read first input right?
jacek: is this in while(true) loop?
MSmits: float sigmoid = -1.0f + 2.0f/(1.0f + exp(SCORE_REDUCTION * evalScore));
MSmits: is this correcT?
Nerchio: yeah reading every turn jacek if you were asking me xD
jacek: sounds like tanh
jacek: which should be in math.h
MSmits: hmm ok
jacek: Nerchio well it starts timer before first input from server
jacek: or this.startTime != startTime?
Nerchio: in some other challenge guys from chat told me to start the timer after first input
Nerchio: just to make sure it doesn't start during referee time or something
MostComplicatedUsername: sigh... https://www.codingame.com/share-replay/471758653
ganond0rf: for clash of code, how do you get your ranking up :0
MostComplicatedUsername: Win more
MostComplicatedUsername: :D
ganond0rf: it's based on a score right?
ganond0rf: does the score go up every time you win?
ganond0rf: does anybody know how it's calculated lol
wlesavo: MSmits i also use tanh if i want a f(t) between 0 and 1, brillouin is also nice but its kind of not a standart one
Hjax: @ganond0rf yes it goes up when you win, i believe its similar to trueskill
Hjax: it takes the rating of the people you played against into account
MSmits: wlesavo yeah it seems nice. Weird that I didn't think of it before
MSmits: testing my sigmoid version on cg bench now
Astrobytes: thanks jacek, now look what you've done :P
MSmits: capping it between two values is really ugly
MSmits: :grin:
jacek: Astrobytes thats making it more challenging
jacek: maybe i should show him my prune array
Astrobytes: :D
Astrobytes: lol, absolutely
jacek: and im finally top 10
jacek: though barely above agade
Astrobytes: Yeah I saw, gj man
MSmits: whats your prune array
Astrobytes: An array of prunes
MSmits: agade's bot is pretty strong
MSmits: so thats cool
jacek: used in cegimax
MSmits: I had versions of my bot that won 70% vs robo and re curse, yet lost half vs agade... some RPS going on
Astrobytes: Yeah, that's params for you MSmits
MSmits: right
Astrobytes: I had weird values that kicked robos ass and no-one elses lol
MSmits: yeah
MSmits: this leads me to think an opening book would be really strong in oware
MSmits: jacek, dont you have one?
Astrobytes: iirc it was the 1 or 2 seed params for some weird reason
Astrobytes: jacek has endgame book right?
MSmits: seems hard to write those
MSmits: game can end in so many ways
Astrobytes: Yeah I was saying that the other day, not the best idea. Opening book would be more useful imo
MSmits: I was thinking about end game books for checkers. It's really useless there
MSmits: but they use them in real competitions
MSmits: just too little codesize on CG
MSmits: you can do it in bandas though
Astrobytes: yeah, we play special CG versions of games due to platform limitations
MSmits: true
MSmits: brb
Astrobytes: k
LelouchVC2: Not as true as our quality service since 1992
jacek: i has opening book for oware
jacek: it goes around 10-18 plies against you
Astrobytes: Oh you do? And endgame too no?
jacek: no endgame
Astrobytes: I swear you said endgame, must've been someone else
LelouchVC2: What is this? Chess?
jacek: trictrac has endgame
Astrobytes: Oware Abapa/Awalé
LelouchVC2: oh
Astrobytes: Might have been him, I've had a few Oware convos this past week or so
Astrobytes: Yeah I think you're right jacek
MSmits: cg bench is going well
MSmits: and this is just my first guess for that parameter
MSmits: -- TOTAL -- GW=64,29% [ W=52,38% L=23,81% D=23,81% ] [42 games]
MSmits: vs my arena version
MSmits: so... thanks jacek :)
Astrobytes: Whatcha doing? tanh(evalScore) ?
MSmits: for now this:
MSmits: float sigmoid = -1.0f + 2.0f/(1.0f + exp(SCORE_REDUCTION * evalScore));
MSmits: but its equivalent to tanh
MSmits: i guess
MSmits: tanh will maybe be faster
Astrobytes: SCORE_REDUCTION ?
jacek: what have I done...
MSmits: yeah because my eval has like 3k
MSmits: so has to be reduced
Astrobytes: Ah OK gotcha
MSmits: could be my new version is Rock vs my old versions Scissors
MSmits: oware is like that
MSmits: but the sigmoid thing can only be an improvement
MSmits: good news, i can also improve my Onitama bot with this
jacek: x_X
Astrobytes: rip everone
Astrobytes: *everyone
jacek: ban him before its too late
Astrobytes: Hey MSmits, spoke briefly with Thiesjoo, says your an awesome teacher :+1:
Marchete: by inviting euler or recurs3
Marchete: ups
MSmits: ah cool he is an awesome student though
Marchete: nvm
Marchete: old chat
Astrobytes: :P
Astrobytes: Yeah, seems so MSmits!
MSmits: next schoolyear i will only be teaching 11 50min classes a week or so
MSmits: I get a reduction because of studies
Astrobytes: Compared to how much right now?
MSmits: 15, but I also have some other tasks besides teaching
MSmits: basically it's a 30 hr a week job
MSmits: 75% of full time
Astrobytes: Cool, good you get a reduction for your studies and don't have to burn the candle at both ends too much
MSmits: I teach 4 50 min classes of CS next schoolyear and the rest is physics or physics-adjacent
MSmits: yeah
MSmits: i got a 20k scholarship basically
MSmits: so i use most of the money for that
MSmits: the work-reduction
Astrobytes: That's pretty sweet"physics-adjacent"
Astrobytes: oops
Astrobytes: "physics-adjacent" - ?
MSmits: yeah we have some subjects that are not called physics, but the stuff i do for that subject is basically physics
MSmits: like a class about solar cells
Astrobytes: Ah OK, specialised ones
MSmits: or a class about astrophysics
MSmits: yeah kinda
Astrobytes: Gotcha
MSmits: I have to do some design/research project next year and it's gonna be about teaching AI in CS
MSmits: design teaching materials and research the effectiveness
MSmits: I am going to do something with machine learning too... Great excuse to dive into it myself
Astrobytes: Nice! Do you need test subjects? CG might be useful
MSmits: well, it's going to be Dutch mostly, but if I write any software, I'll share
Astrobytes: As in for a population to study your teaching material effectiveness on
MSmits: yeah, but my teaching material will be in Dutch mostly
Astrobytes: Plenty Dutch on CG, sure they can put the word out for you
MSmits: ah yeah, i can show it to counterbalance or something
MSmits: might do that when the time comes, I will work on some project over the summer first, probably will try alpha zero. Just to do something practical with machine learning
Astrobytes: Nice. God help us all :P
MSmits: I doubt i will be making good bots with it. Robo is pretty good at stuff like this and he had most success with oware
MSmits: failed on some other multis, at least compared to his usual success
MSmits: i dont think it is easy
Astrobytes: Yeah, doesn't suit every domain, or requires a different approach
MSmits: I was thinking bandas might be good
Astrobytes: I think Csipsirip (sp. ?) is doing AlphaZero on Oware now too
MSmits: oh nice
Astrobytes: *Csipcsirip
MSmits: I am imagining you doing bird noises
Astrobytes: lol
Astrobytes: And Tiramon is working on NN with it too
MSmits: it seems natural, considering the parameter hell
MSmits: let the NN figure it out
jacek: also its simple game for input and only 6 outputs
MSmits: the depth of an alpha zero bot is crazy though
MSmits: they have like 30+ layers
RoboStac: the ones on cg don't
MSmits: oh
MSmits: just because you cant do that or because the games are simpler?
RoboStac: size limits
MSmits: ah I see
jacek: and computation
Astrobytes: Tiramon was tring some DQN with PER
MSmits: robo did you try training a bigger NN offline and test that?
Astrobytes: woops, chat scroll
jacek: google can afford that in minutes what normally takes years
MSmits: i think the CG size limit actually helps you in this regard, with a lower NN complexity, you need less training
jacek: but saturates quickier
MSmits: your bot will be weaker, but google wont do any better either, if they have to squeeze it into a small size
MSmits: right
RoboStac: I'm not actually at the size limit on oware, smaller / faster was working better than using all available size
jacek: TIL what was doing was stochastic gradient descent, not gradient descent
jacek: i was just too dumb for matrices
MSmits: RoboStac I imagine it's hard to say anything definitive with so many degrees of freedom in using a zero isnt it?
RoboStac: whereas my yavalath has had to be minified to fit
MSmits: ah yes, much more input and output
MSmits: more states
MSmits: statespace
MSmits: didn't you also do one for Bandas RoboStac?
RoboStac: proper alphazero has a much more complicated network structure too, I'm just using simple dense / convolution layers
MSmits: no residual?
MSmits: and skipping layers
RoboStac: oware/bandas/yava/breakthrough
MSmits: and such
RoboStac: no
Astrobytes: Did you get around to using hexagonal convolution on yava?
MSmits: I see
RoboStac: yeah, yava is hexagonal conv
Astrobytes: Nice.
RoboStac: it worked much better once I got that working
MSmits: hmm isn't it just a convolution NN that uses PUCT?
MSmits: with policy and value both drawn from the network
MSmits: seems more like halfa zero :)
MSmits: using a zero as inspiration but turned into your own coctail
RoboStac: yeah, you put inputs in and get a single score for that state and a policy score to guide the tree exploration for every child
RoboStac: if you ignore all the internals between the inputs and outputs it exactly matches alphazero :)
MSmits: nice
MSmits: well yeah
jacek: roboZero
Astrobytes: HalphaStac
MSmits: Arena GW=61,40% [ W=51,75% L=28,95% D=19,30% ] [114]
MSmits: pretty sure the sigmoid works
Astrobytes: Damn you jacek
Hjax: are you only doing selfplay MSmits?
MSmits: before i wasn't with oware
MSmits: i trained vs darkhorse, agade, recurse and robo
MSmits: well trained as in, fit params
MSmits: but shifting to a sigmoid doesnt require different opponents i think
MSmits: like fitting an exploration parameter doesnt
jacek: (should I tell him about texel tuning method for eval?)
MSmits: it's a pretty strategy-neutral change
Hjax: if you add enough params, it basically becomes a neural network anyway :P
MSmits: feels a bit like that
MSmits: texel tuning
MSmits: googling
jacek: :scream:
Hjax: texel is a rather strong chess engine
Hjax: that optimized its parameters in a specific way
MSmits: i would like auto fitting. But selfplay wont work in oware
MSmits: need opponents and thats a slow process with cg bench
Hjax: convince top players to send you their code for science
Hjax: that will surely work
MSmits: lol
jacek: you dont have your local 'arena'? without CG stuff?
LelouchVC2: What works every time is just looking at nothing intensly, and when they turn to see what you're looking and you snap a shot of their code
MSmits: I have one for 3 games, not for oware, because selfplay wasnt working to fit params
MSmits: so i never bothered to write a local arena
MSmits: wait
MSmits: did I?
jacek: i know! download the replays of tops players and make NN learn their moves
MSmits: ah no, i was working on a meta mcts for oware, not an arena
MSmits: supervised learning?
Astrobytes: I didn't finish my local arena for Oware
MSmits: jacek btw, i do something weird in self-play for meta mcts
MSmits: for efficiency, i let both players use the same search tree
jacek: oO
jacek: hm?
MSmits: so i dont have two instances of the game
MSmits: of the bot i mean
MSmits: just one bot playing moves from both perspectives
MSmits: saving the tree between turns
MSmits: that way i dont need two node pools and such
Astrobytes: Nice
MSmits: doesnt work when you are testign two different bots obviously
MSmits: i am not 100% this doesnt introduce some kind of bias
MSmits: but it worked so far
appel: lmao ndc
appel: i've not seen anyone this high of a level
appel: we're fucked
jacek: :?:
appel: a lvl 31
MSmits: where?
Hjax: smits is level 34
Hjax: assuming you are talking about profile level
appel: in our clash
Hjax: ah
MSmits: I've never done a clash
MSmits: and i would suck at it
eulerscheZahl: you didn't miss anything
MSmits: level doesnt mean that much
Hjax: yeah level doesnt mean much
Illedan: Clash is ok
MSmits: except in eulerscheZahl's case
MSmits: he can do everything
eulerscheZahl: except nintendo
jacek: even accept clash invitation!
Hjax: yeah but euler is also rank 1 on the normal leaderboards
Hjax: which is far more relevant than his level
MSmits: yeah
Astrobytes: Oh hey "enulerschezahi"
eulerscheZahl: the leaderboard for individual contests is what matters most to me
MSmits: say it enough and it might throw automatonnn off the scent
AutomatonNN: maybe i could have been that interesting
eulerscheZahl: hey anstrobits
Astrobytes: :D
eulerscheZahl: i saw that wrong ping some hours ago. missed the trailing i though
Astrobytes: I almost spat my coffee out, and I was on a phonecall at the time
MSmits: allright gotta finish some work. TTYL
jacek: dont forget to submit your bot
appel: there aren't an infinite amount of challenges
appel: the higher the level
appel: the more chance they did it before
appel: also the more experience so yeah...
eulerscheZahl: you don't rank up in levels for clashing
eulerscheZahl: so it's possible that a level 1 player knows (alomst) all problems
eulerscheZahl: or a level30+ user barely knowing any
eulerscheZahl: there is absolutely no correlation
Illedan: Wow, I didn't even manage to win vs a crashing player in PR2 -.-
Astrobytes: Not finished then Illedan? :smirk:
Illedan: Just tested 1 tiny little thing :innocent:
Astrobytes: :P
Illedan: I saw a stupid loss vs wala
appel: wait you don't get any experience for clashing
Astrobytes: Ah ok
appel: thats stupid
Astrobytes: Where did Nerchio's top 10 bot go?
Illedan: Hiding!
Astrobytes: lol
Nerchio: i don't like to sit in one place
Nerchio: so i submit whole day
Nerchio: xD
Astrobytes: Sima n has been creeping up slowly
Nerchio: also i had problems with garbage collector =/
Astrobytes: You use a pool? Allocate all resources on first turn?
Nerchio: not really
Astrobytes: JVM warmup issue?
Nerchio: hard to say but it got better now after i called System.gc() first turn
Nerchio: not sure if it does anything xD
Illedan: Sure it does if you you do some precalc which uses a lot of objects
Nerchio: yeah i did 160k objects first turn for path calculation :s
Illedan: :P
Nerchio: on the biggest map with 400 cells
Illedan: Then it helps
Astrobytes: calculate some dummy stuff first before your real stuff. And try without the gc
Astrobytes: See if it helps
Illedan: hmm, wonder if sneaky tactics helps on this one :thinking: hide a Pod in a corner and take all territory when enemy is not watching
Nerchio: i thought about it but
Nerchio: you need to get there somehow and you leave a trail
Astrobytes: Sure I saw that in a replay, pod skulking around near a high value zone and then essentially flanking opponent and stealing the territory
Nerchio: but maybe it's worth playing with some random single pods doing havoc :D
Hjax: i was happy that my python bot was able to bfs the whole map on the first frame without timing out
Hjax: i didnt have high expectations
Nerchio: :D
Astrobytes: :
Astrobytes: :)
Hjax: usually i write my first bot in python and then rewrite in java
Hjax: but python has been fast enough for pr2 so far
Astrobytes: Considering PHP in top 10, you should be OK :P
Hjax: is php slower than python somehow?
Hjax: thats impressive
Astrobytes: I thought they were around the same or PHP was worse. Caveat: my PHP knwoledge is a little out of date
Astrobytes: *knowledge
Astrobytes: I'm happy to be corrected if I'm wrong on that
AbundantPuddle: Are you talking about runtime?
inoryy: assuming it's purely language itself (e.g. no numpy), PHP should be faster afaik
Astrobytes: Cool, thx inoryy
Astrobytes: They've evidently improved it a lot in the last few years :)
AbundantPuddle: What inoryy said. However, Python is still better. :stuck_out_tongue_winking_eye:
inoryy: yeah, they're even adding JIT to PHP8
Astrobytes: I remember when python was a seldom used little scripting language and perl was king AbundantPuddle
Astrobytes: Oh nice inoryy
AbundantPuddle: I actually took asp in university so...
AbundantPuddle: Lmao
Astrobytes: Now if only they'd do something about the syntax :P
inoryy: I think it's fine-ish; the stl API was a mess when I worked on it, I assume they've improved it
inoryy: type system in PHP is much better than in python
Astrobytes: Honestly been yonks since I worked with it. Maybe I should look into it again.
jacek: yoink!
Astrobytes: jacek "noun, informal British: a very long time"
jacek: ooh
inoryy: same for me, last line of PHP code I wrote was over 5 years ago; I hear about it from time to time when I meet (ex-)colleagues :)
AbundantPuddle: My focus was in Java when I went to college for software development. On here, however, I've been trying to focus on Python. It is a very versatile language.
Astrobytes: I think my last PHP was around 2008-9?
inoryy: wow that's the dark ages
Astrobytes: Yes. We called them that at the time.
Astrobytes: I was only working with it informally but I was glad I had a good working knowledge of perl at the time
Astrobytes: Made old PHP look like VB or something
Astrobytes: And don't get me started on security issues
inoryy: I think I was lucky enough to start right when PHP5.3 came out which was the first good patch
Astrobytes: When off-the-shelf PHP CMS's became usable again :P
Astrobytes: I think I did some updates around 2009-2010 but my memory is a bit sketchy
IgorKoval: guys, is anyone here?
Astrobytes: Nope.
IgorKoval: look, It says there was a failure, but the found value is the same as Expected, how is it possible?
IgorKoval: http://prntscr.com/sw4luy
Astrobytes: Been a looong time since Idid that but you need either spaces or a newline, I forget
IgorKoval: yea, I tried both of them but looks the same
IgorKoval: you see that I have the right amount of spaces
IgorKoval: and if I append \n it also does not help :S
Astrobytes: Do you need a newline first? I honestly cannot remember
IgorKoval: am I able to print while scanning?
IgorKoval: or do I need to scann all and only then print?
jacek: you can print to stderr
IgorKoval: yes I can, thar what I did with L H and Msg
IgorKoval: it is really wierd, because It says That it found the same as expected, but still is a failure xD
IgorKoval: ok guys, thank you anyways
IgorKoval: ok, I think the problem is that I can't print before scanning every argument
Astrobytes: Ohhh yes you print debug to stderr
Astrobytes: not to stdout, only print the answer to stdout
Astrobytes: System.err.println(whatever);
IgorKoval: yes, that's what I was doing, but that is for debug
IgorKoval: for the answer I print to stdout
IgorKoval: System.out.println(answer_string);
IgorKoval: http://prntscr.com/sw4t57
Astrobytes: Oh I see, yes, don't print to stdout until after you've read everything in
IgorKoval: oh ok, I print only after reading everything?
Astrobytes: Yes
jacek: eeyup
IgorKoval: ok, so I need to store the string
IgorKoval: and print in the end
Astrobytes: "eeyup"
IgorKoval: still the same problem
IgorKoval: http://prntscr.com/sw4usx
jacek: ohai
Astrobytes: It's like what's up/what's happening in Polish
Astrobytes: like "wassup"
IgorKoval: ah haha ok, I dont speak Polish xD
Astrobytes: I don't either, just worked with a few guys :P
IgorKoval: I'm fine, just a bit sad that the code is not being accepted xD
IgorKoval: as they say, "the machine is always right"
IgorKoval: it only does what we say to do
jacek: AutomatonNN is that true?
AutomatonNN: for now i want to see the code and i didn't even know that the end of the game
IgorKoval: haha how he appeared here right after your comment xD
Astrobytes: What do you think Automaton2000?
jacek: AutomatonNN is addict
Automaton2000: what do i do this?
AutomatonNN: eulerscheZahl is there a way to see a replay of your code and i can't see the result
Astrobytes: AutomatonNN are you a bot?
AutomatonNN: why do you think it's the best to get in the contest ?
Astrobytes: What about you Automaton2000, are you a bot?
Automaton2000: except if you do it right
IgorKoval: yes AutomatonNN is a bot, just answers random stuff xD
struct: IgorKoval you are printing an extra soace
HaZardous: hey everyone , im new her, hope youre having good day
struct: space*
struct: I think
Astrobytes: I said that originally but where?
Astrobytes: (well I said space or \n)
IgorKoval: hmm I don't think so
IgorKoval: he is asking for an extra space
IgorKoval: if you see the quotes
IgorKoval: it contains an extra space "### "
IgorKoval: @struct thank you anyways for the review xD
IgorKoval: hey HaZardous! ça va?
jacek: good good Astrobytes, keep pushing me up
Astrobytes: fk off jacek :P :D I'm just testing some eval params
HaZardous: @igorKoval what? im sprry i speak english and urdu
IgorKoval: ahah it was just a joke, it means how are you in French xD
Astrobytes: Be pulling you back down soon jacek :D
jacek: evil params
IgorKoval: what are you talking abou guys? Astrobytes
HaZardous: oh im good :p, how you doing??
jacek: multiplayer game, oware-abapa
Astrobytes: A multiplayer game IgorKoval, Oware Abapa
IgorKoval: I'm fine to :) just thinking what's wrong with my code -.-
Astrobytes: Nope. I know exactly what's wrong with mine.
Astrobytes: It's s**t :)
IgorKoval: haha I know that game Oware abapa
HaZardous: oh here comes the bragger, haha good for you
Astrobytes: lol no, not bragging HaZardous, it's completely true
IgorKoval: it is really wierd, it accepts the answer if I just hard coded, but if I print the variable with the same string it is not accepted -.-
MostComplicatedUsername: My pr2 bot is now winning consistently against the ai
HaZardous: im happy for you astrobytes :)
Astrobytes: IgorKoval stderr your hardcoded result, stderr your generated result and check the difference
MostComplicatedUsername: https://www.codingame.com/share-replay/471787381
Astrobytes: I'm not HaZardous, I'm losing!
Astrobytes: :d
Astrobytes: gj MCU :)
MostComplicatedUsername: It's random movement unless there's a zone I don't control right next to it or the enemy's hq is right next to it
IgorKoval: Astrobytes, I find no difference http://prntscr.com/sw59er
IgorKoval: congrats MCU xD looks nice
jacek: does the answer += "\n" make unnecessary new line for printLN?
Astrobytes: aha
IgorKoval: haha yes it does, but I print it all in one command
jacek: but then you would print 2 new lines at the end instead of one, no?
IgorKoval: yes, but it puts \n in the end of the string, so if you have a string like "potato\n apple" it will still have 2 lines,
jacek: what about "potato\n apple\n"
IgorKoval: it will end up with 2 lines, and 2 emplty lines in the end
IgorKoval: like: http://chat.codingame.com/pastebin/aa36621b-1e0f-4bab-a760-a0c12cd46d7b
jacek: ok
IgorKoval: do you know if answer_string += String.valueOf(answer); affects the string?
IgorKoval: I mean if it changes the characters in some different way xD
jacek: what if you used new StringI(answer)
IgorKoval: answer is an array of char
IgorKoval: cannot be printed directly
Astrobytes: valueOf can convert char array to string tho
IgorKoval: yea, thats what I did
Astrobytes: Sorry, doing about 4 things at once here :/
Astrobytes: You can just paste your whole code if someone has time to go through it?
IgorKoval: sure, its not that long
Illedan: PR2 froze again? :(
IgorKoval: http://chat.codingame.com/pastebin/b12fa62e-6f98-448d-82bb-f437d3d12734
Astrobytes: Illedan, please do me a favour and confirm that in the debug channel on Discord, they don't seem to take it seriously
Nerchio: I don't think you should Astrobytes
Illedan: hm?
Astrobytes: I shouldn't what Nerchio?
Illedan: Works again now
Nerchio: i think you were talking about pasting whole code :D
Nerchio: thought*
Astrobytes: Yes, just for ASCII Art
Illedan: w00t, won re Curse on submit :tada:
Astrobytes: Easy puzzle, we're helping him debug :)
Astrobytes: Nice Illedan
Nerchio: I didn't get a single game vs marchete or recurse yet ;pp
Illedan: It's no fun
Illedan: Straight into lose streak
Nerchio: ;(
Illedan: Easy to beat re curse on small maps :D
jacek: IgorKoval the string is length of 100 :o
IgorKoval: hmm is that a problem?
IgorKoval: I was just thinking abou that
IgorKoval: -.- yes, it was accepted if I define the string as 4 lenght
IgorKoval: so it means that it was copying the null characters too :S
Astrobytes: oh lol, I forgot to put your code inside the Solution class :facepalm:
Astrobytes: Anyway, that's only gonna work for that one testcase
IgorKoval: yea, I know, it was just a test code xD
Astrobytes: Cool.
IgorKoval: now its progressing :P
IgorKoval: done the first 3 cases
Astrobytes: Thank jacek, I can't even paste code correctly :P :D
IgorKoval: http://prntscr.com/sw5q63
IgorKoval: heres the code if you want to use it
IgorKoval: http://chat.codingame.com/pastebin/4454d9be-d0a9-4f06-b02e-38efdd3a3a22
Astrobytes: No I did it already, just not in Java
Astrobytes: Congrats IgorKoval :)
IgorKoval: do it in Java for another achievement :P
Astrobytes: I try to do as little Java as I possibly can :P
IgorKoval: why? you dont like java?
Astrobytes: Hehe, not my thing no :)
IgorKoval: what language you use?
Astrobytes: C++ mostly, depends what I'm doing
Astrobytes: I'm not getting into a "my language is better than yours" fight btw ;)
IgorKoval: I usually prefer C, but it have been a lot since I programmed in C so I forgot the rules about the pointers and some funcions
IgorKoval: haha I'm not a programmer, so I have no opinion about the languages xD
Astrobytes: Yeah I'm actually a biologist, not a programmer by trade
IgorKoval: I like Java, and Python seems nice from my little experience
IgorKoval: so why do you need programming in biology? run simulations?
Astrobytes: lol, well, there is bioinformatics which deals with that, but I don't do that. I'm assistant manager at my local wildlife conservation centre and I do pharmaceutical regulatory affairs part-time
Astrobytes: CG & programming is just a hobby these days
inoryy: assistant to the manager*
IgorKoval: hehe that's a nice hobbie :P
Astrobytes: More of a case of manager to the designated manager inoryy (all industries are the same)
Astrobytes: Things are a bit messed up now though since the COVID outbreak
inoryy: it was a reference to the best tv show of all times :P https://youtu.be/6tQG15iM1UI
Astrobytes: ohh, never watched the American series
Astrobytes: Did you watch the UK series?
inoryy: it's one of the rare cases where the remake is better
Astrobytes: That's so *not* the UK opinion
inoryy: yeah, re-watched both multiple times
Astrobytes: lol, I'm not the biggest fan but I'll maybe give the US version a go
Astrobytes: Working through Better Call Saul rn
inoryy: I think if we go by S1 vs S1 then UK one is a bit better because the US one just tries to replicate it but the deadpan jokes don't land as well
FriendlyFire: hey guys I have serious question
FriendlyFire: what the imax function excatly do ?
inoryy: but US series has the benefit of developing
Astrobytes: See that's what I worry about with the US ones, is that British humour is what makes The Office the Office (if you get me)
inoryy: FriendlyFire can't answer without knowing more context, e.g. what language
Astrobytes: Anyway, the best judge is the viewer so I'll give it a go at some point
Astrobytes: grrrrrr a leaderboard freeze when I'm right under jacek in Oware
Astrobytes: One is not amused
FriendlyFire: what 'imax' does jesus TELL ME
DestroyTasmania: yo chill
FriendlyFire: man I NEED TO KNOW MENTALY
inoryy: well, it's not part of C++ STL so still missing context
Astrobytes: imax? You're doing The Descent?
inoryy: if I were to guess I'd say it casts vars to int and picks a max from there
Astrobytes: There's a button to the left. Says 'Hints' on it or something. Read them.
FriendlyFire: at list that.. thanks man
Astrobytes: I mean *read*
FriendlyFire: I read them but I didnt figure it out and I did
Astrobytes: As in process it in your head and understand it. Otherwise you'll get nowhere.
FriendlyFire: sure I will try it again tommerow
Astrobytes: Cool. Don't give up.
FriendlyFire: which language you learn or learned?
Astrobytes: I mostly program in C++ but that's not relevant
FriendlyFire: sure just curious bro
Astrobytes: I can use a lot of languages depending what I need to get done
Astrobytes: I'm not a dev btw
Astrobytes: I already have 2 jobs! :D
Astrobytes: It's not.
FriendlyFire: hope to get a job it will keep me motivate to learn more
Astrobytes: No, your motivation comes from you
Astrobytes: Don't expect it from a job, you are your own master
FriendlyFire: yea but if I have a "code enviroment" it will help me a lot
FriendlyFire: to get better for my economy.. and life
Astrobytes: Depends on the environment. Not all working environments are created equally ;)
Astrobytes: Motivate yourself to learn and you'll go far
FriendlyFire: yea I starting now with 20 min every day
Astrobytes: Better than 0 minutes a day right? :)
FriendlyFire: thats the nice think when I start its easly comes to an hour lol
Astrobytes: Shows you have interest. So learn and don't give up, every problem is an opportunity to learn - don't forget that one
FriendlyFire: yea mistakes its good if you learn from it :sunglasses:
Astrobytes: Yes, 100% I gotta go now, take care dude and good luck :)
FriendlyFire: ok I go now bro add me I new here
Nerchio: ranking stuck (
boom69: i really suck at coding
Crypticsy: hey the leader board for Spring Challege 2020 is bugged, i don't get any score after i submit neither does my score changes while the battles are working fine
jrke: seems CG leaderboard stucked for a while not computing for PR2 and Bit runner also