00:00:08 Hm. 14 combinators, n*(n+1) choice at every step... 00:01:23 EXPLOSION 00:01:23 Aaaaaah 00:01:23 No wonder I can't pass anything longer than 4 combinators long. 00:01:23 4 is already 1963420410 things to try 00:03:16 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 00:04:12 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 00:04:33 -!- timotiis has quit ("leaving"). 00:05:01 -!- puzzlet has joined. 00:20:13 -!- MommeMC has joined. 00:21:48 -!- MommeMC has left (?). 00:26:37 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 00:26:57 -!- slereah_ has joined. 00:49:54 -!- GregorR has quit ("Leaving"). 01:02:46 -!- puzzlet has quit (Remote closed the connection). 01:02:50 -!- puzzlet has joined. 01:13:38 -!- EgoBot has quit (Read error: 110 (Connection timed out)). 01:16:16 -!- EgoBot has joined. 01:16:26 -!- GregorR has joined. 01:18:33 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 01:21:07 -!- slereah_ has joined. 01:31:32 -!- slereah__ has joined. 01:32:04 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 01:49:02 -!- slereah_ has joined. 01:49:41 -!- slereah_ has changed nick to Slereah. 01:57:51 -!- slereah__ has quit (Read error: 110 (Connection timed out)). 02:05:45 -!- slereah_ has joined. 02:05:45 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 02:10:45 -!- ehird has quit ("This computer has gone to sleep"). 02:45:44 -!- puzzlet_ has joined. 02:56:14 hi 02:58:30 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 03:05:07 -!- dbc has joined. 04:42:59 -!- digital_me has joined. 04:50:30 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 04:51:10 -!- bsmntbombdood has joined. 05:10:14 -!- digital_me has quit ("leaving"). 05:41:07 -!- eagle-101 has changed nick to eau. 05:54:03 SPAM SPAM WONDERFUL SPAM 05:54:18 SPAMMITY SPAM!!! 05:54:59 I've got to say that I like the current topic nostalgia. 05:55:09 (that's one of my favorite Asimov stories) 05:56:37 ah. i have read _about_ that story 05:57:39 -!- eau has changed nick to eagle-101. 06:03:49 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 06:06:08 spam luncheon meat is delicious. 06:06:42 i was otherwise referring to current wiki events. 06:08:18 * oerjan doesn't recall ever tasting spam, although someone might have secretly fed it to him 06:08:20 -!- slereah__ has joined. 06:18:02 -!- RodgerTheGreat has quit. 06:32:29 -!- puzzlet has joined. 06:45:03 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 07:06:37 -!- oerjan has quit ("leaving"). 07:18:19 -!- eagle-101 has quit (Connection timed out). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:34:05 -!- uvanta has joined. 08:39:14 -!- slereah__ has quit (Read error: 110 (Connection timed out)). 08:43:31 -!- dbc has quit (Read error: 110 (Connection timed out)). 08:46:44 -!- slereah__ has joined. 09:22:38 -!- dbc has joined. 09:53:34 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 09:56:39 -!- slereah__ has joined. 10:08:25 -!- helios24 has joined. 10:12:23 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 10:15:00 -!- oklopol has joined. 10:49:00 -!- jix has joined. 10:57:53 HELLO! 10:58:17 uvanta: HIEYYYYYYYYYYYY! 10:58:28 ㅐㅌㄴㄴㅇ! 10:58:50 :---------------------__) 10:58:57 (: 11:44:50 the topic... is it "the last question"? 11:45:08 I remember reading a summary of it, either that or it was a very short story 11:54:09 i guess so 11:54:14 Asimov's 11:58:16 funny, I read that one like only a week ago 12:30:17 -!- timotiis has joined. 13:16:00 -!- slereah__ has changed nick to Slereah. 13:18:15 -!- jix has quit (Read error: 104 (Connection reset by peer)). 13:22:11 -!- jix has joined. 13:49:04 -!- slereah__ has joined. 13:52:12 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 14:00:24 -!- slereah__ has changed nick to Slereah. 14:10:08 -!- Figs has joined. 14:10:24 w00t! 14:10:54 I finally got evolution to work :) 14:13:02 What is it! 14:13:07 Any dinosaurs? 14:15:08 nothing too complicated, I just evolved binary strings to match zero 14:16:25 basically, each entity is 8 bits... I specify rates of mutation and culling and check how many bits have been set as a means of determining fitness 14:16:46 after about 10 generations or so, the population tends to level out 14:18:04 to breed, I pick two random strings (could be the same, but unlikely) and split them at a random point in the 8 bits, then I recombine the pieces for the child 14:18:19 interestingly, I get better results without mutations 14:19:16 Figs: try evolving a tuple into another giving a set of permutations 14:19:39 it's amazing that it actually works, i don't really see how that's a task you can do gradually 14:21:24 heh, you can do all kinds of neat things... 14:21:34 like evolving tuples into particular patterns 14:21:58 I should try to see if I can get it to generate tuples of 5 increasing prime numbers 14:22:24 I've found some neat stuff about how the mutation rate works 14:22:29 tell me 14:23:01 This should sound completely obvious, but the mutations depend on the rate of culls 14:23:06 so if mutations < culls 14:23:37 ("weak culls" that is -- where you remove say 25% of the bad ones) 14:23:49 then you get different mutations 14:24:03 I was seeing things like 1650 to 350 14:24:07 in 0 and 1 only 14:24:21 and then I changed the rate and managed to get it in 0,1,2 14:25:00 it doesn't depend on the size of the population so much to get the percents; it really is mathematical in relation to the chance of mutation and whether or not it will be culled 14:25:34 I'd have to go back and rerun a few experiments to figure out what numbers I actually had 14:25:51 I think it was something like 33% mutation rate vs 25% culls 14:27:01 yeah 14:28:07 with 1/3 mutation and 1/4 culled, I get something like ~1450 in "perfect", ~530 in "off by 1" and ~10 in "off by 2" 14:28:26 just rough guesses looking at my numbers 14:29:04 and the rest (ie, off by more than 2 bits) is basically non-existant after the first 20 generations or so 14:29:14 Let's make "Intelligent Design" 14:29:18 although I did get a few in the off by 3 flickering in and out for a little while 14:29:23 Where the answer will be directly displayed 14:29:41 hehe, this is evolution by intelligent design :P 14:29:48 I should say "intelligent" design 14:29:57 since it's 6:30 in the morning here and I'm not thinking too great 14:30:01 but still :) 14:33:58 Got a sample program 14:33:58 . 14:33:59 ? 14:35:11 Sure 14:35:14 In python 14:35:20 Want me to upload? 14:35:33 the coding style's not very good... but meh :P 14:35:41 Hell, Python is basically all I can do! 14:36:46 It is actually bothersome, because I must do C in class. 14:36:52 http://rafb.net/p/Gi5otN11.html 14:36:59 there's my little program :D 14:37:02 So I occasionaly use Python in C. 14:37:13 125 lines ^_^ 14:37:24 you can run it like 14:37:34 python -i genetic.py 14:37:36 run() 14:38:05 What's -i? 14:39:14 interactive 14:39:37 I'm basically a noob at python 14:39:49 So am I! 14:40:00 But you can do awesome stuff with little python 14:40:11 I guess you could just throw a run() at the end of my file and do python genetic.py 14:40:18 but I like to start it myself 14:42:21 what thinks ye? :) 14:42:39 I know it's not exactly thrilling... 14:43:25 Well, it's hard to judge like that! 14:43:32 I don't know the what'sgoings on 14:45:24 Each cell has 8 bits like, 14:45:34 [0,1,1,0,1,0,1,0] 14:45:49 and, the goal is to get it to [0,0,0,0,0,0,0,0] 14:46:02 so when you see 0=1600 14:46:14 that means that 1600 of the entities are all [0,0,0,0... 14:46:25 1 means they have 1 bit set 14:46:29 2 means 2, etc 14:48:20 it's a waste of genetic algorithms if you use them for that :) 14:48:24 do something AWESOME 14:48:51 Like a DINOSAUR 14:50:01 oklopol: I'm making it evolve prime numbers now 14:50:39 I'm just trying to think of a good way to represent the output of each generation 14:50:59 Output asteroid? 14:51:03 I might make the generations themselves small and show each one... and then run it longer 14:51:25 like 10 individuals and 10000 generations instead 14:51:32 and then I can show the actual genes 14:51:43 (instead of a summary) 14:52:26 it'd be interesting once I get this to work to make it evolve larger primes more preferably than smaller ones... hmm :) 14:52:31 this is getting fun 14:58:55 wow 14:58:57 seems to work 14:59:53 haa 14:59:54 no wonder 15:00:00 my prime function thinks 9 is a prime number 15:00:01 haha 15:00:02 >.< 15:00:05 me = idiot 15:02:33 there we go 15:02:34 now it works 15:02:35 wow 15:02:37 I get prime numbers 15:02:39 sexy :) 15:02:59 (`cuz you _know_ prime numba's are sex-ay!) 15:03:06 15:04:15 -!- slereah__ has joined. 15:04:24 hello 15:06:21 Hi. 15:07:04 It works :D 15:07:19 now it makes prime numbers 15:07:20 Yay 15:07:31 but my inteface is ugly 15:08:54 How does it make them exactly? 15:09:52 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 15:10:51 -!- uvanta has quit ("blame!"). 15:12:59 http://rafb.net/p/33DCyq90.html 15:13:04 you can take a look 15:13:21 it just tries random numbers and evaluates against a fitness function to cull bad ones 15:14:09 I should probably refactor my code and clean it up so this is easier to use 15:17:01 Once the number is well prime, does it stop changing? 15:17:05 Or does the value oscillate around the prime number 15:18:36 no, it keeps changing because of mutations 15:18:38 but the new numbers are entirely random 15:18:49 so say I have 6 in there now, next time it might be 458 15:19:45 if you tweak the settings to have a weak-cull rate of .75, and random cull of .25, and a mutation ratio of 1:2 15:19:49 it gets interesting 15:19:58 it climbs up slowly 15:20:18 but because of the high mutation rate, it changes every couple dozen generations to have some new numbers 15:21:33 How do you decide when to output the value then, if you so decide? 15:21:47 values are output every generation 15:22:00 read the run() function to see what happens 15:22:15 I saw. 15:22:30 But how do you know the results if it's all random number, even if they're around the right value? 15:23:01 you mean, how do I determine fitness? 15:23:19 it has nothing to do with being close to a prime number 15:23:28 it's either a prime or not for each 'bit' 15:23:58 it's totally random, but it works! :) 15:25:00 Can you post the running of the program? 15:25:06 if my calculations are correct, there are 95 prime numbers under 500 15:25:26 so you have a roughly 1/5 chance of guessing a prime number 15:25:37 can I post the running? 15:25:41 I guess 15:25:49 You know, the program being executed 15:25:49 how much do you want? 15:25:56 oh, you're generating primes that way 15:26:07 Well, all primes numbers under 20 should do it 15:26:21 ? 15:26:24 that's effectively what you had originally 15:26:33 the random -> 000...0 thing 15:26:54 yeah, this is a minor tweak to get the same algorithm to do something different 15:27:07 it's a little more interesting than ones and zeros :) 15:27:07 hmm, right, ofc 15:27:13 well, sure 15:27:27 slereah__: running of which program? 15:27:37 Prime numbers generation 15:28:01 my idea some time ago was to try getting simple permutations from the set of huge permutations a rubik' 15:28:03 s cube has 15:28:27 the problem is, i never coded in the actual twists of the cube 15:28:56 because there are so little of them i don't wanna do an algo to determine them, but they are so long i don't wanna do them by hand :D 15:30:28 slereah__: how much output do you want? 15:30:44 the full output (10000 generations) is huge 15:30:55 Just post the code then. 15:30:56 100 generations enough? 15:31:01 I posted the code O_o 15:31:13 Was it the first one? 15:31:24 link was here: http://rafb.net/p/33DCyq90.html 15:31:24 Oh, right 15:31:46 maybe your connection dropped out or something and missed it, I dunno 15:31:58 isn't technology fun? :) 15:33:10 http://rafb.net/p/wLIFXg72.html 15:33:24 here's a sample running it with my .75/.25/1:2 15:33:26 But isn't the computation mostly done by the prime function? 15:33:39 prime function only checks primality 15:33:46 Well, yes. 15:34:02 it's effectively part of the fitness function 15:35:42 I should probably run this with a more interesting scope 15:35:50 something where the primes are thinner 15:36:12 Well, 7's a pretty thin number! 15:36:27 7? O_o 15:36:34 It's a joke. 15:36:38 ok :P 15:36:52 figs.comprehends() != true 15:37:07 'cause 7 is thin, as a symbol! 15:37:14 I would have used 1, but you know 15:37:16 :P 15:38:59 Hm. I should forbid stuff of the form `iC in my combinator match program 15:39:05 Make it go faster 15:39:16 `iC? 15:39:45 Ya know... I still haven't finished my damned parser system :P 15:39:48 i the identity combinator 15:39:52 C any combinator 15:46:38 whoo, evolution in 5 minutes: http://scienceblogs.com/pharyngula/2008/01/evolution_in_5_minutes.php 15:50:21 -!- RodgerTheGreat has joined. 15:51:11 hello RTG 15:51:18 I'm evolving prime numbers today 15:51:21 how are you? 15:51:34 I want a fuzzy little prime number. 15:51:43 hi, figs 15:54:19 slereah__: 2 ^_^ 15:54:20 HAI!!!! ^_^ 15:54:33 2 seems a little too angular. 15:54:38 Why can't 8 be prime? 15:55:17 8's divisible by 4 15:55:18 ^_^ 15:55:29 -!- Hiato has joined. 15:55:30 how about 911? 15:55:33 911 is a prime number. 15:55:49 No. 15:55:54 911 contains 4. 15:55:59 Because NEVAR 4GET 15:56:05 919 16:15:36 boing. 16:39:07 ding a ling a ling! 16:39:09 time for bed 16:39:09 8 am 16:39:10 `morning all. 16:39:26 -!- Hiato has left (?). 16:39:50 -!- Figs has quit ("Good-Bye."). 17:58:40 -!- jix has quit (Read error: 104 (Connection reset by peer)). 18:01:07 -!- jix has joined. 18:53:47 -!- eagle-101 has joined. 19:15:59 if c in ["s","k","i","r","a","n","p","x","w","m","&"] 19:15:59 ^ 19:15:59 SyntaxError: invalid syntax 19:16:01 Wut? 19:16:23 Oh, forgot the semicolon 19:32:39 itym colon 19:37:22 Prolly. 19:40:03 -!- ehird has joined. 19:40:07 testy test. 19:40:09 testing testy test test 19:45:27 evidently nobody likes testse 19:50:18 -!- ehird has quit ("Lost terminal"). 19:52:15 And now, for something completely different. 20:10:51 -!- ehird has joined. 20:10:56 foobar. 20:11:10 i think i like xmonad now. just need to get it to recompile properly 20:12:40 Hello little man. 20:14:54 i should write my own WM! 20:15:05 in Lisp, that is dynamically reconfigurable at runtime! 20:15:09 actually that soudns awesome 20:15:36 Xparenthesis 20:15:53 brb 20:15:54 -!- ehird has quit ("leaving"). 20:16:48 -!- ehird has joined. 20:17:18 i could have optional esolang configuration backends :P 20:17:51 ? 20:19:15 a window manager, written in Lisp, which you can reconfigure at runtime (change setting, see it happen), but youc an also write the configuration in an esolang 20:19:18 :D 20:19:28 Well, you know me and computers 20:19:53 i didn't hear me asking for your opinion 20:19:53 :-P 20:21:44 I didn't hear myself suggest it 20:22:13 :) 20:32:11 my haskell thue interpreter is far too slow... it's taken more than 30 minutes to run BF hello world through the Thue BF interpreter, and still not done 20:32:46 the python thue interpreter does it in 3-4 minutes 20:34:34 done! 33m35s :( 20:35:55 olsner: Write something that compiles it into Haskell rules 20:35:55 :D 20:36:24 thueStep ('h':'i':xs) = "hello" ++ thueStep xs 20:37:44 yeah, and ending it with thueStep (x:xs) = x:thueStep xs; thueStep [] = thueStep [] - that'd probably work! 20:38:31 I was otherwise thinking of building some kind of automaton and running that 20:38:45 automaton would be faster :P 20:38:53 olsner: that would be a slow thueStep base case 20:38:57 you should build a table like: 20:39:17 thueTable = ["foo","hi"] 20:39:19 then do something like 20:39:42 thueStep (x:xs) = x : thueStep (find-element-of-thueTable-in-xs-and-return-the-string-from-that-point-onwards) 20:41:31 wouldn't the find part basically do the exact same thing as thueStep only not replace anything? 20:41:53 olsner: you could use a more efficient algorithm 20:45:38 -!- RedDak has joined. 20:52:52 -!- ehird has quit ("Lost terminal"). 21:10:44 -!- ehird has joined. 21:10:48 what did i miss 21:11:42 Awesome stuff, really 21:11:47 I'm totally not lying 21:11:47 :| LIKE WHAT 21:11:56 * ehird checks ircbrowse.com 21:12:47 -!- adu has joined. 21:12:49 yes, the topic is The Last Question 21:12:53 for all those who seem to be asking.. 21:13:52 Was it the story with the "how to stop the universe from dying" thingy? 21:14:06 Yes 21:14:57 Most of his sort-of comedic stories weren't that great from what I can recall 21:15:51 the last question isn't really comedic. 21:15:53 :| 21:16:11 at least humanity didn't wipe themselves out :) 21:16:18 It's been a while 21:16:33 I should re-read the big Foundation books. 21:25:45 -!- ehird has quit ("Lost terminal"). 21:36:38 -!- ehird has joined. 21:41:20 -!- eagle-101 has changed nick to newpod. 21:42:00 -!- newpod has changed nick to eagle-101. 22:09:40 -!- ehird has quit ("Lost terminal"). 22:10:23 -!- ehird` has joined. 22:11:55 People. 22:12:13 I'm trying to optimise the JUGGERNAUT (bitch). 22:13:04 So far, it tests every combination a lot of times. How could I make it only test for new combinations? 22:15:03 The relevant code is something like this : http://pastebin.ca/873833 22:20:04 rewrite it in Lisp and Iwill! ;) 22:20:51 Replace all s with th. 22:21:14 *rimshot* 22:21:34 If I describe the algorithm, will it be okay too? 22:25:09 Yes 22:25:45 -!- ehird[tkirc] has joined. 22:25:51 C is the set of combinators I choose to compose from. Individuals combinators are tested outside this loop once. 22:26:02 testy 22:26:15 /mea 22:26:16 /me a 22:26:18 hm 22:26:33 Then, it tests every combination of C, and adds them to C. 22:27:03 For instance, if I have s and k, it will test ss, sk, ks, kk, and the new list will be [s,k,ss,sk,ks,kk] 22:27:12 I see 22:27:24 so: 22:27:39 But since s and k are still in here (I need them, for instance to compose `s`ss), it retries every value 22:27:52 FOR x in C { FOR y in C { append C (concat x y) } } 22:28:08 Roughly 22:28:50 I guess I could use the condition `xy not in C, maybe 22:30:37 -!- ehird[tkirc] has quit (Remote closed the connection). 22:31:24 (append (append C (concat x y)) (concat y)), no? 22:31:34 *(append (append C (concat x y)) (concat y x)) 22:31:48 ? 22:32:23 Hm. The not in C test seems to work. 22:33:07 i mean, don't you want to add bot (s(ss)) and (sss) if you have (s k ss kk sk ks) 22:33:13 *both 22:33:43 (where abc = (ab)c) 22:36:39 -!- adu has quit (Remote closed the connection). 22:37:54 -!- oerjan has joined. 22:40:00 essentially you always have infinite permutations..... 22:40:58 This is unpleasant, 'cause I actually have to optimise it. 22:41:00 Aaaaargh 22:43:47 pikhq: You! tcl user! :P 22:44:01 how do i use tklib's lobster style? default tk is ugly 22:46:18 I don't know; don't really use Tk. 22:46:34 asjasdjkgfjafg, :P 22:46:35 ...or Lobster Thermidor a Crevette with a mornay sauce served in a Provencale manner with shallots and aubergines garnished with truffle pate, brandy and with a fried egg on top and spam. 22:48:44 Can't I just have the eggs and bacon spam spam and spam? 22:51:41 Ah shit. 22:51:55 The Juggernaut blocks on `m`ml 22:52:47 It's an infinite loop, but it's supposed to stop the test automatically after 300 steps. 22:53:45 Ah yes, the expression becomes too huge at step 60 22:55:15 What would be a good limit size for an expression? 22:55:20 Thousand chars? 22:58:47 1024 22:59:04 1729 23:03:22 1932 23:03:51 7. 23:04:36 Well, 5000 seems to be too much at least. 23:08:11 I have in my mind the Juggernaut going through combinators. 23:08:27 "YOUR WEAPONS CANNOT HARM ME" 23:09:16 The Juggernaut vs. The Birds... 23:09:40 Seems unfair. 23:10:21 But they've got number power 23:10:39 I'm still checking for ``v`k0k 23:11:01 With the 14 combinators. 23:12:58 -!- timotiis has quit (Remote closed the connection). 23:13:16 -!- timotiis has joined. 23:13:30 hi 23:13:48 Hi. 23:24:50 what's the Juggernaut? 23:25:08 (and I though it was spelled juggernaught?) 23:25:13 You insert some lambda or combinator expression 23:25:20 You insert a list of combinators. 23:25:37 It will (possibly) find the shortest way to make it out of that 23:25:49 ooh, nice tool 23:26:00 It is quite brute force though. 23:26:37 It's usually better to have some sort of idea of what it will be, because using all 14 combinators makes it quite long 23:28:43 http://en.wikipedia.org/wiki/Juggernaut 23:29:52 Although I mostly had him in mind : http://en.wikipedia.org/wiki/Juggernaut_(comics) 23:31:52 -!- RedDak has quit (Remote closed the connection). 23:36:04 heh, funny etymology of that word 23:50:14 foo 23:52:14 bar. 23:55:41 quux 23:56:55 waldo 23:57:13 `u`x 23:57:18 `u`ux* 23:57:19 -!- lifthrasiir has quit (Read error: 110 (Connection timed out)). 23:57:31 ^There's Waldo