Chat:World/2020-08-15
jacek: happy Caturday
Gorbit99: happy caturday
a1b8r: What are cps in this game?
a1b8r: CP
a1b8r: CPS being plural
a1b8r: Codin Points
WINWINWIN: points gained by competitive programming on codingame that determine your global rang
WINWINWIN: You can see the full explanation if you click on your rank at the home page and then the ? next to codinpoints
Gorbit99: it's explained under your profile > click on your rank
a1b8r: Thank you!
FatherMucker: hey whats the best solution for this game guys?
a1b8r: They aren't increasing tho, if I'm playing.
aCat: they are updated once per day
aCat: so you don't see rightaway ranking change
aCat: if that's what you mean
a1b8r: thank you!
a1b8r: understood
Kiripot: lol
AntiSquid: good morning, no spam please, thanks
Washier: happy caturday
danlars: Morning!
UltraSheep: :stuck_out_tongue:
UltraSheep: :stuck_out_tongue:
UltraSheep: :stuck_out_tongue_winking_eye:
jrke: happy caturday :)
Thyl: Hello !
Thyl: Do you know any articles on genetic algorithms ?
Phenomz: how come im able to program some stuff but im unable to solve those fucking puzzles.. making me mad -_-
Tee-Resa: what puzzle?
Phenomz: im just trying "Chuck norris" a beginner puzzle lol
Thyl: *please ?
Phenomz: maybe im just too dumb to understand the examples of those puzzles... well im certain
eulerscheZahl: don't you understand how to approach it or how to put your thoughts into code?
Phenomz: maybe just put my thoughts into those example would be more accurate idk
Phenomz: it says "we want to encode the message CC" but the expected results is: 0 0 00 0000 0 00 ?
Phenomz: and the base message is C?
eulerscheZahl: so, the first step is to convert CC into binary in respect to the ASCII table
eulerscheZahl: 10000111000011
Phenomz: so i can just take the whole alphabet and make it convert into ASCII binary?
eulerscheZahl: then group it: 1 0000 111 ...
eulerscheZahl: and convert as specified: 1 => 0 0 0000 => 00 0000 111 => 0 000
Tee-Resa: in binary there is only the first step, you should then display the sequences of 0 and 1 differently
Phenomz: alright, i'll try something
Tee-Resa: try to write down what order you have and what should happen there. mostly helps
Phenomz: how is C coded as : 0 0 00 0000 0 00 if it gives 1000011 as binary
eulerscheZahl: take the 1000011 and group it into same digits
eulerscheZahl: 1 0000 11
eulerscheZahl: is that not clear?
Phenomz: well i thought i had to convert it which i did.. but im lost
eulerscheZahl: that binary conversion is just the first step
eulerscheZahl: you did the well but there's more to do for the puzzle
eulerscheZahl: a sequence of 1 gets converted to 0 <length of sequence>
eulerscheZahl: thus: 1 => 0 0 11 => 0 00
eulerscheZahl: and a group of 0's: 00 <length>
eulerscheZahl: 0000 => 00 0000
eulerscheZahl: put that in order: 0 0 00 0000 0 00
eulerscheZahl: and that's the conversion of "C"
Gorbit99: I blcoked madknight on discord yesterday :(
Gorbit99: he messaged me 3 times a day if i tried the algo he outlined the other day, and yesterday when I told him that I had other plans, he said to just not do that and do the algo instead, as what I wanted sucked anyways
wlesavo: thats a classic mad
eulerscheZahl: wow, he's still active?
wlesavo: also surprised
wlesavo: is the SG competition over euler?
eulerscheZahl: there has never been one
wlesavo: i mean that illedan challenge
eulerscheZahl: tomorrow evening i think
wlesavo: oh i see
Gorbit99: eulerscheZahl I was code golfing a different thing on a discord server, and he told me, that I should make the algo instead of the stupid code golf, and also that I should look at you because you're the best coder and you hate coc too
Gorbit99: sorry, he said you know tons about programming to be exact
eulerscheZahl: how dare you enjoying something that god-like eulerscheZahl dislikes? :D
eulerscheZahl: you should upload 3D teapots instead
MSmits: Gorbit99 wise words, I look at euler all the time
MSmits: that's how you beat him, just make him uncomfortable
dbdr: Glory To Eulerschezka!
kovi: how westicles still ahead?
AntiSquid: Gorbit99 do what you like, even coc if that's what you want, someone hating something doesn't make them right, if you apply a filter based on other people's preference you might as well quit CG: see recurz
MSmits: kovi i have a list of maximum found scores from papers and from that human playable website, Westicles is very near the max
MSmits: https://imgur.com/a/88ItxTW
Westicles: aCat says he knows an unpublished paper that beats them all. I guess neural nets?
aCat: no
aCat: yet another RPNI
aCat: by Tristan
AntiSquid: who's paper would it be? aCat's ?
AntiSquid: regenerative peripheral nerve interface ?
dbdr: could you share those numbers as text MSmits?
MSmits: sure, sec
Westicles: I only know Ed's approach (spurious_ai), he just did BFS.
dbdr: I had this from the js website: 88214
MSmits: http://chat.codingame.com/pastebin/a6012afb-4214-4481-88c3-af48e28eb2fe
MSmits: yes some scores are best from js website, some scores are higher in papers
dbdr: lol: https://i.snipboard.io/D4qBgA.jpg
MSmits: apparently humans are still better at some
dbdr: js site might not be all human
jrke: suppose if i see all possible outcomes in offline ide then ?
MSmits: true probably not
aCat: damn me
aCat: NRPA ;]
aCat: too many shorcuts
aCat: wait
aCat: I have to check this one alse
dbdr: jrke: that would take longer than the age of the universe
kovi: so the best way to win to get some strong players play this 20? :)
aCat: nested rollout policy adaptation\
jrke: really? dbdr
dbdr: yes
aCat: with some tweaks
kovi: i was thinking about that. with not good enough algo manual could help with ns
kovi: (below 100)
MSmits: in other worse, doing what jrke says also solves the problem of finding out how the universe ends
dbdr: "Exponential growth is the most powerful force in the universe"
MSmits: words that is
jrke: max possible outcomes will be less than 115**115 its uncountable
MSmits: you just counted it
MSmits: and its even less than you said
kovi: yay
jrke: yup!!
dbdr: the word is untractable
kovi: trictrac is offline?
MSmits: doesn't this game have a lot of transpositions also?
dbdr: even less? lame! :D
dbdr: it's still NP complete
MSmits: sure
MSmits: but there's some improvement there
dbdr: sure
MSmits: I am not taking this into account currently
MSmits: are you?
dbdr: yes, zobrist
MSmits: hmm ok
MSmits: it's difficult to do for mcts
MSmits: but meta mcts handles it just fine if i ever get it finished
Westicles: MSmits, your table has 6086 for case9. Where is that from?
MSmits: sec
MSmits: https://dke.maastrichtuniversity.nl/m.winands/documents/KNOSYS_SameGame.pdf
MSmits: page 18
MSmits: HGSTS score
MSmits: I think they use the GPU
MSmits: they dont have highest on everything btew
MSmits: btw
dbdr: looks like 50+% are from the JS site
dbdr: thanks for the numbers MSmits!
MSmits: sure, but also some of the js numbers are submitted from bots
MSmits: so some might be in both
MSmits: np
dbdr: I do the same of calculating the diff to max to know where most improvement might lie :)
Westicles: Man, that's over a thousand over me. Better try that one some more
MSmits: yeah
Westicles: I bet its a typo, though
dbdr: https://i.snipboard.io/2YgZPr.jpg this seems old :D
MSmits: it's just highly compatible
dbdr: with 90's browsers
MSmits: yeha
dbdr: "Monte Carlo (MC)tree search algorithms are a form of best-first search algorithms that do not evaluate the quality of a node based on some evaluation function. Instead, Monte Carlo bases the quality of a node on a number of random games"
dbdr: except you can consider the score on random games as the (randomized) evaluation function
MSmits: yes, but the base MC is used for win/loss games
MSmits: with -1 to 1 scores
dbdr: that's a special case
MSmits: also the evaluation function is supposed to be an approximation of the board value
MSmits: the score is the actual board value
dbdr: you don't do -1/1, you use the final score
MSmits: right but for win/loss games -1 to 1 are the actual game results
MSmits: for samegame the score is the actual game result
dbdr: for specific actions
MSmits: yes but thats always true for a statistical search
dbdr: it's just one more evaluation function
MSmits: i dont agree, when you make an evaluation for chess, or checkers or whatnot, you dont have win/loss scores, you evaluate other things
MSmits: you dont evaluate the end of the game
dbdr: you can do that or do something else
MSmits: in same game you do evaluate the end of the game, doesnt matter that it is random and dependent on actions
dbdr: there are all evaluation functions
dbdr: *they
dbdr: you could say "static heuristic evaluation"
eulerscheZahl: dbdr i don't even recognize the red browser icon from your screenshot
MSmits: do you still call it an evaluation function if the game is solved and you're just taking the solved result?
dbdr: eulerscheZahl: me neither. sherlock time :)
dbdr: MSmits: yes, I would
dbdr: it's perfect evaluation :)
Westicles: MSmits, I'm not sure about that paper. I beat him in most cases, but he beats me by 1002 and 1003 in two cases.
MSmits: ah ok, fi that is your definition, then basic mcts uses an evaluation function as well
dbdr: http://www.js-games.de/images/browser_mozilla.gif
dbdr: so it's "mozilla"
MSmits: Westicles your heuristics may have a blind spot
MSmits: and so do his
dbdr: ah yes, if I zoom I see the godzilla head :)
SuthiwatPraesi: yo mates
Westicles: Nah, I think he is giving himself 2000 to clear :)
dbdr: there was a time where they were saying "it's written Nescape but it's pronounced Mozilla" or sth like that
dbdr: oh, you can do that? :innocent:
MSmits: Westicles lol ok, who knows :) It is said in the paper that the results are unverfied
SuthiwatPraesi: I have a question
MSmits: for that particular AI
dbdr: can I tell the referee how much I want for clearing?
SuthiwatPraesi: How long it take to be professional at CP
MSmits: coding points?
SuthiwatPraesi: Competitive Programming
MSmits: might be a long time, still not making money off of it :(
MSmits: oh ok
dbdr: 3 years and 2 months
MSmits: oddly specific
dbdr: well, that's a hint :)
SuthiwatPraesi: for real
dbdr: suddenly, poof! you're competitive
Westicles: Also, seems weird he took the time to type his two 78k results into jsgames, but didn't bother with the much better 85k score
dbdr: SuthiwatPraesi: you get better over time, that's all. there is no specific time
MSmits: Westicles let me put it this way, your result for 9 is like 5k right?
eulerscheZahl: what does that even mean, being a professional at it? doing it for a living?
Westicles: yep
MSmits: my result for 9 is 4631
MSmits: everywhere i have around 75-85% of max
MSmits: if 6k would not be the max
SuthiwatPraesi: Thanks guys
MSmits: but 5k
MSmits: then i would have over 90% of max in case 9
MSmits: it would be my best result suddenly
MSmits: by far
MSmits: so I imagine the max must be higher than yours
MSmits: using the same kind of logic as you are
Westicles: MSmits, but why would he take the time to manually play in his two lesser results into jsgames (as unimaas2 and 3), but not the much higher one? Plus all us other guys are grouped tight around a different number.
MSmits: you are saying, my bot rocks, it can't be that high. I am saying, my bot sucks, so it cant be that low
dbdr: it can happen that there is a narrow path to make a bigger main group
Westicles: If you know that guy, you should track him down and make him confess :)
MSmits: no idea Westicles, but while repeatedly running my mcts, I can suddenly jump up 600 points
dbdr: N² grows fast
eulerscheZahl: my bot completely clears 19 out of 20 boards. and somehow misses on. just some strange case where my search fails hard
MSmits: which case cant you clear and what is your score there?
eulerscheZahl: 19: 3337
kovi: btw 120 is reachable online
eulerscheZahl: just arguing about Westicles having a lower score
kovi: 120k
eulerscheZahl: it's possible to have some blind spot
MSmits: got 3989, must have cleared it
eulerscheZahl: that's pretty impressive kovi
MSmits: I think you are converging on a result thats not cleared, my score without the +1000 is 2989 so you got further on scores for regions
MSmits: might be it's just missing the reward at the far end of the tree
MSmits: beaming does that
eulerscheZahl: i know
dbdr: Until the year 2010, the top score on this setwas 84,414 points, held by the programspurious ai.5This program applies amethod called Simple Breadth Search (SBS), which uses beam search, multipleprocessors and a large amount of memory (cf. Takes and Kosters, 2009). Fur-ther details about this program are not known.
MSmits: say you also have a result that will get 2989 without the bonus. It will be dropped out of the beam in favor of your 3337
MSmits: eulerscheZahl maybe keep some random bad scores?
dbdr: there can be the same issue in MCTS if you stop exploring a branch
MSmits: sure but that can be solved with more cpu time
eulerscheZahl: nah, doing my own nonsense approach right now MSmits
dbdr: and more memory. in beam search too :)
eulerscheZahl: and tbh i'm not too involved into the game
MSmits: yeah dbdr, thats why meta mcts might be great here
MSmits: pleny of HD space available
MSmits: also currently I am losing everything when i reset my search
dbdr: going for the world record?
dbdr: the thing is, this problem seems to be researched to death
MSmits: i doubt it, but I like running meta mcts, it's fun. I'll get as far as I get
eulerscheZahl: if you want to contest top scores on a poorly analyzed subject, just put it on codingame :D
dbdr: ^
dbdr: I have several world records that way :D
MSmits: you do
dbdr: "world"
eulerscheZahl: but did you write a paper?
MSmits: yes it doesnt count unless there's a paper
dbdr: yes. but not about those ;)
MSmits: give us your secrets
dbdr: obstination is the secret. you know it ;)
MSmits: I'll request them from research gate
jacek: for $$$
MSmits: obstipation?
dbdr: ?
MSmits: heh constipated in Dutch.
Westicles: spurious_ai is Ed Mertensotto. He worked on this for years, and everybody kept writing papers saying they had no idea who he is
dbdr: let your ideas out
MSmits: Westicles did you work on this before acat put it up?
MSmits: you seemed to have a good bot so quickly
eulerscheZahl: he did in 2012
MSmits: oh
Westicles: MSmits, yes I am sampson on jsgames
MSmits: ahhhh
MSmits: can illedan maybe extend the deadline another 8 years please
dbdr: hypermarathon
Westicles: Well, I only worked on it 2 months, so you can have that long
dbdr: Westicles: you found your code but not your data, right?
MSmits: wow 2 months, that's still pretty hardcore.
Westicles: Yeah, but there are so many tuning params, they just shot straight back to the same answers, more or less
dbdr: ah, you still had the params?
dbdr: less than years for Mertensotto
dbdr: but yes
Westicles: Yeah, the code has like 10 params per test case.
wlesavo: MSmits or pirate dbdrs future article via scihub :smiley:
MSmits: ohh right
dbdr: why would I not make it public?
MSmits: $
dbdr: authors don't get paid
wlesavo: well big journals make YOU pay for open access
dbdr: ^
dbdr: racket
Sonex123: i dont understand it
MSmits: you get exposure as a scientist, boosts your career
MSmits: thats why
wlesavo: there are some pure open access journal, lot of them, but not many people read them because of a flood of a junk papers
dbdr: when you work in a field, you know who else is working on it
dbdr: and what matters are the confs, where everyone can submit for free
MSmits: since i signed up on ResearchGate, I keep getting "people read your work" mails.
dbdr: that's how you know about the research
wlesavo: sure, also citating works good, people get notification aout beink cited
MSmits: Turns out 2 people read my 16 year old paper last week :P
MSmits: the only one I ever wrote
dbdr: might be "people"
MSmits: not sure, hard to say
dbdr: might be "read"
dbdr: who knows
MSmits: could be a bot
MSmits: ofc
MSmits: we all know automaton2000 is looking to branch out
dbdr: reminds me of linkedin
Automaton2000: yeah but i think it should be a lot better than my bot
dbdr: "you are getting noticed" :D
wlesavo: lol
dbdr: it's the problem of those platforms, they have incentives to hook you, not to give you value
MSmits: right
MSmits: like every social media platform
dbdr: yeah
dbdr: well, the commercial ones
MSmits: like every social media platform
MSmits: well, 99% :)
wlesavo: actually after todays disscussion testset becomes understandable, somehow it didnt come up to me that its actually standartised for benchmarking
MSmits: yeah thats the nice part
MSmits: i was worried people would have put solutions online that you can hardcopy into your bot, but i didnt see any
MSmits: probably if you look harder, you could find them somewhere
MSmits: the owner of js-games could probably take the nr 1 spot :P
dbdr: yes, maybe that's one that 85K is not there
dbdr: *why
MSmits: makes sense
dbdr: I wonder if you could prove you have a solution without revealing it
MSmits: doubt it
dbdr: well, cryptography can do surprising things
dbdr: you can prove you have a certain private key without revealing it
JBM: first one can just hash it
dbdr: and then?
MSmits: dbdr isnt that because the person you are revealing it to also has information others dont have?/
JBM: depends on who he'd want to prove it to
dbdr: sure, you can publish a hash to get the anteriority, if you later reveal it
MSmits: meaning you can prove you had the solution earlier?
dbdr: MSmits: no, that's the magic :)
JBM: better "solutions" would need more framing
dbdr: yes
jacek: https://en.wikipedia.org/wiki/Zero-knowledge_proof
dbdr: MSmits: oversimplifying, you take huge prime numbers P and Q and publish R=P*Q. everyone knows R, but you can prove you know P and Q while it's "impossible" to find them based on R
MSmits: right
MSmits: but you are communicating with someone
eulerscheZahl: tried to submit a wrong score on the JS gaming site...
dbdr: you can do it publicly
eulerscheZahl: got a 200 OK response
eulerscheZahl: content: "Cheater!"
dbdr: lol
dbdr: they did good job
dbdr: JBM style
MSmits: dbdr what i mean is, you post something publicly, the person who can read it also has P doesnt he?
JBM: i remember trying this with colleagues as early as 2004
MSmits: or Q or whatever
Illedan: 123,550k, but only 95%
Illedan: (╯°□°)╯︵ ┻━┻
JBM: and persistently keeping up with it each time a new popular game came up
dbdr: you never reveal P and Q, those are private
MSmits: but how does someone who is supposed to be able to read it, do so?
dbdr: you can setup a channel with one person, yes
MSmits: thats what i mean
MSmits: so if you use something like this for samegame, someone has to have more information
MSmits: there has to be some central agency to check
dbdr: I'm not saying it's directly usable to prove you have a solution without revealing it
dbdr: I'm saying it's not obvious what can be donne or not
MSmits: ok, because the prime numbers thing is pretty much the only thing i know about this :P
dbdr: before the invention of public key cryptography, it probably sounded impossible
MSmits: right
MSmits: but dont you think a game has to be designed with this in mind?
MSmits: i doubt you can figure this out afterwards
JBM: it doesn't take too much to include it
MSmits: sure
MSmits: that could be true
JBM: you can get a lot of mileage out of just making a solution['s hash] a private key, and publicizing the public key
JBM: get a solution => you can sign a "GOT IT" message for all to verify
MSmits: hmm ok
dbdr: what checks that the solution is valid?
JBM: wait that's not that easy i'm getting ahead of myself
JBM: by stating what the public keys are
dbdr: echo "GOT IT" | sign-it :)
JBM: that's for single known-in-advance solution
JBM: but some puzzles are constructed like that
dbdr: :)
dbdr: yeah, that's an easier case
JBM: i don't think there's a generic way for a generic puzzle
dbdr: thinking of a referee program
dbdr: if you can design sth around that it could be generic
eulerscheZahl: and then the only thing you need is an interesting game using it
Osama_Almaani: i dont get it :joy:
wlesavo: Westicles in that paper the rules are explicitly described to give 1000 points
MSmits: he was kidding about the 2000
MSmits: he just doesnt believe the high score and the score is not verified so who knows. By the way, these particular scores were not obtained by the author, but came from different scientists
MSmits: i believe them, because every search has blind spots
MSmits: (except full search)
Westicles: Yeah, just kidding. But it would be weird if case9 had such a solution. It is so dominated by one color it is one of the easier ones
wlesavo: oh sry, didnt get that :slight_smile:
MSmits: but it is still far from solved and the fact that it's dominated by 1 color, means you can get a huge bonus just from adding a few more tiles to the big clear
MSmits: so big jumps seem to me to be more likely in cases dominated by 1 color
Westicles: I'd be happy to be wrong. That's the only one where I have the record on jsgames, so I might not be an objective observer :)
MSmits: yeah and as I said, who knows
MSmits: unverified means just that
petticode: Hi, I am beginner . Can anyone tell me from where i should start? :disappointed:
MSmits: beginner at coding?
MSmits: do you know the basics in a particular language?
petticode: yes i have learned javascript
MSmits: start by doing easy puzzles i guess
petticode: where i can find easy one?
MSmits: get used to the way input works and try to solve one that you like
MSmits: there are over 100
MSmits: https://www.codingame.com/training/easy
dbdr: in case 9, there are 60 of the main color right?
dbdr: so max score is 3600 for that
petticode: can you tell me what are readLine and parseInt func?
dbdr: (62 - 2, sorry)
dbdr: tr -d '"' | tr ',;' '\n'|sort |uniq -c | sort -n
dbdr: can you do that in your format aCat? ;)
dbdr: (I mean you can, but I expect it will be more work)
Westicles: Right, and to get close to 3600 you can't clump the other colors much.
dbdr: upper bound of score for case 9: 9693 + 1000
MSmits: hmm do you use the upper bound to know you've solved it?
dbdr: no, it's surely unattainable
MSmits: I guess maybe at the last 3-4 moves your score will actually be the upper bound
dbdr: yes, you can for small boards
dbdr: I saw it mentioned for A* type searches which need an upper bound
MSmits: wonder if it is worth implementing that
dbdr: sounds rather cheap to implement, so maybe
MSmits: hm ok
dbdr: oh, euler hadn't been out of top 3 for a long time
Marchete: how are the recolored validators?
dbdr: recolored
Marchete: I mean
Marchete: I need to permute all to just find it?
xlr4829: from hexa FF to decimal 255 use parseInt(FF,16) with 16 represent base
dbdr: just canonicalize the colors
dbdr: e.g. the order in which they appear first
Marchete: ahh
Marchete: much better
dbdr: you don't need to try all permutations
dbdr: I identify a board by it's top line, it's unique
dbdr: *its
**dbdr goes away in shame
MSmits: I turn the board into a long string and compare the whole thing :P
dbdr: cleaner
MSmits: just gained 800 points on case 1. I think I did 40 or so runs before
MSmits: so it is possible to get a huge jump even after lots of cpu invested
MSmits: (a run is like 2 minutes)
MSmits: possibly i just cleared it for the first time
MSmits: I still dont check that
Westicles: Which color are you focusing on for case1?
MSmits: No idea
MSmits: I do mcts
MSmits: but in rollout i avoid common color
Westicles: oh
MSmits: most common color
MSmits: it's possible that in different parts of the tree, the most common color is different
Westicles: Looks like I have red as the taboo color, but it is third most common
MSmits: oh ok
MSmits: hmm well color counts are so close that this doesnt matter in my case
MSmits: since i build a mcts tree, i will soon hit a situation in which red *is* the most common color in the rollout
MSmits: doesnt take much depth
Westicles: Hmmm. I guess it is possible that your program could figure out the best color on its own, but ultimately you'll probably have to figure out the best one and force it
dbdr: the best might be to change the tabu along the way...
MSmits: oh did you do a lot of manual forcing?
eulerscheZahl: is trictrac hardcoding?
Westicles: There isn't much scoring outside of biggest group+1000, except on a couple of the tricky ones
trictrac: yes
eulerscheZahl: then i'm relieved
MSmits: I think my best score without hardcoding is about 116k
eulerscheZahl: but Marchete with a nice score for only 50% :o
MSmits: yeah thats high
MSmits: also hardcoded i am thinking
dbdr: ice falling from the sky :o
dbdr: the earth is weird
MSmits: Marchete at nr 2
MSmits: with 159k
eulerscheZahl: saw it
eulerscheZahl: well done
MSmits: yeah
dbdr: nice Marchete
MSmits: the 50% was to check if hardcoding was going properly :)
Westicles: That's what you get for helping with the recoloring
dbdr: the hard part :D
MSmits: no doubt
MSmits: meta mcts should do great here then
MSmits: I habitually force the search in directions I think are good
dbdr: Marchete: thanks for the motivation ;)
Marchete: :D
Marchete: I know you'll beat me
Marchete: you always do
eulerscheZahl: :popcorn:
Marchete: the 50% was because I was doing only the cases without the recoloring
Marchete: I needed to link them
Westicles: Nice, that's good for fifth on that website
Marchete: and for frying bacon in my CPU
dbdr: are you running in C#, or just the player part?
Marchete: just for the player
Westicles: Is this one like NS where you can get the badge for every language?
eulerscheZahl: yes
eulerscheZahl: as long as you get 100% on optim/golf/puzzle, you get an achievement
Marchete: well, there is a puzzle whose solution was something like sqrt(2*n), or mars lander
dbdr: inb4 #1 in a minor language
eulerscheZahl: you just have to submit some dummy, doesn't even have to be your highest score
dbdr: there's a puzzle where anything is 100%, no?
eulerscheZahl: A*Craft
eulerscheZahl: and REALLY easy for CG sponsored contest
eulerscheZahl: and for number shifting
dbdr: Marchete increasing fast
eulerscheZahl: calm down
eulerscheZahl: making faster progress in that high range than me at 140k
wlesavo: damn, Marchete stole euler's rightful second place
Westicles: Not long until first
dbdr: MSmits stole my rightful #3
MSmits: you dont have better scores to submit?
dbdr: I have a bit better
MSmits: When I saw myself at 3 I figured, oh he already kicked me down again, but it was Marchete :P
dbdr: more and more people in the top 3
MSmits: :confused:
dbdr: :D
eulerscheZahl: you evil thieves. i'll sue you
Illedan: Oh, Marchete joined the party too :thinking:
dbdr: BMSMA
Illedan: Is that your algo dbdr?
dbdr: no, something Bender would reply to eulerscheZahl
wlesavo: euler should write a paper and claim second best results with hashed solutions
Illedan: hashed solutions?
MSmits: Bite My Shiny Metal Ass
eulerscheZahl: i should edit the referee, submit my code and then revert to old referee
wlesavo: its kind of meme from todays chat Illedan
dbdr: fae46e47dccd500f4fd2ab937d4e0d6c814819a5f5ddd8643bcba265bf46df14 hash of my solutions with 195k points
Illedan: xD
Marchete: then submit it
kovi: duh, it looks like im the weakest of hardcoders :(
MSmits: 183266 = max from sources I checked
wlesavo: Marchete then cg would own the world best solution, no way!
dbdr: nah, I'm worried CG devs would steal my solutions
MSmits: kovi hardcoding takes time
eulerscheZahl: a 256bit hash, looks like you created one for real and weren't entering random characters
Illedan: Marchete, did you find the solutions online? :thinking:
dbdr: echo "GOT IT"|sha256sum
wlesavo: Marchete wanted to steal dbdr's solution from cg sservers
Marchete: it worked
MSmits: Illedan doubt it, Marchete is pretty good at optims as far as i can tell. He did well at numbershifting too
Illedan: I know .P
Illedan: :P
Marchete: by hand level 80 or so :D
Illedan: There is some open sourced C++ solver of SameGame on github as I saw. No idea how good
Illedan: Lol
MSmits: i saw it
Marchete: the rest of them it was done by my PC
Illedan: Solving SameGame by hand? :D
MSmits: seems crap :P
Marchete: Number shifting
wlesavo: same shifting
Marchete: it was a fun optim
Illedan: Agreed
Marchete: I pity I went out of ideas
Illedan: Until a certain level -.-
eulerscheZahl: how's the app going Illedan?
eulerscheZahl: i want to get rich
dbdr: it worked so well he got better solutions than me??
Illedan: It's the next on my list. Will finalize my blog webpage today. And then the app :)
dbdr: "tomorrow I'll start"
Illedan: Yeah, getting settled in the new house now
Illedan: getting more time for coding again
Illedan: :rocket:
Marchete: Number shifting, procastination edition
Solacefire: I'm #1 in my grouping in the coders strike back challenge, how do I rank up?
Illedan: Just wait Solacefire
Illedan: There should be a timer above the leaderboard. And you need to wait for 100 % submission
Solacefire: 15H 48...guess I'm done for the day
Illedan: What league?
Illedan: That should be in minutes..
Illedan: Give it some time.
Solacefire: Oh, it was at 15.48 GMT, I see
kovi: cant improve any more ok, after tomorrow 12am lets reset with new judges and no more mass hardcoding
SirMiska: Hey how is everyone doing today?
SirMiska: Why is that jurkis?
SaurabhNegi123: can anyone help me with coders strike back wood 2 league
AntiSquid: no, all the people above are stuck in wood 2 so doubt it
Melo_07: Meh
JayBeest: some kind of running joke or? total silence..
Laminator: facebook hacker cup round 1 starts in a few minutes. Thanks for pointing it out to me!
Zenoscave: cgfunge prime has a bug
Zenoscave: | operator does nothing
Zenoscave: Nevermind it's my font. It should be an uppercase I (eye) not a Vertical Bar
jacek: oO
dbdr: Zenoscave: nice contrarian attitude :+1:
dbdr: cgfunge is fun
Zenoscave: I made a mistake lol
Zenoscave: Couldn't read the font in the instructions
dbdr: by conntrarian I mean, picking a different optim than everyone else
eulerscheZahl: Zenoscave is getting back to that old puzzle? nice
Zenoscave: I thought of a better algo
Zenoscave: Oh The I was for debugging. I don't know what everyone else uses
eulerscheZahl: robo is using Rabin-Miller afaik
Zenoscave: huh
eulerscheZahl: enough to test with base 2 for the given validators
dbdr: \o/
eulerscheZahl: what did dbdr break this time?
eulerscheZahl: 150k :D
eulerscheZahl: troll
dbdr: no
dbdr: 150000
dbdr: will you believe it's a coincidence?
Zenoscave: 150000 what?
eulerscheZahl: i'm sure you can score higher
eulerscheZahl: https://www.codingame.com/multiplayer/optimization/samegame/leaderboard
Scarfield: Chat Log (talk)\o/Chat Log (talk)
Zenoscave: That's what everyone was floodfilling
dbdr: right now I can't
eulerscheZahl: wait, it's a coincidence for real? :o
dbdr: yep
eulerscheZahl: and i'm back to 4th
eulerscheZahl: could beat smits but not you
dbdr: I was waiting for 150k+ to submit, and bam
MSmits: trying something new currently
MSmits: hope it helps
MSmits: I do mcts with 1 minute turns and a node pool reset. 1 run will take an hour
MSmits: I was doing 4 second turn runs without resetting tree and occasionally running out of node pool even with 80 million nodes
MSmits: and with 100 million nodes, the array gets too big, program is not allowed to run
MSmits: so i figured if i am going to reset the tree, then i might as well do loooong ass turns
eulerscheZahl: or you run it for a while, then take the first move as granted and search again from there
MSmits: thats basically what i am doing now
eulerscheZahl: ah
MSmits: I run it for 1 min, take best move and do it again
MSmits: so that will take like an hour
eulerscheZahl: the last moves should be faster if you have code to handle this case
MSmits: you mean because it sovles?
MSmits: solves?
eulerscheZahl: yes
MSmits: yeah i do
MSmits: but it does not use transpositions
eulerscheZahl: also lots of identical nodes. removing group A and B vs B and A
eulerscheZahl: oh
MSmits: not sure how to do this with mcts
eulerscheZahl: me neither :P
MSmits: how do you make zobrist work here?
MSmits: the order of actions does matter
dbdr: wasn't that discussed before?
eulerscheZahl: i have a beam search
dbdr: it
MSmits: I know
dbdr: it's not a tree, it's a DAG
eulerscheZahl: sometimes the order matters, sure
MSmits: whats a DAG?
dbdr: MCDS I guess :)
eulerscheZahl: directed acyclic graph
dbdr: directed acyclic graph
eulerscheZahl: haha
dbdr: ^
MSmits: whats the difference?
dbdr: you can have several parents
MSmits: hmm ok
dbdr: diamond
dbdr: because of transpositions
MSmits: yeah but thats true for most board games also
MSmits: so i cant call any of those trees anymore?
dbdr: https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/Polytree.svg/200px-Polytree.svg.png
MSmits: and some of my bots do MCDAGS?
MSmits: yeah I know what you meant
MSmits: so... back to zobrist, trying to wrap my head around it
MSmits: I know you xor stuff together and that the order doesnt matter and in that way you detect transpositions
dbdr: is zobrist the problem or the DAG part?
MSmits: zobrist coul dbe the solution to the DAG part
MSmits: I have too much branching because i ignore transposition
MSmits: in my mcts
dbdr: if you don't have transpositions, you have a tree, not a DAG
MSmits: I know I currently have a tree
dbdr: (technically a DAG, but not an interesting one)
MSmits: but the game is a DAG
MSmits: so I should treat it like one
dbdr: "everything is a graph" :)
MSmits: to do better...
dbdr: inb4 MCDAGSWEPT
dbdr: acronyms are fun
MSmits: lol no
dbdr: oh, SWEPT even reads nicely
MSmits: so here's my question, zobrist is coupled with actions right, not gamestates?
dbdr: it's a keeper
Scarfield: whats the w for?
Astrobytes: "with"
dbdr: WITH
eulerscheZahl: you can couple zobrist with states
dbdr: oops, not an acronym. OR IS IT?
MSmits: hmm how, if there are millions?
eulerscheZahl: every property of the state has a value
dbdr: WIde Iterative Tree Heuristic
eulerscheZahl: there's a red cell on (7,12)? hash XOR with 43627482
Astrobytes: lol dbdr
dbdr: it's acronyms all the way down
eulerscheZahl: i hate acronyms
Scarfield: IHA
MSmits: right, i get that, but the zobrist thing should not slow down your search too much.
dbdr: ^^
MSmits: you cant do this for every cell can you?
eulerscheZahl: i do :P
MSmits: hmm thats pretty awesome
eulerscheZahl: you can try incremental hashing as well
MSmits: what happens on collisions, do you have a comparison check?
eulerscheZahl: yes
dbdr: the point of zobrist is to do it incrementally, as I understand it
MSmits: so when you remove cells, you de-XOR them and re-XOR something else in place?
eulerscheZahl: for same game i'm not even sure if incremental is that much better
eulerscheZahl: there are small changes (removing a block at the top)
eulerscheZahl: but also bigger ones (block at the bottom)
eulerscheZahl: and yes MSmits
MSmits: hmm so basically at the start of the game you generate 225 * 5 random 64 bit integers?
eulerscheZahl: yes
MSmits: and then on your Apply Move thingy, you just add that in
eulerscheZahl: *6 for blank if you want. but that's redundant
MSmits: seems straightforward
MSmits: yeah blank seems redunant and expensive
MSmits: redundant
MSmits: seems doable
eulerscheZahl: i'm surprised that you didn't come across zobrist earlier
MSmits: i did come across it, i just always decided not to use it
eulerscheZahl: than i'm surprised you didn't use it :P
eulerscheZahl: then
MSmits: can you name a game or optim where i should have?
MSmits: just curious
dbdr: hypersonic maybe?
eulerscheZahl: whenever you care about duplicate states. also depends on your search
aCat: breakthrough?
MSmits: i use a map in hypersonic
MSmits: unordered map
eulerscheZahl: i like to use it in combination with minimax
MSmits: lots of xor-ing
aCat: other multis with simple states to check collisions when minmaxing / mctsing?
eulerscheZahl: e.g. my checkers bot has it
MSmits: hmm eulerscheZahl but what do you do when you come across a duplicate state?
jacek: zobrist hash eh?
MSmits: in minimax
MSmits: is not not going to interfere with alpha beta to just ignore it?
eulerscheZahl: use old score from previous run
eulerscheZahl: you have to hash alpha+beta too
aCat: you also store depth with the state info
MSmits: hmm I see
dbdr: same state -> same result
jacek: im too umb for zobrist hash. i just use my own hash
dbdr: no need to recompute it
MSmits: same jacek
MSmits: but samegame is a bit painful
MSmits: having to hash the whole thing every time
jacek: if youre asking what the transposition table is for... then its for transpositions... and for ordering using previous interation in IDDFS
MSmits: no no, i know that
MSmits: I am just trying to figure out what to use for samegame
jacek: and afaik zobrist allows you to incrementally hash things
eulerscheZahl: it does
MSmits: yeah
aCat: you just hash difference
aCat: not entire state every time
MSmits: maybe i should recode my bot to do the map as uint64_t[15]
MSmits: then i could just XOR-shift those 15 rows together
Astrobytes: MBits incoming
MSmits: well it's doable
MSmits: 3 bits per color
MSmits: times 15 = 45
Astrobytes: Surprised you didn't try it already tbh
MSmits: can also more easily shift rows
MSmits: sure
MSmits: i could have
MSmits: but it makes my head hurt with the shifting and such
Astrobytes: When has that ever stopped you? :P
MSmits: well I guess it shouldnt have, its more a matter of complication upon complication. Samegame already has a pretty complicated sim thats easily bugged
MSmits: but since its working fine now, i should try it
MSmits: i did this in ooc btw
MSmits: I had a 64 bit map for mines I think
MSmits: each cell had info of how many mines are nearby
MSmits: hmm or maybe that was 32 bit, i know something was 64
MSmits: o right, the damage map, each map could hold up to 15 damge in 4 bit
MSmits: allright, gotta go do that recoding and get some transposition magic
MSmits: oh lol my first testcase 3 runs are done. The 1 min turn time definitely helped a lot. The 3 finished ones are all near the highest score and one beat it by 2 points
MSmits: wheras my last 15 runs on 4 seconds were all worse
Astrobytes: You're doing 1 minute turns?
MSmits: yeah its something new i am trying
MSmits: couldnt keep the tree any longer due to limitations of node pool
MSmits: so i figured if i need to reset the tree anyway, why not use long ass turns
Astrobytes: Ah OK, makes sense
Zenoscave: Miller Rabin seems like the way to go
Zenoscave: Just need to figure out exponentiation
MSmits: mmh ok
Zenoscave: different puzzle sorry
dbdr: "if it's working, break it"
Zenoscave: dbdr do you exploit validators?
dbdr: yes
dbdr: of course! :)
Zenoscave: (╯°□°)╯︵ ┻━┻
dbdr: that's the fun part
Zenoscave: just if else with - :
Zenoscave: ?
dbdr: something like that
Zenoscave: mind updating the repo ;)
MSmits: which puzzle is this Zenoscave?
Zenoscave: CGFunge Prime
MSmits: ohh ok
MSmits: never done that
Zenoscave: It's a different puzzle style for sure
Zenoscave: You'd learn some new areas of programming. SOP for example
Astrobytes: validators on the repo no?
Zenoscave: https://en.wikipedia.org/wiki/Stack-oriented_programming No Astrobytes
Zenoscave: wait which repo
eulerscheZahl: same game? yes validators are public
Astrobytes: https://github.com/eulerscheZahl/CGFunge-Prime/tree/master/config
eulerscheZahl: that too
Zenoscave: glorious
Zenoscave: It changes the whole puzzle. It is now an inexact partitioning scheme puzzle
MSmits: Zenoscave has the words today
**dbdr starts to worry about his rank
Zenoscave: I'm comming for you dbdr
dbdr: :scream:
eulerscheZahl: :popcorn:
eulerscheZahl: hint: with string mode and unicode you can load constants
dbdr: on the other hand, I knew I could do better, just didn't have any reason to
Zenoscave: I know about the unicode
dbdr: but do you know about the unicorn?
Zenoscave: That part won't be hard. emoji's? unicode-9 yeah
eulerscheZahl: the unicode wasn't even a planned feature
dbdr: that's the best kind of feature
Zenoscave: did you search for best comparisons? dbdr?
eulerscheZahl: code to generate code that is interpreted by more code
dbdr: to some degree
dbdr: the 2D constraint mean it's not an obvious search
dbdr: it's interpreters all the way down
dbdr: especially if the world is a simulation
eulerscheZahl: we are all living in a huge turing machine
dbdr: which, according to some arguments, is almost certain
eulerscheZahl: the "huge" makes no sense as every turing machine can do the same
eulerscheZahl: so the Beatles were wrong
dbdr: yes, and it could take 1 year to simulate a picosecond, and we would not know it :)
dbdr: what did they say?
Astrobytes: "so the Beatles were wrong" hahahha
Astrobytes: well played
eulerscheZahl: we all live in a yellow submarine
dbdr: what if it's a universal yellow submarine?
Zenoscave: But the interpretation of what the mechanics in a yellow submarine do could count as a turing machine
dbdr: On the Turing-completeness of Yellow Submarines
A thesis for the doctorate in Pop-Computer science, by <insert your name here>
Zenoscave: I call dibs
dbdr: it's yours. run with it!
Zenoscave: YES
dbdr: just credit the CG chat as appropriate
Zenoscave: Will do
dbdr: in the thanks section
Astrobytes: lol, 100% would read
eulerscheZahl: and smits will request your paper for free on researchgate or however it's called
dbdr: is that a scandal?
eulerscheZahl: no
eulerscheZahl: it's the epilogue
dbdr: https://www.youtube.com/watch?v=vB9JgxhXW5w
Westicles: The people running the sim are having trouble emulating all our CPUs, but they have plenty for GPUs so they are making us switch over
dbdr: didn't get the epilogue
MSmits: ahh so researchgate is a scandal
MSmits: got it
dbdr: yep
dbdr: or is it researchgategate?
Astrobytes: ^
MSmits: mmh this is too complicated for me. I'll stick with my bits
dbdr: logicgategate
Astrobytes: Ah, that time when the AND was NOT
dbdr: caused a shift to the left
Astrobytes: :smirk:
MSmits: :confused:
MSmits: well got 100% with the new bitboard, but not somewhat worse performanc
MSmits: without the not
MSmits: I am hoping the transpositions will be worth it
jacek: what about researchgate
MSmits: dunno
Marchete: westicles has better scores than most papers around there...
Scarfield: damn, was he testing your contribution, he made his submit very early iirc
Illedan: Marchete, got link to some good papers?
Marchete: I haven't read them yet, just cross reading searching for top scores per test
Marchete: to know where to use more CPU
Marchete: I'm rotating 5 tests each hour
Illedan: ah, alright
Marchete: maybe I prefer to use more on certain tests I know I'm low
Marchete: anyways aCat_ links some literature at his github page https://github.com/acatai/SameGame
dbdr: Marchete: w wrote his bot in 2012
Illedan: dbdr, still brute force full random? :P
dbdr: ?
Illedan: Wondering if you still do montecarlo. Or changed to some fancy stuff
dbdr: I never did MC
Illedan: oh
Illedan: nvm then
Marchete: w played there http://www.js-games.de/eng/highscores/samegame/lx ?
Marchete: it seems they have the highest ones
Illedan: Yes
Illedan: He is sampson
Marchete: makes sense, I'd be 5th in that rank, but there is a big gap after his place
Illedan: But those games give negative score for not finished games I see
Illedan: Meaning they had to finish them all
MSmits: I suspect the best scores from papers also finished them all
MSmits: the bonus is quite big
Illedan: Wonder if the testcases are in the same order
Marchete: yes
MSmits: pretty sure they are, I would have noticed otherwise
Marchete: http://www.js-games.de/eng/games/samegame/lx/play
Marchete: use preset
Marchete: compare with yours
Marchete: I just randomly tested, but it seems it's the same
Illedan: :+1:
Marchete: well, they use the weird start at 1 and not 0
Marchete: so test 1 to 20 means [0..19]
Marchete: but it's the same in validators
Illedan: :+1:
Marchete: ok I broke the thing some time ago, it's not working :D
Marchete: not solving anything
Illedan: Know that feeling
Marchete: :(
Marchete: and I don't keep previous copies of the code
Illedan: -.-
MSmits: been trying to solve some bug for 2 hrs mylelf
Marchete: maybe tomorrow, sometimes a break is good to find these bugs
Illedan: Yeah, I struggle to center my DIV -.-
MSmits: center your DIV?
Illedan: html :P
MSmits: ohh
JBM: ok, blaiseebuth just gave me the trick
JBM: "auto" margin-left and margin-right
JBM: (https://cg.desast.re/pages/temperatures.html half an hour ago)
Illedan: WHAT
Illedan: worked
Illedan: <3
JBM: come to #Fr and thank him
Illedan: :checkmark:
Illedan: Now I can rest in peace.
MSmits: gn
Marchete: ahhh f*ck, I've been rickrolled
Marchete: *JBM: ++rickrolled;*
MSmits: hahaha
MSmits: never gonna give you up :musical_score:
MSmits: holy crap
MSmits: holy holy crap
MSmits: I just submitted my mcts with transpositions
MSmits: ohhh nvm, its my hardcoded solutions again, not my online, lol
MSmits: thought i just gotten 147k without hardcoding :P
Marchete: I was reading your blog
Marchete: damn
Marchete: :eyes:
Marchete: I was checking the center div :D
JBM: well i got to learn things just by asking the question
Marchete: I mean, so elaborated post for rickrolling me...
JBM: yeah, i tried to do it through normal means of commenting on the toad's contrib, but it wasn't enough for you
JBM: i had to draw the big guns
Marchete: :D
Marchete: best rickroll ever
JBM: now upvote and troll your friends O:-)