jacek: happy Caturday
Gorbit99: happy caturday
a1b8r: What are cps in this game?
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!
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!
AntiSquid: good morning, no spam please, thanks
Washier: happy caturday
jrke: happy caturday :)
Thyl: Hello !
Thyl: Do you know any articles on genetic algorithms ?
Tee-Resa: what puzzle?
Thyl: *please ?
eulerscheZahl: don't you understand how to approach it or how to put your thoughts into code?
eulerscheZahl: so, the first step is to convert CC into binary in respect to the ASCII table
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
Tee-Resa: try to write down what order you have and what should happen there. mostly helps
eulerscheZahl: take the 1000011 and group it into same digits
eulerscheZahl: 1 0000 11
eulerscheZahl: is that not clear?
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
Westicles: aCat says he knows an unpublished paper that beats them all. I guess neural nets?
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: 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: 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
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
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: but there's some improvement there
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: page 18
MSmits: HGSTS score
MSmits: I think they use the GPU
MSmits: they dont have highest on everything btew
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
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
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
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: 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: 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?
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
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: I have several world records that way :D
MSmits: you do
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: 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
Westicles: MSmits, yes I am sampson on jsgames
MSmits: can illedan maybe extend the deadline another 8 years please
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?
dbdr: authors don't get paid
wlesavo: well big journals make YOU pay for open access
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: 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
dbdr: it's the problem of those platforms, they have incentives to hook you, not to give you value
MSmits: like every social media platform
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
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
dbdr: and then?
MSmits: dbdr isnt that because the person you are revealing it to also has information others dont have?/
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 :)
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: 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: 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?
MSmits: or Q or whatever
Illedan: 123,550k, but only 95%
Illedan: (╯°□°）╯︵ ┻━┻
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: but dont you think a game has to be designed with this in mind?
MSmits: i doubt you can figure this out afterwards
MSmits: that could be true
MSmits: hmm ok
dbdr: what checks that the solution is valid?
dbdr: echo "GOT IT" | sign-it :)
dbdr: yeah, that's an easier case
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
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
MSmits: beginner at coding?
MSmits: do you know the basics in a particular language?
MSmits: start by doing easy puzzles i guess
MSmits: get used to the way input works and try to solve one that you like
MSmits: there are over 100
dbdr: in case 9, there are 60 of the main color right?
dbdr: so max score is 3600 for that
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?
Marchete: I mean
Marchete: I need to permute all to just find it?
dbdr: just canonicalize the colors
dbdr: e.g. the order in which they appear first
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 goes away in shame
MSmits: I turn the board into a long string and compare the whole thing :P
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
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
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
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: I know you'll beat me
Marchete: you always do
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: 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: 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
eulerscheZahl: you evil thieves. i'll sue you
Illedan: Oh, Marchete joined the party too :thinking:
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
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
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
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
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
Marchete: Number shifting, procastination edition
Illedan: Just wait Solacefire
Illedan: There should be a timer above the leaderboard. And you need to wait for 100 % submission
Illedan: What league?
Illedan: That should be in minutes..
Illedan: Give it some time.
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?
AntiSquid: no, all the people above are stuck in wood 2 so doubt it
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
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
eulerscheZahl: enough to test with base 2 for the given validators
eulerscheZahl: what did dbdr break this time?
eulerscheZahl: 150k :D
dbdr: will you believe it's a coincidence?
Zenoscave: 150000 what?
eulerscheZahl: i'm sure you can score higher
Zenoscave: That's what everyone was floodfilling
dbdr: right now I can't
eulerscheZahl: wait, it's a coincidence for real? :o
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
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: 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
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
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
MSmits: whats the difference?
dbdr: you can have several parents
MSmits: hmm ok
dbdr: because of transpositions
MSmits: yeah but thats true for most board games also
MSmits: so i cant call any of those trees anymore?
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?
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
MSmits: right, i get that, but the zobrist thing should not slow down your search too much.
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?
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?
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: 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
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
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
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
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: 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: of course! :)
Zenoscave: (╯°□°）╯︵ ┻━┻
dbdr: that's the fun part
Zenoscave: just if else with - :
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
eulerscheZahl: that too
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
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!
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: it's the epilogue
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: or is it researchgategate?
MSmits: mmh this is too complicated for me. I'll stick with my bits
Astrobytes: Ah, that time when the AND was NOT
dbdr: caused a shift to the left
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
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
Illedan: Wondering if you still do montecarlo. Or changed to some fancy stuff
dbdr: I never did MC
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: 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
MSmits: pretty sure they are, I would have noticed otherwise
Marchete: use preset
Marchete: compare with yours
Marchete: I just randomly tested, but it seems it's the same
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
Marchete: ok I broke the thing some time ago, it's not working :D
Marchete: not solving anything
Illedan: Know that feeling
Marchete: and I don't keep previous copies of the code
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
JBM: (https://cg.desast.re/pages/temperatures.html half an hour ago)
Illedan: Now I can rest in peace.
Marchete: ahhh f*ck, I've been rickrolled
Marchete: *JBM: ++rickrolled;*
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: I was checking the center div :D
Marchete: I mean, so elaborated post for rickrolling me...
Marchete: best rickroll ever