From CG community
Jump to navigation Jump to search

jacek: good morning

pp704554: Good morning

jrke: jacek i wanna know what does caturday means?

dbdr: caturday is tomorrow

jrke: what does it means

dbdr: :smiley_cat:

jrke: :nerd:

proscripterlol: :D

proscripterlol: ;)

proscripterlol: :P

proscripterlol: :'(

proscripterlol: :baby_tone4:

Default avatar.png JErin: hello everyone

Default avatar.png JErin: :grin:

proscripterlol: hi

jacek: everyday shall be caturday

jrke: :money_mouth: jacek

jrke: i like your all minimax bots jacek

ZombieAuntie_6b84: Hello guys

jacek: minimax bots?

Default avatar.png jiki: hello maybe who use emacs exwm

Default avatar.png Vitsarutnan: <^^^>

Default avatar.png Vitsarutnan: <^>

jacek: horee shit im 1st in oware

Astrobytes: gg jacek, I'm impressed. What did you change?

jacek: last iteration i fixed my move pool and added tree reuse

Astrobytes: It seems to be working!

Astrobytes: good score too, think you can improve it?

jacek: if I learn AVX stuff for my eval

Astrobytes: ah, have fun with that :)

baobigbang: how to learn more about backend python?

tomatoes: do backend python

baobigbang: :D

Astrobytes: It's not funny, it's true.

Astrobytes: Practice.

baobigbang: thank everyone :D

whay: hi

TheSpiffiest: Craaaap. I have an awesome job offer to do some amazing stuff in C, but I'm trying to convince them to use Rust instead so I can maintain some sanity

TheSpiffiest: I think I am going to turn it down if any little typo blows the stack somehwere

Default avatar.png hi

Default avatar.png MohamedBENHARIZ: Hello Everyone

Default avatar.png hi there

ConvexHullTrick: hello

Default avatar.png :dizzy_face:

Default avatar.png is the boost a Boolean?

YCS-Venom: Guys

YCS-Venom: i want to tell something

Default avatar.png oh

YCS-Venom: Hello world

YCS-Venom: :grinning:

YCS-Venom: who have solved ASCII Art?

Default avatar.png *everybody leaves the chat*

YCS-Venom: i have solve it but there is a problem in case 3

proscripterlol: i cant do any ascii art problems

proscripterlol: it confuse me

proscripterlol: :(

YCS-Venom: it's very simple

YCS-Venom: but it depends on which language do you use

proscripterlol: what do you use?

Default avatar.png FLQ4: someone help

Default avatar.png FLQ4: i am getting bad at problems

YCS-Venom: python

YCS-Venom: which problem?

Default avatar.png hi there. i am noob. is the boost in coders strike back a Boolean

ConvexHullTrick: hi guys i code for 1 $

Default avatar.png i fuck for $1

YCS-Venom: for one hour?

YCS-Venom: Can you explain

tomatoes: boolean?

YCS-Venom: True && False

tomatoes: False

jacek: SyntaxError: invalid syntax

AbhijoySarkar: Ssup

AbhijoySarkar: Guys

Washier: yoyoyo

AbhijoySarkar: YOYOYOY

Default avatar.png Schwase: ra ra rasputin russias favorite love machine

Washier: haha

Washier: love that track

Washier: yes, i'm old

Washier: like a million years old

Apurba: how to solve ASCII ART?

tomatoes: that's classified information

Default avatar.png Schwase: read inputs

Default avatar.png Schwase: store values corresponding to an alphabet

Default avatar.png Schwase: print called for values

Default avatar.png Schwase: add considerations for exceptions and oddities

Default avatar.png Schwase: rinse and repeat

k4ng0u: anyone has tips on how to make simulations faster on othello? I currently use 64bits bitboards (one for me, one for opp) but it's still really slow. It's likely that the way i compute the next move is really suboptimal (iteration on every cell in all directions until I find a move)

MSmits: k4ng0u use this

MSmits: was shared on this chat before by RoboStac

MSmits: you can make it even faster using SIMD instructions, but this is already quite fast

Astrobytes: Hey MSmits, donno if you fixed it but your bot was printing a9 again last night

MSmits: oh really

MSmits: never fixed it then lol

MSmits: I've given up on my eval for now. I need to find a way to automatically tune weights

MSmits: like TD or coevolutionary learning

MSmits: can also use that for other multis

tomatoes: 8x8 is not enough

Astrobytes: lol

MSmits: hehe

k4ng0u: thanks MSmits, I think "Storing the disks in bitboards is memory efficient, but it's nothing more than a cute trick unless we can operate on them efficiently" is a good summary of why my bot is performing quite poorly despite using bitboards :D

MSmits: yeah thats true

MSmits: though, if you're doing mcts or similar, you can store the board on the node if it is small

MSmits: so it helps even if your move generation sucks

tomatoes: i stuck on training too :slight_smile:

MSmits: yeah, I get the gist of both TD and coevolutionary training, but I need a good example really

MSmits: i dont want to spend the time to figure it out all on my own

MSmits: oh btw Astrobytes I found a way to cheaply calculate disk stability, but then it didn't improve my bot at all

Astrobytes: I've got my offline runner ready, and that's about it lol

Astrobytes: Oh really MSmits?

Astrobytes: I thought stability would be important

MSmits: so far the only thing that i've seen work for my bot were mobility, C and X corners

MSmits: yeah, it even solves games slightly sooner

MSmits: because when you have 32 stable disks you win

MSmits: 33 that is

Astrobytes: Hm yes, that's true

MSmits: so it should work, but who knows, maybe it's being hurt by a different parameter that is too low or high

MSmits: thats why i need TD or similar

Astrobytes: Oware all over again

MSmits: yep

Astrobytes: Wonder if a GA would be any good for tuning

MSmits: thats basically coevolutionary learning

MSmits: but I've never done a GA either

Astrobytes: Yeah, sorry, just thinking aloud

MSmits: i've skimmed through a lot of papers

MSmits: seemed TD was able to train an Othello bot more narrowly, performing well against strong bots

MSmits: GA was more versatile, making bots that destroy weaker bots, but performs somewhat worse against strong bots

Astrobytes: Interesting

MSmits: its not that strange i think if you consider how the process goes

MSmits: TD can be vulnerable to overtraining I think

Astrobytes: GA also vulnerable to overfitting

Astrobytes: Anyway, gotta go for now, bbl

MSmits: cya Astrobytes

icecream17: people are spawning at the same place i am

MSmits: they use the same heuristics as you do

eulerscheZahl: you found the annoying part of platinum rift

eulerscheZahl: there are some ways to counter this. but only by chance, depending on your opponents it might be worse

eulerscheZahl: like spawn in 2nd turn or spawn at 1 continent only

eulerscheZahl: some even take the antarctica and hope for a 2nd place in 4 player matches

icecream17: all of those strategies sound very interesting...

icecream17: Ok i got a pesudorandom generator, but i don't know what to do with these numbers: (sample) [551568, -54194, 1, -2606272, 624, 13182, -8, -1791432, 25492589328]

nitekat: strange... on one CoC I pass all the tests but get 0% after I submit the result... don't get it...

thanhhv317: hi

thanhhv317: i am Thanh

tomatoes: what was your plans about random generator?

thanhhv317: am using JS, with nodejs, react js and mongo i am becoming a fullstack developer

MSmits: I'm not even halfstacked

icecream17: spawn in places with maxplatinum but messed-up-ish randomly

MSmits: but hi

icecream17: i had an idea to detect "sections"

Washier: short stacked myself

MSmits: I think I'm bytestacked

Washier: haha

Astrobytes: My stack overflows

Washier: cant beat that

Washier: is that a good thing stro?

Washier: *Astro

Astrobytes: Sometimes? :D

Astrobytes: I quite like stro, like 'stro

Washier: yes. me too. thats how nicknames are created :)

Washier: 'stro

Astrobytes: Got a good ring to it

Washier: what's the cat's name?

Astrobytes: Gizmo

MSmits: cool

Washier: ah, had a Gizmo once. was awesome

Astrobytes: She has a big chin, makes her look just like Gizmo from Gremlins

eulerscheZahl: like Gizmo from wechall

Astrobytes: lol, every time

eulerscheZahl: yes :D

eulerscheZahl: am i the only one mentioning that?

Astrobytes: Yup!

Washier: no idea what that is

MSmits: i only know the gremlins reference

eulerscheZahl: i guess wechall isn't that popular after all

Washier: mee too

Astrobytes: For the uninitiated:

eulerscheZahl: oh, it's not even gizmo :D

Astrobytes: Just noticed that

Astrobytes: Close enough, I always read it as Gizmo

Washier: hardcore

Washier: sure people know this :

MSmits: Astrobytes I think I fixed my A9 error

Astrobytes: When 'Defend the Web' was I won a t-shirt

Astrobytes: Years and years ago

Astrobytes: What was it this time MSmits?

MSmits: i was reusing the tree while checking whether the boards for p1 and p2 are the same, forgetting that the player that is next to move is also a factor

MSmits: with passes that will screw things up

Astrobytes: Yes, indeed. And I believe passes were involved when I saw it happen

Astrobytes: Yes Washier

MSmits: my bot is in the ballpark with rank 2-4 now I think... I simply added all features I could think off, gave them a weight and it worked somehow. Turned everything back on :P

Washier: talent.

Astrobytes: Nice

Washier: when i try to do that it doesnt work that well :)

Astrobytes: Did you see jacek's Oware?

MSmits: yeah, it's a NN?

Astrobytes: Not 100% sure what it is, some hybrid thing

MSmits: I see

MSmits: I really need to figure out a way to auto-fit weights

MSmits: no more of that cg bench :poop:

Astrobytes: lol

MSmits: it would be cool if i could create a program where I feed it a bot with arguments for current weights and it starts training and changing those weights

MSmits: it could even be arena-less

MSmits: because all my bots have a solver

MSmits: so i dont need the referee

Washier: GA

MSmits: mmh not a GA in the usual sense I think

MSmits: a GA usually has a fixed scoring system for a solution

MSmits: my bot will just lose, draw or win some number of times

MSmits: the opponents will vary as well


MSmits: nice submit right? jacek is beating me hard, but otherwise it's cool

Washier: solid

Astrobytes: good job man

tomatoes: :fire:

MSmits: :)

Default avatar.png Hanifu: nice

Scarfield: For each weight run N sims 3 times with different values. Assume the winrate is 2nd order polynomium with respect to the weight value, solve for "optimum" weight value. repeat for next weight. Or something like this approach could work i suppose

MSmits: thats what i've been doing for 2 years

MSmits: more or less

MSmits: but i run against CG bench players. Even though i pick several, I end up overfitting

MSmits: usually I pick 4 opponents around my rating, one or two of which are stronger and i simply take the global winrate as the score

jacek: yes, for oware its jacekmax and MLP

Washier: multi layer perceptron?

jacek: :horse:

Washier: so NN :)

jacek: yes, NN

Scarfield: if you are using a prune array, it should be JaCegMax

Washier: noice

Astrobytes: lol

Astrobytes: Hi Prunefield

Scarfield: hello, but heading off again, noobs in CS needs owning

Scarfield: 'stroBytes :p

Washier: haha. 'stro

karliso: How does NN work? Is it like large lookup array with multiple inputs?

MSmits: NN in general karliso?

karliso: In context of CG

jacek: in my context i use it for eval

karliso: So it is like precumputed eval function

MSmits: mmh kinda

Washier: yes, but trained.

jacek: somewhat

MSmits: a NN is basically a giant function with thousands of parameters

Washier: true

karliso: But suppose i have 8 inputs... with 8 values... [8][8][8][8][8].. it gets large very fast.

MSmits: it's not a lookup array

karliso: So how do you retrieve value?

jacek: imagine chess. and evaluation function which takes material into consideration. so youre summing pawns * weight1 + rooks * weight2 + queens * weights3 etc.

MSmits: there's layers of nodes and each layer of nodes is connected to the next

MSmits: until you get to output layer

jacek: your input is number of your pawns and enenmy pawns, you multiply by weights and get the result

MSmits: the multilayered approach makes the network able to encode higher dimensional patterns

MSmits: similar to ntuples, but it could be anything

jacek: in NN you have hidden layer, which would take the results, scramble them more and give output

jacek: and hidden layer could see some more interactions between pawns and give better eval

MSmits: karliso you should really watch some introductory videos, it's not easy for us to explain it here

karliso: I have watched about NN, was a while back.

AntiSquid: i question my own time investment after reading chat :/

MSmits: how so AntiSquid?

icecream17: Example NN:

icecream17: Input 5

icecream17: Node 1: 5 * weight + bias = 2

karliso: How do you train NN?

MSmits: you play tons of games

MSmits: the results are backpropagated along the network

Washier: also fancy math called backprop

MSmits: adjusting the weights

MSmits: its not like backpropagation of mcts though

MSmits: it uses gradient descent

AntiSquid: look up any tutorial vids karliso

karliso: So you use referee to play games?

AntiSquid: yes

MSmits: yes

MSmits: but create your own ofc

AntiSquid: well depends how you wanna train it

karliso: Your own referee?

Washier: you can also evolve NN's :)

MSmits: you've never made your own copy of a simple arena for a game?

MSmits: not even uttt?

AntiSquid: wdym evolve

Washier: yes, karliso you are the utt champ :)

karliso: I did for hypersonic... but then i realized someone had already programmed the thing.

MSmits: ohh

MSmits: so you use a java referee for uttt?

karliso: yes...

jacek: w00t

MSmits: oh thats fine ofc, it's not really the bottleneck anyway

AntiSquid: MSmits i mean look how easily he ranks higher, then asks questions about more complicated stuff (not first time it happens) ... clearly i fked up somewhere :p

MSmits: it's just so simple to code a uttt game

Washier: use the NN as the eval. GA's work by evolving a solution, that means crossing over and mutating the population continiously. Survival of the fittest. you play the population against each other to rank

Washier: takes time.

inoryy: did someone say NN?

MSmits: AntiSquid it's because I only learn what I think I need and then I leave out a lot of stuff that is generally assumed common knowledge

MSmits: oh you mean karliso

Nanosplitter: Is there a good reason no one has made a chess competition on CG?

MSmits: yes he does this too, maybe more so

MSmits: Washier isnt this coevolutionary learning?

Astrobytes: inoryy has been awoken from his slumber

MSmits: because that may be what I need to learn about

karliso: But even if NN is good it may not be the best approach in CG due to code size.. right?

AntiSquid: i think thats called ensamble, personally would have thought a self modifying NN is evolving ... Washier

MSmits: in some cases that's true karliso

MSmits: the simpler the game the easier it is to train a bot and the more easily it fits into codesize

MSmits: train a NN i mean

AntiSquid: Nanosplitter people afraid of precomputed moves

MSmits: remember that the codesize limit is also an advantage in that you're forced to train simpler NN's and it makes sure you dont need to rent TPU's to even train them :)

inoryy: Astrobytes :D

Nanosplitter: My NN is bronze in UTTT, but that could just be because I didn't do a good job training it

MSmits: Nanosplitter currently there are no top-NN's in uttt

Nanosplitter: AntiSquid what if I used the

inoryy: MSmits TPUs aren't actually the biggest in terms of model size capacity

Nanosplitter: bumped enter lol

MSmits: i'm just throwing out fancy words inporry

MSmits: inoryy

jacek: why maths in backprop is so complicated

AntiSquid: NN best approach, just need to squeeze it in after you figure out best model ...

Nanosplitter: Really Bad Chess (an app) strategy, of randomizing the chess pieces in their staring pos

jacek: why do they use derivatives and whatnot, when in code its just simple loops and additions

MSmits: it doesnt seem complicated. Coding it effectively seems more so

karliso: My uttt codesize is close to 100K and I even got rid of opening book.

MSmits: how does that happen karliso?

Washier: Backprop is not the same as evolving. Evolving it means you're searching randomly, backprop means you're training it against a ground truth.

MSmits: large variable names? I have less than 1k lines


inoryy: you're mixing something up, Washier

karliso: 3700 lines

MSmits: how is that possible karliso, what did you put in that bot?

MSmits: my bot is considered large at 1k

karliso: I guess some parts of the code have evolved in great detail.

AntiSquid: jacek "because a formula is easier to read and understand at a glance"

MSmits: they must have karliso

Astrobytes: that Really Bad Chess is like Fischer Random++

tomatoes: 1127

Nanosplitter: Yeah, does that seem feasible for CG?

Nanosplitter: Removes precomputed moves

Astrobytes: I think so. struct was considering doing Fischer Random and regular, this would be pretty cool I think

Astrobytes: But he's busy at the moment

Nanosplitter: I'm just worried that I can't gaurentee each board would be 100% fair

AntiSquid: but why not have real chess on CG ? alpha zero plays differently from the other bots and wins

Astrobytes: Well, limits could be set I guess

MSmits: isnt chess too complicated to use alphazero on within CG limits

Astrobytes: AntiSquid struct was gonna do real and variant chess

MSmits: I doubt it will work

MSmits: I think a ab-bot will win

MSmits: with strong openings and such

AntiSquid: struct slacking? give him more tasks

Washier: if the eval is good certainly?

Astrobytes: He's working on something rn

Astrobytes: So wouldn't be for a while yet

Nanosplitter: MSmits Would it still win if you did the really bad chess style?

Nanosplitter: If you can't preset openings

MSmits: same problem for anyone

Washier: haha

Nanosplitter: You guys think I should try and make a really bad chess game for CG?

icecream17: that's a great idea

MSmits: maybe have a real chess first and see how well it works within the CG framework?

MSmits: or do this first

MSmits: before struct makes his

MSmits: if it fails, its a waste of effort for 2 people otherwise, that would be sad

Nanosplitter: So do really bad chess first?

AntiSquid: do chess and eliminate the castle move to piss off the chess enthusiasts

MSmits: it could be good to learn from one game before doing the next

Washier: AntiSquid haha

icecream17: maybe chess where you try to lose

Nanosplitter: Ooooo

MSmits: it's going to be different anyway, you need to have some way to resolve end games

icecream17: there are so many endgames

MSmits: it might not be a bad idea to put an endgame database into the referee

MSmits: to resolve games at turn x


MSmits: with a point system to deal with endgames not in the db

inoryy: if you don't win by X turn both players lose

MSmits: or draw?

inoryy: that's too easy

Nanosplitter: I mean like you can do the rule of if no captures have been made in 50 turns it's a draw

Nanosplitter: Or both lose

MSmits: whatever works

inoryy: both players win! non zero-sum chess

MSmits: lol

Nanosplitter: Hahaha

icecream17: chess but the goal is to checkmate the queen

icecream17: nah... the king should be somewhat limited

icecream17: chess (but goal is some arbitrary thing)

Nanosplitter: Could limit the turns to like 70, and if the game isn't over by then it's a draw

Nanosplitter: Force agressive plays

icecream17: maybe the goal should be to get all your pieces on the other side of the board

AntiSquid: in the row of captured pieces

AntiSquid: i dont think forcing draws is a good idea, a lot of competitive players force a draw :/

AntiSquid: Nanosplitter

inoryy: just call it pro chess

AntiSquid: how do you find london inoryy? had a chance for sightseeing?

Nanosplitter: How would you suggest resolving a long game AntiSquid?

inoryy: actually the other way, avoiding people even more now, I'm afraid it was too early to open up pubs and a second wave is coming

AntiSquid: i dont know, im wondering myself how to make games have less turns for CG, a lot won't work Nanosplitter

icecream17: Flip the board upside down. Now pawns that never moved are almost gonna promote!

Astrobytes: I think we're gonna be in for it heading into the later part of the year inoryy

inoryy: yeah, at this point I'm starting to mentally prepare for the possibility that my first year in UK will be entirely in (self-)isolation

Astrobytes: What a welcome eh. Your moving here really was the epitome of bad timing

Washier: good luck.

AntiSquid: more interesting is one of the possible cures

inoryy: funny thing is that if I had my start date set to a couple of months later I could've just stayed in Estonia, work remotely, and be pretty much free of concern by now (life is back to normal, number of cases is in single digits now)

inoryy: oh well

AntiSquid: Hydroxychloroquine - got forcefully pushed aside with fabricated data, really odd huh

inoryy: fabricated?

AntiSquid: are you gonna do remote work from estonia?

AntiSquid: yes

omer-chetin: show your code

omer-chetin: pls

inoryy: no, I'm stuck in UK now

inoryy: I think you're mixing up your sources on hydroxychloroquine -- it was forcefully pushed with fabricated data by trump et al and then set aside when evidence piled up that it has no or negative effects



inoryy: the "retracted" part isn't a giveaway?

AntiSquid: im sure i didnt mix up what i said, didnt follow the new btw

AntiSquid: news *

AntiSquid: well its going to be trialed basically, see first link

Astrobytes: "But The Lancet paper was based on fabricated data" - No, Surgisphere refused to allow access to it's databases due to violation of client agreements

Astrobytes: *Databases and related information

Astrobytes: Since the data could then not be verified, the authors withdrew the paper. Wording matters a lot.

Astrobytes: But yes, the trials will go ahead. That does not mean it works.

AntiSquid: only said possible

AntiSquid: what i thought is odd is this situation, everything needs to tried

AntiSquid: but i get what you are saying, still weird, youd think therd be more concern of how it affects the entire world

Astrobytes: Of course, but the initial study was bad, then Trump opened his gob - call that reliable?

AntiSquid: i dont watch trump news

MSmits: they have actual working medicines...

MSmits: anti-viral

Astrobytes: Doesn't even matter, the initial study was bollocks. I don't think anything will come of the trials but hey, we'll see


MSmits: the thing is, if something works, it's usually not that hard to prove

MSmits: if it barely rises above noise level, it probably doesnt work

Astrobytes: Yes, it doesn't work unless the patient's hospitalised, even then 'all' it does is speed up recovery (that's great, but it's not a cure)

MSmits: if they could find a cure for it, they would have found a cure for the "common cold' already, because that is what it is related to

Astrobytes: Yes, in that it's caused by a coronavirus yep

Astrobytes: Oh and dexamethasone (a steroid) is also helping reduce mortality rate in hospitalised patients too, which is cool

Astrobytes: Well, ventilated patients at least

MSmits: yeah that helps

MSmits: would be better if people would just forego their own comfort and wear masks where they are told to

Astrobytes: Tell me about it, so many idiots around

AntiSquid: ah yeah, and i think you were saying you are not a virologist Astrobytes, but seems youre up to date

MSmits: anyone with a biological background would dive into this I guess

Astrobytes: I did a specialised cell biology course a few years back just for fun, it does interest me

Astrobytes: I'm not bang-up-to-date with reading the latest papers yet, I'll get around to it

icecream17: wow

icecream17: oops

AntiSquid: ?

AntiSquid: Automaton2000 interpret those links

Automaton2000: do it for my own moves

icecream17: wow! i actually... i did it! i think i did a floodfill

icecream17: It took 2ms for my whole code

AntiSquid: :clap:

jacek: you coded it in 2ms? noice

icecream17: lol

icecream17: yas!!!!

Astrobytes: Flooded successfully?

icecream17: no. i used the "sections" and now i'm crushing the bronze boss

Astrobytes: sections?

Astrobytes: What are you playing?

icecream17: patinum rift

Astrobytes: Ah

Astrobytes: 1 or 2?

icecream17: 1

Astrobytes: I see, haven't played that one. I liked 2

Astrobytes: gj btw :)

icecream17: thx

icecream17: not really crushing it anymore.... the boss is only 0.5 behind me now

Astrobytes: Hey, even if you're only a tiny bit ahead, or even a tiny bit behind, any progress is good progress right?

icecream17: i'm amazed

icecream17: oh. yeah

icecream17: i'm better than the boss!

icecream17: hmm. platinum rift 2

icecream17: whoa that looks totally different

Astrobytes: Well done

Astrobytes: Yeah, quite different

Astrobytes: 2 appealed to me more than 1 I have to say, will give 1 a shot at some point

icecream17: Whoa! the autocompleted code for javascript is... exactly how i would do it

AntiSquid: JS best language

icecream17: i don't know enough languages to know if thats true

AntiSquid: the best one is always the one you like the most, regardless what others say, trust me icecream17

jacek: D?

AntiSquid: is a nice language, not the best, but still nice, i like it and i don't listen to haters

Astrobytes: Like most langs, D has it's place. Just gets meme'd to death on here 'cause of the zealots

AntiSquid: still waiting for next CG contest to code in D and output: you are getting wrecked by best language

Astrobytes: how's the ML coming along AntiSquid

AntiSquid: i am doing it on and off

MSmits: wax on, wax off

Astrobytes: Still on Kaggle I guess?

AntiSquid: on an emotional level it hurts just as much MSmits

MSmits: :sad:

AntiSquid: well i've done a few attempts on AIcrowd

AntiSquid: and failed to even get started on a challenge for hackerearth

MSmits: when did you start doing ML?:

Astrobytes: I haven't seen the hackerearth stuff

AntiSquid: well i didn't really start, i just do it to fill up my free time with something that seems to be meaningful

AntiSquid: i learn a few things then move on to something else when i feel a bit bored

MSmits: oh ok, just like everyone else then

Astrobytes: *+ purposeful

AntiSquid: well i did apply it so not really like everyone else :p

MSmits: hmm right

AntiSquid: first serious attempt at NN i started early 2019 from what i remember

MSmits: was that around when rec urse got into it ?

Astrobytes: Gone back to XR yet?

AntiSquid: no

AntiSquid: well astrobytes hackerearth has some ML challenge, but you need to build your own stuff from scratch

MSmits: do you have to share everything you use? Including training programs and such?

Astrobytes: Bit of a step-up from Kaggle and such then

Astrobytes: ?

AntiSquid: it goes something like this: kaggle : gives you extra wheels, crutches, wheelchairs, anything you want, even during contests there's people sharing knowledge and code aicrowd: you get the starting code and it's often full of bugs and you need to adjust it to your own requirements

AntiSquid: hackerearth: this is the problem, upload the solution

Astrobytes: gotcha

MSmits: ok so no need for it to even be ML?

AntiSquid: MSmits you don't need to share anything, not sure what you mean

AntiSquid: obv they can look at your solution MSmits

MSmits: yes, but if we have a solution here on a contest, it is pretty much the whole thing

MSmits: if you train a NN offline, then the solution is just a bunch of weights

AntiSquid: on aicrowd you can avoid ML, but there's prizes reserved for ML first and foremost even if it's mixed ML + something else

MSmits: a big part of a NN is how you trained it

MSmits: I would not be surprised if some contests would require you to also share that part

AntiSquid: well from what i see it's just kaggle that factors in the pretrained part, the others take your model and run it in their environment + add extra "validators" (extra data / environments / etc)

MSmits: ah ok

MSmits: btw I am testing my bot vs top othello bots now. CG bench

MSmits: 22:16:20,883 INFO Temporary results for othello.cpp (ETA : 23 minutes) :

AntiSquid: in some contests your code is shared if you are top 3 - 5 ? (aicrowd) apart from that i didn't see sharing with the general public as a requirement

MSmits: check out the 70-0 vs dbdr :P

AntiSquid: so what does dbdr use

MSmits: ab with all the enhancements and an eval that focuses on specific board features

MSmits: thats what I understood anyway

MSmits: like 300k weights

MSmits: (packed)

MSmits: probably similar to ntuples

Astrobytes: ooof

Astrobytes: he uses ab with mpc

MSmits: yeah

MSmits: but also many weights, so there has to be something else

Astrobytes: multi probcut

AntiSquid: what's the mpc part?

MSmits: its a pruning method

Astrobytes: You do that offline, hence the weights

MSmits: prune parts of the tree that are probably :poop:

AntiSquid: see this is where CG is getting closer to kaggle-like stuff ... :p

MSmits: oh really, it's the MPC that requires so many weights?

Astrobytes: yes, it's multiple linear regression essentially

MSmits: I see

MSmits: so it's not even an eval?

MSmits: just a pruning strategy?

Astrobytes: Unless he's doing something else then yes

Astrobytes: clue's in the name

MSmits: crazy

MSmits: well it works really well. I think I can beat everyone else if they keep their bot the same and I spend enough time fitting weights, but I dont think I'll get anywhere near dbdr

Astrobytes: It's very effective for Othello

Astrobytes: Was developed for/using it iirc

MSmits: yeah I read that

MSmits: the best bots also use the ntuples thing though

Astrobytes: Also very effective yeah

MSmits: or at least an eval based on specific cell configurations

Astrobytes: Pretty nice

Astrobytes: Some use multiple approaches at different stages

MSmits: yes Edax is nuts

MSmits: different eval at every ply

AntiSquid: edax?

MSmits: open source othello bot

MSmits: go steal some code if you want

MSmits: i can't use most of it for my bot

AntiSquid: i feel out of the loop here now :/

Astrobytes: Didn't look at the edax source, anything nice?

MSmits: everything you can think of basically

MSmits: except mcts

jacek: there are mmx and avx versions too

Astrobytes: Noted

MSmits: yeah I took the stable disks code from there

MSmits: not anything else though

Astrobytes: oh cool, was it how we thought?

jacek: is it fast and/or accurate?

MSmits: it's accurate and fast yes

MSmits: didnt help my bot much so far

MSmits: but i solve a bit sooner

Astrobytes: as in was it similar to move resolution

MSmits: well some part of it

MSmits: it's really complicated though, somewhat recursive

MSmits: and uses lookups

MSmits: the way i did with oware

Astrobytes: Oh ok

MSmits: it looks up board lines

MSmits: edges i think

Astrobytes: Yeah that would make sense

jacek: like ntuple without the weights part

MSmits: whats that jacek

Astrobytes: adjacent stable discs from corners going outwards essentially

MSmits: without the weightS?

jacek: like lookup table

jacek: 8x1 edge -> number of stable discs

MSmits: Astrobytes yeah, i had an algo for that, but it didnt avx very well unless i did multiple boards at once

MSmits: jacek ah yes

Astrobytes: yup, that figures

MSmits: I do this in a lot of games, yavalath and oware spring first to mind

MSmits: uttt as well

MSmits: with all eval features I can think of I am still using over 1 million nodes per turn. My bottleneck really is not my rollout count

MSmits: it kills me that robo eva;s 3k nodes per turn lol

AntiSquid: question then is how does he select them?

MSmits: it's probably another alphazero

AntiSquid: he might be analyze them much better

AntiSquid: aha

MSmits: so it's node value + policy

Astrobytes: It is, he said so the other day

Astrobytes: (unless I'm mistaken, but I'm pretty sure)

MSmits: but it's not an i-win button for sure. Robo always does well with it, but rarely stays at nr 1 with it

Astrobytes: yep

MSmits: thats because of CG limitations I think

Astrobytes: Possibly

jacek: or maybe hes noob

Astrobytes: Would be interesting to see these bots playing outside of CG constraints

MSmits: he's not an expert at it, but azero is very well documented. He's a great coder afaik, so he can follow those

AntiSquid: fight him in clash of code jacek, will see who is noob

Astrobytes: Together I mean

MSmits: yeah

MSmits: what if I take a weight

MSmits: say this is the weight at ply 22

MSmits: then apply a gradient

MSmits: with positive addition at higher plies

MSmits: or negatieve

MSmits: so it's 100 at 22

MSmits: 95 at 21, 105 at 23

MSmits: weight dependent on ply

MSmits: linearly as game progresses

MSmits: that might be good for othello no?

jacek: game stage interpolation?

AntiSquid: why not consider 2 weights and that give the value combined based on different factors instead?

MSmits: yeah

AntiSquid: so you can have a more accurate function

MSmits: AntiSquid I already have all the general factors (not based on patterns)

MSmits: that's like 8 features

MSmits: but they are game stage dependent

MSmits: well I could add disc count

MSmits: dont have that yet

MSmits: this is definitely game stage dependent

Astrobytes: played around with negative disc count, well difference

MSmits: how did that go?:

MSmits: it's a very cheap eval

MSmits: only reason to leave it out is probably if the weight is near or at 0

Astrobytes: promising sometimes, dependent on the other params though (quel surprise)

Astrobytes: *quelle

AntiSquid: disc count isn't best measure of board strength though, doesn't that add noise to your eval?

MSmits: if it did, it would fit to weight = 0

Astrobytes: negative disc count

MSmits: then you'd leave it out

Astrobytes: The fewer discs you have during the game usually is a good thing

MSmits: except at the end, but then you're solving anyway

Astrobytes: Well yeah

AntiSquid: i always aim for corners when i play it myself

MSmits: thats why my corner weight is huge

Astrobytes: Yep, that and being careful with the X and C squares ofc

AntiSquid: corners, then edges, then 2 spaces distance from edge ... i try to avoid the line inbetween edge and middle

MSmits: line?

AntiSquid: but even there it depends ... because sometimes there are safe captures

MSmits: how do you recognize a safe capture?

Astrobytes: High mobility/less frontiers and vice versa for your opponent

Astrobytes: Quiet

MSmits: i have frontiers in there too

AntiSquid: ya not sure how i would put it in code, but there are instances where you can capture without risk of having your piece closest to edge/corner captured afterwards

MSmits: very low weight

MSmits: put them back in just to see if i can have a weight other than 0

MSmits: I see

MSmits: so you've played othello seriously? Or at least a reasonable amount?

AntiSquid: just "reasonable" amount online for fun

MSmits: against players or AI?

AntiSquid: enough to notice some "hard AI"s out there have flaws :p

AntiSquid: players too

Astrobytes: I've played irl, you can't have beers playing it let me tell you

MSmits: too much disc swapping?

Astrobytes: *when you're playing it

MSmits: flipping

Astrobytes: You need your wits about you to flip the right ones lol

MSmits: ohh ok

Astrobytes: It's a good one to play in the afternoon outside when the weather is nice or inside otherwise

Astrobytes: For me at least

Astrobytes: And less angry than enraging my friends playing Yavalath on my whiteboard whilst tipsy

MSmits: you should order a real yavalath board

Astrobytes: Yeah, I really should tbh

MSmits: also why do your friends get angry?

MSmits: cuz you always win?

Astrobytes: Not always that, perhaps just me forcing them to play at inappropriate times? :D

MSmits: ahh ok

Astrobytes: "Go on, just a quick game or three"

MSmits: it's a great game for human gameplay I think

MSmits: ok for AI, but specifically for humans

Astrobytes: It really is

Astrobytes: Aha

Astrobytes: Great bug

MSmits: kill it!

Astrobytes: My masks are flipped

Astrobytes: ffs

MSmits: well you can fix that easily

Astrobytes: yes, but I've been altering lots of other things to fix the 'bug'

MSmits: ahh I know that feeling

Astrobytes: Meh. Another revert + fix tomorrow

Astrobytes: Still, that's 1 less

MSmits: yep

Astrobytes: Was wondering why I had such a discrepancy between my CG IDE version and my offline runner version

MSmits: oh they didnt have the same bug?

Astrobytes: Nope, I've been working on the CG IDE version using results from the other

Astrobytes: Therein lies the issue

MSmits: oh ok

MSmits: I would say it's bad practice, but I do a lot worse

Astrobytes: It's terrible practice, and my offline runner is just two instances of the same agent fed with different parameter coeffs, hacky

Astrobytes: Although it's quite flexible, I should rewrite it a bit to make it a little more generic

MSmits: my offline runner for meta mcts is usually just 1 instance of a bot playing itself using 1 reused tree :P

MSmits: also it decides by itself which of the two selves won :P

Astrobytes: Yeah I'm not running an MCTS type thing yet, that's a headache for another day

Astrobytes: *meta-mcts

MSmits: it's a headahce the first time

MSmits: gets a lot easier, i reuse the entire gui part

Astrobytes: like most new things I guess

MSmits: yeah

Astrobytes: meh, guis

Astrobytes: I love my console window

Astrobytes: :P

Astrobytes: Though actually I'm probably gonna do some visuals, and use imgui for the gui elements. It's on the list


Default avatar.png jakobus89:

Default avatar.png jakobus89:

Astrobytes: lovely MSmits :D

Default avatar.png jakobus89: javscript jump and run gam

MSmits: you can see the reused part :P

Default avatar.png jakobus89:

Astrobytes: jakobus89 can you not post random links in this chat please, thank you

Default avatar.png jakobus89: please enter the match!

Astrobytes: jakobus89 can you also not post random clash links either

Default avatar.png jakobus89: 4 more

Default avatar.png jakobus89: 1 more

Astrobytes: You can ask politely if people would like to join

Default avatar.png jakobus89: full

Astrobytes: Great. Thank you for the live updates.

Astrobytes: MSmits - what's with the zoom

MSmits: oh I can use it to walk through the tree

MSmits: I *play* a move

MSmits: see the new board and node values

MSmits: when i click "up" i go back up the tree

Astrobytes: So it's totally not what one would assume of a 'Zoom' button :D

MSmits: nope

Astrobytes: You never did HCI right

MSmits: i dont know why I called it that at first, but it stuck

MSmits: nope and I have to teach it

MSmits: in 2 months

MSmits: one of the first topics

Astrobytes: lol, just don't show 'em that :D

MSmits: hehe i wont

MSmits: i did some things right though, buttons with 1 word on it are good

MSmits: it's just the wrong word

Astrobytes: wdym, "Press this button for the result" is a great button caption

Astrobytes: :P

Default avatar.png jakobus89: How can i hide the chat window??

Astrobytes: Go under your desk

Default avatar.png jakobus89: In a game?

Astrobytes: See the arrow just below this chat? That one

Default avatar.png jakobus89: Thank your very much, now i can win the clash!

MSmits: you can also disable it with /?disableChat at the end of your url I think

Astrobytes: It should minimise the chat for you :)

Astrobytes: Yeah not in a clash tho MSmits, it'll reload the window

MSmits: ah ok

Astrobytes: Right, now I have a list of bugs to fix. I call that a successful evening.

MSmits: yes, lists are good

MSmits: bugs.append(bug)

Astrobytes: Haha, yes indeed. Anyways, I'm out now. I'll catch you later MSmits, take care and gn

MSmits: gn Astrobytes

AntiSquid: gn8

Default avatar.png jakobus89:

Default avatar.png jakobus89:

Default avatar.png jakobus89:

Default avatar.png jakobus89: please enter

Default avatar.png jakobus89: 4 more

Default avatar.png jakobus89: it will start in 1min

Default avatar.png jakobus89: 3more

Default avatar.png jakobus89: start

Default avatar.png jakobus89: start

Default avatar.png jakobus89: start

Default avatar.png TheSweatyLlama_438d: wow these are kinda hard for a beginner :cold_sweat:

proscripterlol: thanks for sharing code ibtahimozdogan it really helps

TheSpiffiest: So how many players are there?

TheSpiffiest: I see I'm 2,000 something. Out of how many?

ibrahimozdogan: you re welcome pros

ibrahimozdogan: @pros

ibrahimozdogan: tssw

ibrahimozdogan: could you share code

proscripterlol: can people actually share their code

proscripterlol: sometimes i get stuck on problem i want to see how other people solved it tolearn :'(

ibrahimozdogan: agree

ibrahimozdogan: knugieee

icecream17: what problem

thanhhv317: i have a number

thanhhv317: i want to get a "phan tu cuoi"

thanhhv317: help me

Default avatar.png tssw: Izzobacul, share your code, please

Izzobacul: sorry!!

Izzobacul: i forgot to do it :)

Default avatar.png tssw: thanx :-)

thanhhv317: ok

jrke: happy caturday

AbundantPuddle: Clever Laminator

Laminator: Oh hey, thanks lol

Laminator: wow some of these reverse modes are frickin brutal