From CG community
Jump to navigation Jump to search

Default avatar.png Sping: hi

Salted: hi

TheBarnacle: Is there any way to see other people's solutions after completing a challenge? I can't help but feel like I'm over-complicating some things. :/

struct: for puzzles you can see shared solutions

TheBarnacle: Ahh I was being an idiot, I was looking on the solve page. Thank you I see it now :)

cegprakash: I timeout on last testacase for the resistance problem :P

eulerscheZahl: a cegprakash :o haven't seen you in ages

cegprakash: :D

cegprakash: a wild cegprakash appears

cegprakash: with find function I got 8 testcases passed

cegprakash: with substr I got 9 testcases passed

cegprakash: 10th test case seems hard

eulerscheZahl: do you use any kind of dynamic programming approach?

cegprakash: yes


eulerscheZahl: a char-wise comparison is probably more efficient than your substring approach

cegprakash: but gotta go by word by word anyway

cegprakash: and jump to word length anyway

eulerscheZahl: or build your whole valid encodings as a tree so you don't have to test each of the separately

cegprakash: I think the problem is with substr

eulerscheZahl: with the char-by-char you could avoid substring

eulerscheZahl: early exit...

cegprakash: I see

cegprakash: let me add an inner loop

eulerscheZahl: if it isn't fast enough: save your letters in a tree

cegprakash: yeah I was thinking a trie as well

cegprakash: inner loop still timing out

jacek: ohai

Default avatar.png MX26: Hey, i skipped silver league of "coders strike back" by accident, so, i never quite saw the explenation as for what shield does, can anyone help me out?

Westicles: Ah, they fixed it

Westicles: Oups An error occurred (#734): "You can't vote for yourself".

Default avatar.png zhoubou: MX26 Nisam došao do srebrne lige, ali koliko sam pročitao u forumima, kada aktiviraš shield, tvoj "pod" dobije 10 puta veću masu, što utječe na odbijanje kod sudara (10x jače).

Default avatar.png MX26: Thanks!

Default avatar.png zhoubou: Np :)

eulerscheZahl: sounds like you finally got an error code for you honors

Westicles: :)

Westicles: They also wiped out all my upvotes across the board

eulerscheZahl: how it should be

Westicles: fair enough


eulerscheZahl: a random insult?


eulerscheZahl: take that! i'm off for lunch

Metanoob: is that an improvised clash of code?

DomiKo: euler omggggg

DomiKo: that's so funny

jacek: it wasnt insult :/

Westicles: The wall of shame


Default avatar.png zhoubou: Oof

PatrickMcGinnisII: kinda sus

Stilgart: one may prefer

Flekysek: Is there somebodz who could possible help me with Horse-racing Duals

Flekysek: It should be really easy but I have a feeling like there is something wrong with input data


proogrmr: yeah

Megha.Akash: It is right Flekysek. I just checked it out. It is good. You need not necessarily find the difference between either the maximum 2 number or difference between minimum two numbers. You just have to find two numbers whose absolute difference is minimum.

Flekysek: yes I know I just misunderstood assignment. Proogrmr already helped me and explained me what was the problem.

Flekysek: thanks :) and sorry

Megha.Akash: Oh it's ok :)

Kitkat260: gym everyone

Kitkat260: gm

Metanoob: keep it up Flekysek :thumbsup:

Default avatar.png cubefreak777: Is there away to report a user on this platform ?

pindsz: Open profile, and click on the three dots just above the follow button.

Default avatar.png cubefreak777: thanks @pindzs

jacek: :)

Metanoob: tylko jedno w głowie czy macie? :cowboy:

jacek: :o

Metanoob: :grimacing:

Default avatar.png indiehjaerta: berp = "f0; eakpartOne;

Default avatar.png Fricas: Hello, lets destroy communism and leftism together!

jiligualabajibaji: Why?

Metanoob: ^

Default avatar.png Fricas: it is a disease, cancer of the world

jiligualabajibaji: And why they are diseases?

Astrobytes: Enough Fricas, or you risk a kick, then a ban if you continue.

Default avatar.png loncek: I reported him. No idea if it does anything tho.

jiligualabajibaji: Ha haa.

[CG]Thibaud: it sends me an email. If moderators are here, no need

jiligualabajibaji: Good

jiligualabajibaji: good

Astrobytes: And if you need a moderator, you can see the list by clicking on the 'person' icon below the chat, then just type some of their names

Astrobytes: Or shine the moderator signal light into the sky :P

eulerscheZahl: :bat:

eulerscheZahl: i can't recognize anything there :(

jiligualabajibaji: ?

eulerscheZahl: better with the light theme. but the overall impression of that is :scream:

Astrobytes: that's the weirdest looking bat I have ever seen

eulerscheZahl: hanging upside down

Astrobytes: It still looks extremely odd.

jiligualabajibaji: Astrobytes 10:47PM Or shine the moderator signal light into the sky :P

jiligualabajibaji: can i say you are cute

jiligualabajibaji: ?

Astrobytes: Well, you just did.

eulerscheZahl: this bat is much cooler than the emoji

jiligualabajibaji: :stuck_out_tongue:

Astrobytes: lol, Remi never disappoints

eulerscheZahl: except in terms of upload frequency

Astrobytes: True.

Metanoob: haha good one eulerscheZahl

jiligualabajibaji: Why can't my animation go?Is it because the code is too long?

jiligualabajibaji: Have you ever been in this situation

eulerscheZahl: animation can't go? I don't understand

eulerscheZahl: the code size limit is 100k chars

jiligualabajibaji: oh i'm sp=orry

jiligualabajibaji: oh i'm sorry

jiligualabajibaji: my english is so bad

Default avatar.png Lukas_Puyet: could someone help me please in ruby

Default avatar.png Lukas_Puyet: it will be quick

Default avatar.png Lukas_Puyet: just a question about a method

Metanoob: could it be that there is an error in your code, or that it times out?

If your code doesn't read/write from the standard input in the correct order, or reads/write too much to stdin it can also trigger this... does this make sense?

jiligualabajibaji: extremely grateful

jiligualabajibaji: but i don't know where i make error

jiligualabajibaji: :joy:

proogrmr: :D

Metanoob: does the console output show you some red text about anything going wrong?

jiligualabajibaji: no

proogrmr: what is the time limit is for every test cases in clash of code.

Metanoob: wouldn't that be cool to have a bot that hangs out here that just replies automatically by checking FAQ known/similiar to known questions?

Metanoob: automatonNN ready?

AutomatonNN: :)

proogrmr: yeh :)

jiligualabajibaji: Very nice to see you.I can learn much(including English).:grin:

Metanoob: jiligualabajibaji I wish I could help more... What language are you coding in? maybe you could share with me in a private message a link to a pastebin or similar place to review code?

Metanoob: Not sure if that's ok with CG policy, is that ok @here?

eulerscheZahl: sounds like he's still in wood, nothing advanced in that bot. then it's ok to just paste the full code here in the chat

jiligualabajibaji: @Metanoob let me try

Metanoob: ah awesome then, thanks

Metanoob: you can also share link here if you want jiligualabajibaji

eulerscheZahl: just paste the code directly, it will turn into a pastebin

Metanoob: aaah, damn - sorry for my ignorance, good to know

jacek: oO

Metanoob: Apparently everything is okay now have fun coding jiligualabajibaji :)

proogrmr: why there is lot of string problems(ascii is that called like that) in clash of code

eulerscheZahl: because many creators thought it would be a fun and original idea

proogrmr: :\

Default avatar.png JBM: or at least an easy one to claim creator XP for

proogrmr: :|

Default avatar.png JBM: just give it a bad rating and it'll dropp off eventually

Uljahn: or play multi instead

eulerscheZahl: the single clash that can keep you busy for days or even weeks

Metanoob: gotta agree, even tho I like CoC in general

Metanoob: i have another community uneducated question, is it okay to ask for technical knowledge advice non related to puzzles? My guess is: not in "World" but maybe somewhere else?

Metanoob: forums/categories > General

Default avatar.png JBM: here is fine

eulerscheZahl: it's ok to ask here

Metanoob: ah cool

eulerscheZahl: might get ignored if the chat is busy and not the right users are reading it at that time. you can still place it in the forum or ask again

Astrobytes: Or ask on the discord

eulerscheZahl: so many channels

Astrobytes: Deciding whether your query lies within 'general' or 'anything'...

**eulerscheZahl muted the anything channel

Metanoob: yep makes sense, let's try here - anyone familiar with iptables transparent proxy capabilities?

Metanoob: haha

eulerscheZahl: oh, that's a very specific topic

eulerscheZahl: i miss ifconfig and can't even remember the iptables command to get the IP of my router

eulerscheZahl: so i abuse tracepath :P

Default avatar.png JBM: there's an iptables command for that?!

Metanoob: haha nice

Metanoob: yeah i didnt know that either JBM

Metanoob: i usually use ip addr

eulerscheZahl: oh, that's handy

Metanoob: yeah proved itself useful more than once

Metanoob: basically i'm trying to avoid having to use NAT (because it has to temper with the packets back and forth) to redirect a packet to its original destination (SO_ORIGINAL_DEST)

eulerscheZahl: your problem might be too specific to find help in the CG community even

Metanoob: yeah i guess it's not so much about algorithm and more about low level network and tools

yes maybe, thanks for reading and for general info about CG :)

proogrmr: i stuck on coders stike back when i have to use BOOST i tried different versions

  • Find distance between me and and opponent

proogrmr: and so on..

Ragi: is there a way to find a "clash of code" puzzle somewhere after it finishes

eulerscheZahl: happy searching

Ragi: all of them are there ?

eulerscheZahl: i added a daily update recently ;)

eulerscheZahl: more precisely: it updates when I start my computer

eulerscheZahl: I think I should index my database, searches are slow :(

Ragi: I found what I wanted so thanks a lot :-)

k4ng0u: eulerscheZahl, you might want to change the background color of the search input. It's barely visible due to the contrast with the background of the page :p

eulerscheZahl: another user game me some CSS, I was too lazy to do anything :D

eulerscheZahl: i'll put it on my list along with indexing

eulerscheZahl: also: fix your monitor settings :P

eulerscheZahl: this started as a project to analyze CG replays actually. the puzzle search was just a side project to help me moderate pending contributions and link to possible duplicates faster

eulerscheZahl: but somehow the puzzle search is the more popular part now

Default avatar.png JBM: Somehow

Default avatar.png Roboticol: hello guys

Default avatar.png Roboticol: hows everyone doin?

Default avatar.png zhoubou: Pretty good. Finally making progress after a ton of failure.

Default avatar.png Roboticol: :thumbsup_tone3:

Default avatar.png zhoubou: Hbu?

Default avatar.png hackler123: ello

Default avatar.png noveqx: hey

Default avatar.png derp22: After sending game parameters to IDE, how do I go back to randomized tests against the bot?

BlaiseEbuth: eulerscheZahl : if you want to see one of the AutomatonNN's fake links, check fr. ^^

AutomatonNN: e 70 i won :D

Default avatar.png Jeremy9: test

jacek: youre putting eulerscheZahl and AutomatonNN in the same sentence? he may learn weird behaviour

AutomatonNN: Automaton2000 what do you think of codingame?

jacek: Automaton2000 hmm?

Automaton2000: should i keep track of the last contest

BlaiseEbuth: nvm it's a real link Oo We are lost

Astrobytes: I didn't know he did real links! I thought he only did invalid pastebins :D

Astrobytes: Why am I calling it 'he' :(

jacek: ai Anthropomorphism

Astrobytes: Hm. It would seem so.

eulerscheZahl: a valid CSB link, i don't see the problem

jacek: uncanny valley and cats movie (2019) is interesting topic

BlaiseEbuth: you don't see the problem when there is a mkNN on the chat ?

Astrobytes: yes jacek, it's a prime example!

Astrobytes: BlaiseEbuth: If it starts asking how my CSB is or fixit or whatever - then I get worried.

BlaiseEbuth: :grin:

eulerscheZahl: added indexing to database, still slow :/

Astrobytes: cg issue or heroku?

eulerscheZahl: heroku or just my dumbness, not sure yet

eulerscheZahl: but i finally found motivation to add some not totally horrible CSS

Astrobytes: the CSS that guy gave you ages ago?

Astrobytes: Ah, no. Cleaner though.

eulerscheZahl: yes, I replaced that now

eulerscheZahl: still based on it but different colors

eulerscheZahl: and less different fonts

Astrobytes: It's much more readable.


This gives an array 63 bits, mostly filled with zeros. When the shuffle this array based on a key (there are 63! possible shufflings)

eulerscheZahl: spot the error

BlaiseEbuth: :thinking:

eulerscheZahl: oh, i didn't read to the end. he wants to shuffle numbers associated with the bits, not the bits themselves

eulerscheZahl: i'm still not convinced, would have to give it more time to understand the idea

eulerscheZahl: offline with my test DB the search is almost instant :(

jacek: overfitting eh

eulerscheZahl: :D

eulerscheZahl: that makes no sense at all

jacek: msmits keeps updating his meta mcts in comment, noice

MSmits: yeah :)


eulerscheZahl: do something like this already

MSmits: lol

struct: MSmits how much time has your meta been running for?

MSmits: hmm, not sure, maybe 70 hours or so?

MSmits: between 70 and 100

MSmits: it speeds up a bit as the tree goes deeper

MSmits: shorter games (till solve)

MSmits: games probably end at between ply 30 and 40

jacek: so ill be back in 1 year and see if its solved

MSmits: some games now start at ply 12 or so

MSmits: i have no idea if this could lead to a solve realistically

MSmits: kinda happy move 0 is at 52% though. Even if this game is not solved as a draw, there is at least a move that is pretty much balanced

MSmits: because even if one side is favorited, it needs A LOT of calculation time to find the advantage

MSmits: otherwise i would have already

reCurse: What game is that?

struct: connect 4

struct: on 7x9?

MSmits: yes

MSmits: it's not solved

MSmits: but almost

MSmits: (in science I mean)

MSmits: 8x8 is solved and everything smaller

MSmits: 9x7 would seem smaller, less cells, but because its width is 9, you have more branching throughout the game

MSmits: same braching as uttt, mostly

MSmits: except games can end early, which makes it an easier to solve game

MSmits: oh and it has way more transpositions than uttt of course

MSmits: uttt barely has any

reCurse: It has a lot of transpositions actually?

reCurse: More than connect4 I would assume

MSmits: hmm well, not in the first 20 or so plies

MSmits: because you keep jumping to different boards

reCurse: Yeah but you get way more symmetries

MSmits: thats just a single factor of 8

reCurse: ???

MSmits: in the number of states

reCurse: No

MSmits: there are 8 symmetry states

reCurse: Every position has 8 symmetries...

MSmits: yes

reCurse: That's a lot of transpositions

MSmits: so factor of 8

reCurse: How is connect 4 having more transpositions with two symmetries

MSmits: what i mean is, the total number of dinstinct states can be divided by 8

MSmits: because i am tlaking about a totally different kind of transposition

MSmits: not a symmetry one

MSmits: it's making move A, then B, then C instead ofmaking move C, then B, then A

MSmits: uttt has none of that in ply 1 -20

MSmits: connect 4 has tons

MSmits: and this is way more consequential

reCurse: For meta mcts it doesn't matter

MSmits: why not

MSmits: i have had it matter so often in yavalath

reCurse: Because it's the number of unique states that matter

MSmits: it has these transpositions as well

MSmits: exactly

reCurse: So in that sense transposition is by how much you can diminish it

reCurse: So uttt has way more

MSmits: I think we have to distinguish game tree complexity from state space complexity

MSmits: my way of looking at transpositions reduces game tree complexity

MSmits: your way reduces state space complexity

reCurse: Does game tree complexity matter?

MSmits: yes

MSmits: you dont actually visit every possible state to solve a game

reCurse: I don't think it does

reCurse: All you keep is a set of open states right? Doesn't matter how you got there

MSmits: from yavalath i often got to a new node in my tree and noticed I already had 30k visits there, and i got there from a different starting move

MSmits: saved a lot of time, symmetry is already excluded from the start mostly

MSmits: most states are inconsequential

MSmits: they are never visited as no good bot will visit them

reCurse: I said open states

reCurse: Not all states obviously

MSmits: yes, but if you look at state space as a pure measure of how hard it is to solve a game, you are missing some important bits

MSmits: pun not intended

MSmits: for example

reCurse: I disagree but I fail to formalize it

MSmits: you need only 1 winning move

MSmits: to finish a node

MSmits: so if most moves are crap, you dont even need to look at those states

reCurse: The symmetry indirectly reduces the game tree complexity massively

MSmits: but it is by a constant factor

MSmits: not by an order of magnitude

MSmits: or orders

MSmits: exponentially, like branching does in a game tree

MSmits: you will only ever need 8x as much time to solve a game, if it has symmetry like uttt

MSmits: and you disregard the symmetry

MSmits: you will need millions of times more time if you try to solve connect 4 without using tranpositions from order of moves

reCurse: That doesn't sound right

MSmits: symmetry almost exclusively happens in move 1 and 2

reCurse: No that's wrong

reCurse: I actually did it

reCurse: The meta mcts on uttt

reCurse: There's way more than that

MSmits: allright, move 1, you play 44, i assume

MSmits: then there's 2 chocies

MSmits: instead of 8

MSmits: factor of 4

MSmits: then second turn, you have about half as many choices because of symmetry

MSmits: factor of 2

MSmits: 2 * 8 = 16

MSmits: 2 * 4 = 8 sry

MSmits: blacking out here :P

MSmits: other than that, all the other transpositions all come from this directly or indirectly

Zenoscave: finally got my mcts working for breakthrough just need to optim and work on opening book

reCurse: Like I said I'm failing to formalize it

reCurse: But when running it symmetries kept happening

reCurse: So something is missing in your logic

MSmits: of course they keep happening

MSmits: i dont mean you have 15 less nodes

MSmits: i mean you have millions less

reCurse: At every depth there's symmetries

MSmits: but thats still a factor of 8

reCurse: From the reduced set

MSmits: yea, but they come from the top

reCurse: No...

Zenoscave: 7/8*7/8*7/8

Zenoscave: != 7/8

reCurse: I already eliminated the moves at the top

MSmits: symmetry doesnt reduce branching

reCurse: If it was true then symmetries would have stopped

MSmits: wait

MSmits: those arent symmetries!

MSmits: those are transposition

reCurse: And we were talking about transpositions...

Zenoscave: :popcorn:

MSmits: i mean those are transpositions coming from arrivign at the same state due to different move orders

MSmits: thats not from rotation and mirror

reCurse: You said there's nothing between move 2

reCurse: Yes it is

reCurse: The transposition is calculated from applying 8 symmetries

reCurse: And checking if it's already there

MSmits: it's really negligible though, i eliminated those top symmetries as well

MSmits: and I ran about 3 million games

reCurse: But it's not negligible that's what I'm killing myself to say

MSmits: 2% of parent nodes were transposed

reCurse: Every expansion is checked against a massive hash table

reCurse: And nodes were duplicated all the time

MSmits: yes, thats how i do it too

MSmits: every parent node is hashed

reCurse: Not just from the top

MSmits: i know

reCurse: So again

reCurse: How does that make it less transposed than connect 4

MSmits: every node is hashed on expansion

reCurse: Which only has 2 symmetries

Zenoscave: I figured out bash (and i assume other langs) have fs access

MSmits: because a symmetry transpositon is not the same as a move order transposition

jacek: i think you both have different definition of transposition

MSmits: i can get to the same connect 4 state in 3 plies

Astrobytes: Is this you two saying the same thing differently again?

MSmits: in 2 different ways

Zenoscave: take a guess Astrobytes

MSmits: try that with utt if you're not at the top

MSmits: a really short 3 move transposition

jacek: one speaks dutch english, the other canadian english

MSmits: wont work in uttt

Astrobytes: Zenoscave: lol, so what about fs access?

reCurse: They are just of a longer length

reCurse: Number of ways to do teccles opening for example

MSmits: but that is extremely important

Zenoscave: cat << EOF | base64 --decode | tar -x --lzma -vf >&2 -

reCurse: Ultimately for a meta mcts it's only about the number of hash hits

MSmits: the shorter the transposition length, the more often they reduce the game tree complexity = branching

reCurse: vs number of expansions

reCurse: I'm sure this number is way higher for uttt

MSmits: it was extremely low for me

MSmits: 2% or less, after removing symmetry states at the top

MSmits: i counted

reCurse: That makes no sense

MSmits: had a special button for it even

jacek: i think MSmits says only about move order transpositions, while reCurse says about how much you can reduce the game into unique states

MSmits: correct jacek

reCurse: Well sure if you reduce the definition to a specific thing

reCurse: I only care about how it affects the end result

reCurse: Doesn't matter the source

MSmits: the end result is how hard it is to solve a game

MSmits: the move order transpositions are way more important

reCurse: Exactly, so talking about specifics like move order transpositions is not that helpful

reCurse: All you care about is how much you hit vs how much you have to expand

MSmits: but you have to expand far less. Every time you hit a mov eorder transposition, you dont expand

MSmits: in uttt, it's *9 every time almost, for example with teccles

reCurse: Every time you hit *any* transposition

MSmits: if you try teccles in every possible order, you will still almost never hit one you already found before, I did 50,000 teccles games and i did not find a single identical one

MSmits: for the first 16 plies or so i mean

MSmits: because the jumping to fresh boards in combination with the "next board variable" makes states very unique

MSmits: in 16 plies, i can reduce the connect4 tree by thousands, maybe millions

MSmits: a factor of

MSmits: due to move orders

MSmits: as you say, by hashing all states

MSmits: btw, for the C# + windows form enthousiasts. I use Persistent Dictionary. Great way to hash very simple structures if you dont know how to write your own database and such

MSmits: I know with c++ there's easier ways

reCurse: It's unfortunate I don't have my meta mcts figures anymore, because your 2% is way off for uttt

MSmits: well i did not include top symmetry

MSmits: if you turn those off, you will be bombarded by transpositions

reCurse: How can it be affected by top symmetry if those nodes are never expanded

MSmits: in your case you mean

reCurse: Yes

MSmits: then it cant be affected

MSmits: thats true

MSmits: well i will tell you what i did to get to the 2%

reCurse: And I had way more than 2%

MSmits: I ran through all my parent nodes

MSmits: and checked if they had the same children as another parent node

MSmits: (this was when i hashed the childindex, so parents were duplicated)

Zenoscave: MSmits how many opening book entries can you fit in your bots?

MSmits: i just divided the total number of times this happened, by the total number of nodes

MSmits: hmm

Zenoscave: on CG

MSmits: i realize now this might cause an error of a facotr of 9, because i didnt divide by the total number of parents, but by total nodes

MSmits: so it could be 18%

MSmits: does that fit better?

MSmits: Zenoscave depends on game

MSmits: some about 100k, some about 300k moves

Zenoscave: breaktrhough

reCurse: I don't have the exact figures

reCurse: Like I said

reCurse: But at least 20% sounds about right

Zenoscave: HOW SO MANY what is in each entry

Zenoscave: hash bytes and win/games?

MSmits: for connect 4 it would be way more than that, almost every node would be reachable by many ways

MSmits: Zenoscave there's tricks to storing these moves efficiently

MSmits: you dont store the gamestates

MSmits: you store the tree

MSmits: and you skip transposed branches

Zenoscave: so like a move tree?

MSmits: yes

Zenoscave: skip index list

MSmits: like this { 4 { 2} 5 { 1} {6 { 5 { 4 } } } }

MSmits: { means go deeper, } means go up

MSmits: first move is always best

Zenoscave: ... brilliant

MSmits: 2nd move is an opponent move you counter

Zenoscave: do you store this in a string in source?

MSmits: you store the tree, then recreate the flow of the game, while reading the string

MSmits: and store it in a real hashtable

MSmits: yeah

Zenoscave: smart. I bet I can help you reach 500K entries

MSmits: i never had more than 2-3k

MSmits: entries

Zenoscave: i thought you said 100K

MSmits: thats how many fit

MSmits: thats not how many i have in my bots

MSmits: so thats why i never worry about running out of space

Zenoscave: ah.

MSmits: i dont even unicode compress

MSmits: and i use space separation

MSmits: which basically doubles my space

MSmits: it doesnt really matter

MSmits: if i ever need to, i will compress it

Zenoscave: Gotcha

MSmits: the reason i dont need to is that it takes months to calculate a book with even 1k moves in them

VizGhar: hmm maybe question for google, but what is "unicode compress" and how can I make use of it?

MSmits: well, on 1 core that is

Zenoscave: whats your qbf_k value? .55?

MSmits: dont know what that is Zenoscave

Zenoscave: cut off win rate to keep in book

MSmits: VizGhar a unicode character consists of 2 bytes give or take (it varies) , so thats how much information fits i there

reCurse: There's nothing to google as it is uniquely applicable to circumvent CG's limitations

MSmits: Zenoscave i dont think i do it quite that way

MSmits: not like the papers tell me

Zenoscave: do you store the whole tree of sims?

MSmits: i just include the move in the book if the node was visited a minimum number of times

MSmits: 1 sim is 1 game

MSmits: so it takes between 1 and 6 seconds usually

MSmits: easily stored on HD

MSmits: not the whole game, just the result from that node, the tree is expanded by 1

Zenoscave: ah. I do both. only include if it wins at least 55% of games. and if I have at least 50 games

Zenoscave: for that node

MSmits: for yavalath i have at least 10k games

MSmits: it takes like a full day for 1 move :P

Zenoscave: lol

struct: you test vs players in arena right?

Zenoscave: how many games of yavalath do you play a day?

MSmits: i force the search down moves that are done by arena players yes

MSmits: but not exclusively

jacek: have you considered buying yavalath board

MSmits: Zenoscave none currently, i dont have it on.

Zenoscave: 10M on breakthrough took my bot an 1h

MSmits: but it's 30 ms per move i think?

MSmits: most games are solved

MSmits: well.. about half

Zenoscave: gotcha

MSmits: so i guess 1 second per game roughly

MSmits: yavalath is a weird game

Zenoscave: Well My opening book is about to get much better

Zenoscave: thanks !!!!!

MSmits: Zenoscave which game ?

jacek: 10M random rollouts?

MSmits: oh right bt

Zenoscave: 10M full games

Zenoscave: from trun 0 to game over

MSmits: but those are random games?

Zenoscave: yes

Zenoscave: default policy is pure random

Zenoscave: no minimax default yet

MSmits: when i do meta mcts, a game is actually a real game with a bot, so every move has thousands of rollouts

MSmits: so 1 of those 1 second games has millions of sims

MSmits: so when i put an opening book in, it will have over 1 billion sims

MSmits: per move

Zenoscave: and you just discard the entire inner mcts info or up-propogate

MSmits: i discard it, but i am guessing i should maybe take the whole move tree that was used

MSmits: but i might bloat my meta mcts tree then

Zenoscave: Might be a slight improvement

MSmits: yeah maybe, but currently it sits at 600 mb or so

MSmits: on HD

Zenoscave: jesus

MSmits: i dont want it to be 10 gb

Zenoscave: Are you on an HDD or solid state?

MSmits: this is solid state

MSmits: otherwise it would be really slow

Zenoscave: gotcha. dedicated to OS or is it a second drive? I don't see the folly in a 10gb tree

Zenoscave: time to reload or populate?

MSmits: there's no folly in it currently, but i have 6 of those meta mcts, if they all become 10gb... well i guess that would still be ok

MSmits: reload>

MSmits: ?

MSmits: when i turn on the program it runs instantly, hash is on HD

Zenoscave: read the tree into the program for running

MSmits: Persistent dictionary

Zenoscave: gotcha

Zenoscave: text based?

MSmits: it's probably serialized to some form of text. It's pretty compact i think

MSmits: a single node in my case has 128 bit keys and 128 bit values

MSmits: + whatever overhead the dictionary has

Astrobytes: You didn't end up serializing to bin?

MSmits: no that was for endgame books

jacek: hmm bt has one symmetry

Astrobytes: Ah ok

MSmits: believe it or not

MSmits: I use Guid

MSmits: it's some kind of web thingy?

MSmits: it's 128 bit, so i use it as my type to store in

MSmits: persistent dictionary supports it


MSmits: it's a package you import in VS and it works immediately, it's exactly like using a normal dictionary. Pretty amazing stuff

MSmits: except you're restricted in what types you can use

MSmits: about as fast as a normal DB except you dont need to know anything about databases

MSmits: I just start up my meta mcts and i can click if away like any windows program and the dictionary will properly save itself so nothing is corrupted

MSmits: 2 GB items max

MSmits: 2 billion i mean sry

MSmits: did i just help Zenoscave counter your bot jacek

Zenoscave: probably ;)

MSmits: just realized that, sorry

jacek: :c

MSmits: hey, i'll teach you a trick to take back othello if you want jacek, i'll pm

Zenoscave: jacek I have a ways to go before i can counter your breakthrough

Zenoscave: my current mcts would probably rank around 50

jacek: and your current bot isnt mcts?

Zenoscave: Minimax only

Zenoscave: just depth 5

jacek: well books can be used for any bot

Zenoscave: true... might add the book to my minimax. Didn't think of that

Zenoscave: thanks!!!

jacek: have you considered testing the 'usual' opening formation for the first 12 moves?

Zenoscave: nope. I don't look at other bots or active games really

Zenoscave: I'll try that too

Zenoscave: thanks

jacek: i meant from the creator(?) paper

Zenoscave: there's a paper?

jacek: page 4

MSmits: Zenoscave you can also use meta mcts with a minimax bot as the bot that plays the games

MSmits: all that matters is that the games give results on who won or lost

MSmits: doesnt matter what type of AI is playing the game

MSmits: could use NN to play the game

MSmits: generally it's considered best to use the bot that is eventually going to use the book as well

Zenoscave: oh man i've got loads of todos now

MSmits: because then it knows what to do with the moves it's given

MSmits: take it slow. I started over, tons of times, adding some features along the way

Zenoscave: I'm thinking meta-mcts is my next one

Zenoscave: then better opening book serialization

jacek: like

Zenoscave: Yeah similar but not as complex at first

Zenoscave: just replacing default policy for rollout is my first attempt

jacek: :+1:

Astrobytes: Zip-a-Dee-Doo-Dah :P

Default avatar.png zhoubou: I can't understand strategy laid out in . Why would I move randomly up to 3 times, only to move toward zombies 1 by 1 afterwards? What do random movements before following add?

struct: well if you move randomly 10 times and kill instantly and you get same score

struct: the solution is equally good

struct: like chess a forced mate in 10 is equally as good as a forced mate in 1

Default avatar.png zhoubou: Hmm. I think I see where you are heading, but I'm not understanding it. Maybe I need some thinking on that.

Default avatar.png zhoubou: Some more*

Default avatar.png zhoubou: Your wording seems to contradict the strategy to me

Default avatar.png zhoubou: Like you are saying it's better to just have random moves instead of going toward zombies.

struct: it doesnt matter

struct: ok I guess you can do both

struct: choose random move or go toward zombie

Default avatar.png zhoubou: That's what strategy lays out

Default avatar.png zhoubou: But I think either one or the other

Astrobytes: *or go toward random zombie

Default avatar.png zhoubou: Yeah, random zombie

Astrobytes: It's just a flat monte carlo


struct: for example here

struct: if i dont group them at the end

struct: the score would be lower

Default avatar.png zhoubou: Ohh

Default avatar.png zhoubou: I think I get it!

Default avatar.png zhoubou: Wow, thanks.

Default avatar.png zhoubou: So add some randomness to accidentally stumble upon a combo and otherwise just go toward zombies.

Astrobytes: and tweak your parameters/spam until it's nice

struct: well the randomness will go towards a zombie eventually

struct: So I never bothered adding go to zombie

Default avatar.png zhoubou: Well, that's my original question

Default avatar.png zhoubou: Why add going to zombies

Astrobytes: Yeah, just random moves is enough

Default avatar.png zhoubou: Ok, awesome

Astrobytes: Don't get too hung up on PMs

Default avatar.png zhoubou: What's PM?

Astrobytes: Sorry, post-mortems

struct: Also top solutions are probably hardcoded

Astrobytes: Post contest reports

struct: at least mine is

struct: max I got was 650~k points without hardcoding

Default avatar.png zhoubou: Astrobytes Oh ok. I learn something every day I guess :P

Default avatar.png zhoubou: struct Interesting


Astrobytes: Yeah zhoubou, you learn some terminology along the way

Default avatar.png zhoubou: Yeah, I've got a tiny bit of it under my belt already

Default avatar.png zhoubou: struct Those are real validators?

VizGhar: zhoubou asking right questions :)

struct: yes

Astrobytes: yes

Default avatar.png zhoubou: Huh

struct: Also your bot needs to be able to do this


Default avatar.png zhoubou: VizGhar I am? :P

VizGhar: If you learn something new, then most probably yes ;)

Default avatar.png zhoubou: Hehe

Default avatar.png zhoubou: struct That's incredible. But that's 20 depth

Default avatar.png zhoubou: I didn't even start implementing anything, just simulated one turn score

Default avatar.png zhoubou: "simulated" -> computed

struct: I simulate until the end yes

struct: I found that solution on turn 10

struct: or a similar one

struct: I found 464210 score one

VizGhar: start with 1 depth (simulate 1 turn) and apply some evaluation function and voila. 1 step closer to perfect bot

struct: but then I replaced it with a better one after

Default avatar.png zhoubou: struct Amazing.

Default avatar.png zhoubou: VizGhar Awesome, thank you very much :D

Default avatar.png zhoubou: I started this site without knowing how to implement a graph. I might be heading somewhere

Default avatar.png zhoubou: With the help of you guys of course

Astrobytes: For sure. You can learn a lot, the site won't teach you but you're forced to go and learn/ask questions

VizGhar: (I haven't done any work on that puzzle yet, but small steps are necessary for us beginners)

Default avatar.png zhoubou: Astrobytes Yes, the competition and curiosity motivate you, which is great. :)

Astrobytes: Exactly :)

Default avatar.png zhoubou: VizGhar I appreciate the pointing in the right direction and reassurance

Astrobytes: Even if you only compete with yourself, ie. try to improve, it's worthwhile

Default avatar.png zhoubou: Yeah. I've been dabbling with programming for years without much improvement

Default avatar.png zhoubou: I lacked motivation.

Default avatar.png zhoubou: This site might change it all :D

VizGhar: I'm looking forward for next contest. I already took free may so that I can attend the competition (+ some ultramarathon)

Default avatar.png zhoubou: Oh, I would love to participate too!

Default avatar.png zhoubou: I just need to beef up my skills until then

Default avatar.png zhoubou: But idk if I will have the free time I have now (I'm sick currently)

Astrobytes: Doesn't matter how far you get in your first contest (or any, depending on your motivation/goal) as long as you have fun

VizGhar: So... get sick in may :D

Default avatar.png zhoubou: Astrobytes You're absolutely right

Default avatar.png zhoubou: VizGhar :rofl:

Astrobytes: And plenty of us work full time and put in extra time in the evenings/days for contests

VizGhar: ++

Default avatar.png zhoubou: Oh I see

Astrobytes: I mean, I don't just sit on my ass and watch CG chat for 12 hours lol

MSmits: nah it's more than that, you sleep for only 8 hours right?

Astrobytes: Gotta make the time ;)

MSmits: :P

Default avatar.png zhoubou: Hmm when you mention that

Astrobytes: Yeah but I usually do some stuff in the morning before logging in

Default avatar.png zhoubou: I could do this at work incognito

MSmits: oh ok

Default avatar.png zhoubou: I usually complete so many things they think I always work, even when I go for a break

Astrobytes: If you're ahead in your work sure

MSmits: i have something similar like that

Default avatar.png zhoubou: Astrobytes Yeah, I think I am, most of times

MSmits: I'm pretty much the only one doing automated stuff at work, mostly with macros and such

MSmits: so they think i do a huge load of work and it took me 15 mins

reCurse: Any manager worth their salt knows you don't get 8 productive hours a day

MSmits: i even tell them, as you probably know... i cant lie

Astrobytes: Really? I thought more would be doing the timesaving stuff MSmits

MSmits: but they dont believe me :P

Default avatar.png zhoubou: MSmits I do something like that regularly, yeah

reCurse: At least not for non-physical work

MSmits: they are teachers, not coders

MSmits: thats so true reCurse

Default avatar.png zhoubou: reCurse You're absolutely right

Astrobytes: Don't need to be much of a coder for macros and such MSmits

Default avatar.png zhoubou: Shhh

MSmits: i know, but you do need to have some knowledge

Default avatar.png zhoubou: :P

MSmits: these are not IT teachers

MSmits: they teach language, art etc.

Astrobytes: If they can do numbers they can probably automate excel etc

Astrobytes: Oh right

MSmits: so i tell them, it's automated, i press a button and mail you the result

VizGhar: they are using pen and paper, you kmow :D

MSmits: they just think i work all day to get it done

MSmits: well I guess it paints me in a positive light

Astrobytes: And yes, 100% reCurse

MSmits: i just hate that visual basic for applications that you use in excel

MSmits: horrible language

Default avatar.png zhoubou: I agree

Astrobytes: VBA is highly unpleasant, yes.

VizGhar: yeez... somebody has to stop those contributions... unbelieveable

MSmits: the amount or the quality?

Astrobytes: How many now?

reCurse: Yes

VizGhar: both

Default avatar.png Valdez001: hello

Astrobytes: hi

Astrobytes: It's getting ridiculous in the Contribs section now, it's so hard to find multis and puzzles in amongst the clash drek.

MSmits: there needs to be a multi filter

MSmits: can only click clash and puzzle

VizGhar: 121 pending

Astrobytes: Oh it's gone down a little at least.

Astrobytes: Good stuff is overlooked/missed because of all the generic clashes


Astrobytes: Was it you, reCurse, that warned of a similar situation at the introduction of the quest map?

reCurse: Not sure if it was just me but yes definitely

reCurse: Very easy to map consequences from incentives

reCurse: But hey it got more engagement

reCurse: Woo

reCurse: Marketing will be happy

MSmits: well for example, i like tric trac's firework game at first glance. It's good variety. But I don't have the time to get into it. Wish someone else would

MSmits: antisquid did, but not many others

Astrobytes: Quantity over quality as per.

Astrobytes: I will try it soon MSmits.

MSmits: cool

Astrobytes: So damn much to catch up on.

MSmits: yep yep

MSmits: something funny happened to me today

MSmits: I was teaching all day online

MSmits: then at the end of my day i was in a meeting with out highest manager

MSmits: (boss of 5 school buildings)

MSmits: i forgot to turn off my google meet

MSmits: with my class

MSmits: and one student had apparently disconnected and reappeared half an hour after the class ended

MSmits: during my meeting

Astrobytes: hahaha

MSmits: so he was suddenly talking really loudly in my ear during this meeting

Astrobytes: Could the manager hear it?

Astrobytes: Or it was totally separate

MSmits: didnt give him a chance, i just said, sorry i have to talk to this student

MSmits: he would have heard prolly

Astrobytes: heh

MSmits: i also had 2 students that wanted a separate meet so they could cooperate quietly

Astrobytes: Politicians get fired for such things. Always mute/close the required channels

MSmits: then they invited me to check if they were working

MSmits: and the passcode was poop

MSmits: these are 16 yr olds

MSmits: fyi :P

Default avatar.png zhoubou: Just wanted to ask :rofl:

Astrobytes: At 16 my passcode would have been a lot worse than 'poop'. Were they working?

reCurse: I've come to expect worse from adults so nothing surprising here

MSmits: Astrobytes yeah it was right after the class, i even forgot i had a meeting. I was 10 mins late lol.. students kept asking me questions

MSmits: they were drawing stuff with python turtle using code

MSmits: sir, my tree is lopsided, how to fix?

Default avatar.png Angecide: Hi, I was reading ur post on optimizing bfs the other day and I really liked your idea about class-less nodes, and I was wondering if you think it would be possible to apply the idea in mcts as well? I thought about this a lot and the the biggest challenge I see is; how to keep track of all the child nodes (assuming there could be more than 30 child nodes at some point)? Maybe you have a solution for this?

reCurse: Contiguous allocation

MSmits: that means the child nodes are together in memory right?

reCurse: Yes

MSmits: you reserve the memory block that is just large enough for the number of children

Default avatar.png Angecide: yea, but I would have to store them within a bit

reCurse: A bit?

MSmits: oh my bfs playground

Default avatar.png Angecide: yea

MSmits: that is pretty specific to mazesize though

MSmits: if the maze is too big, it wont fit neatly in an integer

Astrobytes: well you ain't gonna be storing your mcts nodes in a bit

MSmits: oh wait, you mean the integer queue?

MSmits: where i have a start and and end?

Default avatar.png Angecide: nah, the part where you talk about "BFS without classes"

MSmits: yeah thats the queue i think

MSmits: "popping" from the queue, increased the queueIndex

MSmits: adding to the queue increases the end of the queue

MSmits: so your "queue" window moves

MSmits: and you're just using an integer array

MSmits: when the start of the queue = the end of the queue, the search is done

MSmits: well.. you havent found it then

Astrobytes: oh wait, he wants to store the mcts nodes in an int

Default avatar.png Angecide: yep

MSmits: well thats not all that helpful, because MCTS needs more than a single int per node

MSmits: and if you're using those, you might as well have a class

Astrobytes: ^

reCurse: You need bigger ints

Default avatar.png Angecide: ahh, I thought I could clever and perhaps store everything in an int to boost performance

reCurse: Are we talking C# here?

Default avatar.png Angecide: c++

Default avatar.png Angecide: just in general

reCurse: ...

reCurse: what?

MSmits: Angecide nah, the compiler solves all your problems

reCurse: Why would you care about class vs int in c++

MSmits: it just makes it a long block of continguous memory like reCurse said

Default avatar.png Angecide: I thought maybe class was too much overhead compared to an int

MSmits: there is no overhead

Default avatar.png Angecide: idk, maybe it is a silly area to look for performance

reCurse: There is zero overhead to a class unless you have virtual members

reCurse: Yeah it's silly

MSmits: but we';ve all been there Angecide, at least if you started here without becoming an experienced coder first

MSmits: we start to look for optimizations that dont work

MSmits: i did as well

MSmits: in bfs it helps, because those versions with classes, use more memory

MSmits: so the information is spread out

MSmits: you only need the integer

reCurse: That has nothing to do with class

reCurse: But the allocation

MSmits: you're right

reCurse: Same problem with a int*

MSmits: it's just that people fill their class with members that are really big when they only need a single bit or very few

Default avatar.png Angecide: yeah I understand now, I see my quest for gaining performance was a bit misguided, but thanks for clearing it up

reCurse: !profiler

reCurse: We need a bot with useful shortcuts

reCurse: Take the few good ideas from twitch

MSmits: Angecide also, you have to wonder what your bottleneck is

Astrobytes: Very true.

Astrobytes: (re the bot idea)

MSmits: reCurse the playground he is talking about does a profile, and in that case he is right and the way that class was setup, hurt the program

reCurse: Any quest for performance must start with a profiler

MSmits: so i can totally understand wanting to apply that elsewhere

reCurse: Then maybe the explanation was not clear enough

Default avatar.png zhoubou: If you have a hammer...

MSmits: reCurse probably, he surprised me with the question

reCurse: Speaking of profiling, anyone had success with profiling an executable under wsl2?

Default avatar.png Angecide: yeah sry it came out of nowhere, just something I have been thinking about a lot

MSmits: are you doing this for uttt?

reCurse: No problem, just a surprising question

reCurse: So is yours MSmits

MSmits: my question?

reCurse: Yes

MSmits: what did i ask

MSmits: oh uttt

MSmits: it's probably uttt, it was more of an introductory question to see if we could help him otherwise improve his perf. on that game

MSmits: there are more important parts to work on

reCurse: I see

MSmits: like a fast rollout

MSmits: maybe better random function

MSmits: UCT

Astrobytes: re WSL2, maybe struct?

Default avatar.png Angecide: yea it's uttt

Astrobytes: Also: did we all see the upcoming semi-private contest?

reCurse: No


Astrobytes: Only French eligible for prizes.

Astrobytes: Might get XP from playing.

reCurse: Such discrimination in 2021

reCurse: Tsk tsk

struct: all ive used on wsl2 was valgrind

reCurse: Not very *diverse*

Astrobytes: Yes. I was deeply shocked and highly offended.

struct: intel vtune doesnt work on wsl2

reCurse: I'm sure there's a way to be offended and get publicity for it

reCurse: struct: Even with system monitoring?

Wontonimo: so, the sopra-steria is really only for french devs?

reCurse: So is it french coders or French coders?

struct: I didnt try, I read a bit about it and it says its not supported

struct: so I stopped there

reCurse: Hmm ok thanks

Westicles: I'm 1/8 french, can I win part of a tshirt?

reCurse: Underwear

Astrobytes: afaik it's French as in residing in France.

reCurse: So all I need is someone's address

Astrobytes: Feel free to ask for clarification, if it's just a language thing it might be different.

Astrobytes: Hm, in that case...

reCurse: I'm sure I could recruit a vessel in Fr

Astrobytes: I know a fair number of people in France. Maybe I can open a little market here...

reCurse: So many hashtags, you'd think it's 2012

Astrobytes: haha, I didn't see that

reCurse: #esport though, really?

MSmits: a vassal?

MSmits: or a vessel?

reCurse: Why not both

MSmits: sure

Astrobytes: Indeed

Astrobytes: #esport... I suppose #comptetitiveprogramming was too long

MSmits: #esport is wrong

Astrobytes: Or #competitiveprogramming

MSmits: #esport is just #egaming i thought?

Astrobytes: I won't go there on the abbreviation

MSmits: ah ok, me neither

Astrobytes: Yes MSmits, that's what I would always assume

reCurse: Gaming implies leisure, sport implies competition

MSmits: no need to go there then

reCurse: But esport is a meme at this point

struct: btw new insiders preview build lets you add start up commands to wsl

reCurse: Startup commands? Isn't that just bashrc?

Astrobytes: .bashrc

reCurse: Yea yea

Astrobytes: :P

struct: I guess it should be

struct: maybe im missreading


reCurse: Oh I see it's when the system starts

reCurse: Ok

Astrobytes: Well, when you start wsl

Astrobytes: *whenever

reCurse: But it's when the distribution starts

reCurse: Not when you open a shell

Astrobytes: aha, my bad, gotcha

Astrobytes: Somehow missed the fact it said distribution 3 times and distro once. I blame the snow.

reCurse: I realize it's a terrible place to ask, but is it possible for a GPU to trigger or make tinnitus worse?

Astrobytes: I have terrible tinnitus but I'm not sure GPUs are capable of doing such things.

reCurse: Might just be a coincidence but mine got suddenly noticeable ever since I started maxing out my GPU usage a few days ago

reCurse: It's very annoying

RoboStac: coil whine on gpu's is definitely a thing

Astrobytes: Do some experiments

reCurse: Yeah I'm trying to pinpoint it

reCurse: Coil whine is one suspect yes

reCurse: But should it stop when usage stops?

struct: also gpu will make power supply work more

reCurse: Or is it possible for it to linger as a tinnitus trigger

Astrobytes: You most likely have something else triggering your tinnitus

reCurse: The biology part escapes me

Astrobytes: The tinnitus part escapes us biologists.

reCurse: Maybe, the coincidence is just so suspect to me

Astrobytes: Tinnitus is a symptom of so many things it's hard to list.

reCurse: :/

reCurse: I counter it with music and headphones but also worried it might make it worse lol

reCurse: sigh...

Astrobytes: If you have other comorbidities it can help diagnosis sometimes.

reCurse: Don't think I have those

struct: I know it probably isnt very helpfull, but I just found on a forum a similar question


reCurse: Oh... interesting.

reCurse: "I realized that whenever I was exposed to the new PC for more than say 10-15 minutes when it was turned on, the ringing in my ears would spike like crazy (persisting even after turning off the PC"

reCurse: That would match my experience

Astrobytes: I guess if it matches the frequency of your tinnitus it could prolong/intensify it (see ringing in your ears after loud music exposure)

reCurse: Yeah it's the part that was puzzling me, whether it would linger or not

Astrobytes: How long does it persist after poweroff reCurse?

reCurse: Makes the investigation that much more difficult

reCurse: Haven't tried much

reCurse: Couple of hours didn't help

reCurse: And not really leaving home much during lockdown

Astrobytes: Yeah, not that helpful. Try and keep a note of it regardless though.

Default avatar.png Benkay: Hey!

Default avatar.png Benkay: How's everyone?

reCurse: Not bad

Astrobytes: Not great, but not terrible.

Westicles: Fair to middling

Default avatar.png Benkay: Anyone want to clash of code?

Astrobytes: Behold the field where the clashers are, and see that it is empty.

Astrobytes: What's the meta on SameGame?

Westicles: In what sense?

Astrobytes: Anyone actually use NRPA or anything? Or just beam search

Westicles: Oh, not sure. Wasn't much talk about it after the first couple days

Astrobytes: I'm just catching up, so much to catch up on

Default avatar.png Benkay: Could I get someone to teach me JavaScript?

Default avatar.png Benkay: I know some bits of it not advanced.

Astrobytes: Elsewhere, yes.

Default avatar.png Benkay: Where?

Astrobytes: I would start with searching with your favourite search engine to be honest.

darkhorse64: Astrobytes: you can start with montecarlo coupled with tabucolor

Westicles: I guess the main thing on samegame is you are probably looking at deep offline searches

Default avatar.png Benkay: What do you mean favourite search engine?

Astrobytes: tabu... yes. And offline ofc. I'd just been thinking of montecarlo + most connected components

darkhorse64: I have done online stuff. I am too lazy to code 20 solutions

Astrobytes: tabu seems like a good approach on or offline

Westicles: It is a bunch of work. Even figuring out the tabu color for each case is a pain, not always obvious

darkhorse64: NRPA looks like a promising algo but I wonder if it's efficient under short time constraints

darkhorse64: Nah, coding tabu is easy

darkhorse64: you need a fast BFS

darkhorse64: If you have done puzzles or multis, you already have one ready

Astrobytes: Fast BFS I have. re NRPA efficiency - if you do it offline that doesn't matter too much eh

Westicles: I meant for finding the optimal solution. A bunch of them have two different colors that can get close to the same score

Astrobytes: Yes, it's an often discussed problem in papers iirc

DomiKo: Astrobytes I'm using NRPA

darkhorse64: Could be an improvement, tabu with the two main colors

DomiKo: and SP-MCTS

Astrobytes: Oh nice. Offline or online DomiKo?

DomiKo: Offline ofc

DomiKo: for like 2H each test

Astrobytes: Thought so.

Astrobytes: Excellent results.

Astrobytes: Westicles: just tabu for you or...?

DomiKo: I was improving A LOT and I gained only ~2K :/

Westicles: Yeah, pick a tabu color, make a random move list, delete a random move and anneal. Not sure what you would call that...

Westicles: Same as NS for me at least

Astrobytes: SA w/ Tabu? I guess

Astrobytes: NS... I can't believe I got that far without coding anything

DomiKo: SameGame is so interesting

DomiKo: how simple algorithm made by Westicles can beat a lot of big paper's

Westicles: Yeah, but the papers don't run for very long. I was in a 3 month contest so probably that is a big chunk of the diff

DomiKo: wait

DomiKo: really?

Westicles: Yeah, there was a contest for this way back when. That's where the top4 on jsgames were competing


Astrobytes: (for reference)


DomiKo: wow

DomiKo: 2012

Westicles: back on the old dual core

DomiKo: One question. If there is legal TABO move will you do it? or you never do such move if you don't have to

darkhorse64: I do it as late as possible (only move)

Westicles: I have a threshold for each problem, you can't pick the tabu color until there is a group of some size. Except for some you have to make exceptions once or twice

Astrobytes: as in late acceptance darkhorse64?

DomiKo: so you pick tabu color after some time?

Astrobytes: makes sense

darkhorse64: late acceptance is something completely different (as in different context). You keep inferior solutions for a while

Westicles: Huh, I was wrong. The contest was on a different set of boards. I guess I just ran it afterwards on jsgames, so only 3months for the code but not running

Astrobytes: Yes I'm familiar, I misread your comment (missed the 'only move')

Astrobytes: @darkhorse64

Astrobytes: Still worked out pretty well Westicles

Westicles: I hope xevi gives it a try, it is similar enough to NS he should be able to pass me

struct: top solutionsof Same game are hardcoded or no?

DomiKo: yes

DomiKo: Full offline

Astrobytes: Kinda the point for a lot of the optims

Astrobytes: Newer ones are designed with that in mind

Default avatar.png UnnamedCodinGamer: you can still get a decent result within the provided time though

Default avatar.png DocCV:

Astrobytes: Definitely.

Default avatar.png UnnamedCodinGamer: importing the test cases was tedious

struct: isnt it trivial?

Default avatar.png UnnamedCodinGamer: I did not automate it

Default avatar.png UnnamedCodinGamer: copy/pasted them

struct: ah

Default avatar.png UnnamedCodinGamer: on top of this there are 20 duplicates

Default avatar.png UnnamedCodinGamer: can not figure out why

Astrobytes: only aCat can explain that

Default avatar.png UnnamedCodinGamer: maybe for some approaches you could get different results

Default avatar.png UnnamedCodinGamer: It is strange

Astrobytes: I am sure there was a 'reason' but it turned out to be redundant, don't quote me on that though.

Default avatar.png UnnamedCodinGamer: for most of the solutions it seems to be the case

Westicles: Did people do bender4 offline?

Astrobytes: Hmm, I'm not sure tbh. It seems doable online

Astrobytes: But I don't know who used what approach in b4

Astrobytes: Anyway, I'm away to bed. See you all tomorrow, gn

struct: gn

MohamedMiri: too much lag or what ?

Default avatar.png BananaInSpace: Ive been stuck in coders strike back boss 2 for a WEEK, any help T^T