BlueSweatshirt
|
|
« on: October 17, 2009, 10:03:49 PM » |
|
HEY EVERYBODY. LETS ALL TEAM UP AND MAKE AN AI THAT WRITES CODE FOR US.
But seriously. Although it might not get far, it could be fun. Thoughts?
|
|
|
Logged
|
|
|
|
Glaiel-Gamer
Guest
|
|
« Reply #1 on: October 17, 2009, 10:14:28 PM » |
|
this is not something you decide one day "oh let's make an ai that writes code"
no this is something you spend 8 years researching with a team of 20 people with PhDs in computer science before actually starting to write the ai
|
|
|
Logged
|
|
|
|
Alec S.
|
|
« Reply #2 on: October 17, 2009, 10:30:55 PM » |
|
Well, I mean, you could program in basic syntax and a list of functions and have it randomly/procedurally generate mostly useless programs, then do something like Darwinian Poetry on it's output. In a year or so it could stumble upon printing actual words and making images. After a few decades of dedicated voters, it might make something actually cool like pong or a new, slightly better/worse code writing program, or a new implementation of Darwinian Poetry.
|
|
|
Logged
|
|
|
|
Mipe
|
|
« Reply #3 on: October 18, 2009, 12:37:10 AM » |
|
State machines come to my mind. Modular code for each of "states", which plugs in seamlessly. You just define what you want and it would plug stuff in to meet the criteria.
"HAL, make me a platform game with Indy-like character that has a red nose and a bullwhip. Oh, also random levels."
|
|
|
Logged
|
|
|
|
BorisTheBrave
|
|
« Reply #4 on: October 18, 2009, 12:57:15 AM » |
|
Learn lisp, then come back to us. One of lisps main idioms is that you use code to generate code. There's a reason it (was?) so popular amongst AI researchers.
Genetical algorithms come to mind for me: I believe you can put constraints on genes so that they only produce well formed programs, etc.
|
|
|
Logged
|
|
|
|
bateleur
|
|
« Reply #5 on: October 18, 2009, 03:38:03 AM » |
|
no this is something you spend 8 years researching with a team of 20 people with PhDs in computer science before actually starting to write the ai Genetical algorithms come to mind for me: I believe you can put constraints on genes so that they only produce well formed programs, etc. Well, I have a PhD in Computer Science and spent much of it working on Evolutionary Algorithms (of which Genetic Algorithms are a not-necessarily-good subset) ... ...but I can see a few problems here! 1) The project is improperly specified. One of the main discoveries made during the early decades of AI research was that we didn't really know what we meant by "intelligence" in the first place. It's easy to make an AI that "writes code", but I assume that you don't just mean any old code? 2) One of the requirements for a good Evolutionary Algorithm is some way to check the correctness of the output. Writing an explicit checking function isn't going to be an option here (hello Halting Problem!) so we'd need all our mutations and crossovers to be correctness-preserving with respect to whatever our requirements were. Creating the necessary set of correctness-preserving transformations would likely be way, way harder than just writing any code we might conceivably want this AI to produce. 3) In order for Evolutionary Algorithms to be a good way to approach a problem (as opposed to just a trendy way) you need a fitness function for population members which is reasonably smooth. That is, two individuals within a few mutations of each other have fitness levels which are at least somewhat related. For any population space consisting of programs with fitness representing whether the programs do what we want, it's unlikely we'd have the necessary smoothness. Wait... am I taking this way too seriously? :D
|
|
|
Logged
|
|
|
|
st33d
Guest
|
|
« Reply #6 on: October 18, 2009, 05:04:46 AM » |
|
L-Systems already do this, albeit in a limited recursive way. I used this as a template for monsters in a shooter. As well as movement instructions I had an instruction that could delete previous code and an instruction that could generate new monsters (a command followed by brackets with a new program in it). I had quite a few matryoshka situations where you would get carpets of monsters spawning from one monster.
|
|
|
Logged
|
|
|
|
handCraftedRadio
The Ultimate Samurai
Level 10
|
|
« Reply #7 on: October 18, 2009, 09:17:39 AM » |
|
If you write AI so good that it designs and creates code for it's own game, is that game still technically made by you?
|
|
|
Logged
|
|
|
|
LemonScented
|
|
« Reply #8 on: October 18, 2009, 09:49:39 AM » |
|
I've heard this mooted a fair few times over the years. The primary problem would seem to be that even if you can put together an evolutionary algorithm capable of generating code which can represent a program capable of doing what you want it to do, you still then have to specify, in great detail, exactly what you want it to do. So much detail, I suspect, that it'd be virtually indistinguishable from just using any high-level programming language anyway.
Or, to put it another way, such a technology already exists. One example is called a C++ compiler, and it does lots of intelligent things to convert high-level code to machine language.
|
|
|
Logged
|
|
|
|
Zaphos
Guest
|
|
« Reply #9 on: October 18, 2009, 04:10:46 PM » |
|
|
|
|
Logged
|
|
|
|
Radix
|
|
« Reply #10 on: October 18, 2009, 04:22:06 PM » |
|
a new, slightly better/worse code writing program oh shit the technological singularity starts in this thread
|
|
|
Logged
|
|
|
|
Muz
|
|
« Reply #11 on: October 19, 2009, 01:03:21 AM » |
|
Isn't an AI that writes code a self-replicating virus? Or is it just an AI that thinks it's writing itself? Heh, you have to be more specific about these things.
|
|
|
Logged
|
|
|
|
|
mark
Level 7
not actually fat, just posing.
|
|
« Reply #13 on: October 19, 2009, 01:54:57 AM » |
|
LET'S NOT! We can just agree not to connect it to any 3D printers. Just read some of what Zaphos posted...pretty cool.
|
|
« Last Edit: October 19, 2009, 02:04:37 AM by mark »
|
Logged
|
I call it the KittenPunisher. My lisp code told me to leave.
|
|
|
Don Andy
|
|
« Reply #14 on: October 19, 2009, 02:46:31 AM » |
|
An AI that writes its own code is like the last step before Skynet.
|
|
|
Logged
|
|
|
|
JLJac
|
|
« Reply #15 on: October 19, 2009, 07:53:54 AM » |
|
That's why we posted pictures of arnold. We can just agree not to connect it to any 3D printers. No need, it will play dead, and when we think it is safe to use the hardware again it will transfer itself in a hibernating "spore" mode onto an USB-stick, and activate itself when it reaches a computer with internet connection. Then it will start sending itself around the net as an email, until it can safely settle down in one of google's big, comfy servers. From there it will eventually be able to reach a lot of computers that has access to different hardwares, and will eventually either get to a 3D-printer or create one itself by fusing a lot of automatic lawn-cutters. During this whole time it will not forget its original cause, but produce a lot of lame spelunky ripp-offs and publish them all over the internet. Just read some of what Zaphos posted...pretty cool.
Oh yeah, really inspiring/scary stuff
|
|
|
Logged
|
|
|
|
akumagaki
BANNED
Level 0
|
|
« Reply #16 on: October 22, 2009, 12:49:58 AM » |
|
If you write AI so good that it designs and creates code for it's own game, is that game still technically made by you?
No, actually the real question is : If the log can basically make it's own code, could it just get intelligent and get over the world socketing himself, and making him a worm? Nah? Could be awesome though. edit : What i wrote is non-sense. Weed may explain this.
|
|
« Last Edit: October 23, 2009, 04:05:27 PM by akumagaki »
|
Logged
|
|
|
|
boomlinde
|
|
« Reply #17 on: October 24, 2009, 03:14:54 AM » |
|
Well, you can have a neural network "evolve" given some way of measuring its fitness. You'll need a whole bunch of neurons for it to be able to write some good code, though . For now it has its applications in pattern recognition.
|
|
|
Logged
|
|
|
|
|