Patent Invention Machines
kryzx writes: "Here's one to tickle your imagination: using genetic programming to come up with new, patentable solutions to problems. Could be happening very soon. Here's an article
at MIT Technology Review. This work, being done at Stanford
and Genetic Programming Inc. by
John Koza and company has already succeeded at reproducing quite a few ideas for existing patents, ranging from old to very recent. It's apparently much easier to compare against existing patents than sift through hundreds of surviving algorithms to determine if they are useful, original, and patentable.) Also, this company is a good target for your tech envy, with their 1,000-node Beowulf-style
cluster
of Pentium II 350's and 70-node cluster of 533 MHz DEC Alpha's. (There are pix, too. PII cluster on the main page, Alphas here.) Wanna play with the toys? They have
job openings for programmers. :-)"
There's no point in questioning authority if you aren't going to listen to the answers.
I'd rather keep my soul.
This article must be one of the more fascinating I have read the last month. This might be due to my over worked imagination, but this seems like the idea of making computers do the work for us is taken to the next level. (oh long sentence)
One thing I am agains though are all those (b)anal patents around. Americans seem to be the worst, but Europe is getting there.
Why are they making the computers invent things to patent? I feel the reason for running this project is wrong. "Let's start a project so we can register loads of patents" should instead be "Let's start a project to benefit humanity"
Find nice cocktail recipes @ www.spitzy.net
The real question is whether they're going to try to pantent the idea of running a computer program to generate patentable ideas. That meta-patent would be the really valuable idea to come from this research.
There's no point in questioning authority if you aren't going to listen to the answers.
The owner of a small consulting firm I used to work for patented a method of software assembly using genetic algorithms about two decades ago
It'd be in the public domain by now. The term for the patent monopoly was 17 years after the patent is granted or 20 years after it's filed; those are about the same because it typically takes 3 years to approve a patent.
Just thank goodness Sonny Bono[?] never touched patents.
Will I retire or break 10K?
Or, as the article puts it:
"I imagine we have done that but we don't know it," laughs Koza. To identify valuable, original results rather than simply matching patents, he explains, a human expert in the given field would need to evaluate tens of thousands of survivors.
In other words, it turns out that an infinite number of monkeys really will stumble into everything given infinite time. Frequently, solutions are simple -- it's identifying the need and fitting a solution to it that' s worthy of a patent.
If you want more information on genetic programming, check out these articles posted on slashdot a couple days ago.
The fact that a machine can come up with patentable software only goes to show how banal most software patents are.
BH
Fools! They laughed at me at the Sorbonne...!
One of the things that was not mentioned in the article and as far as I know never made it into Koza's writing is that for some of their older stuff, they came up with some particular patent so regularly that they started to write a patent avoidance filter.
What the thing does it take some existing patents and when the evolution hits on something that is close to it, the solution get punished for that. In think this is on par with patent invention, particularly as it seems you can circumvent any patent by just entering it in the machine and end up with a different device that circumvents it. Might be good idea for some GNU projects to have.
So if a computer is able to determine the algorithm, How can it be argued that this is not something that someone trained in the art would not come up with?
If someone could program a computer to iterate over possible solutions, this SHOULD NOT meet the requirements for Patentability.
Looking for any old 8-bit Heathkit/Zenith software/hardware - http://heathkit.garlanger.com
Let's face it, if you can't put chains on it, if you can't put a fence around it, or lock it up in some manner, it does not belong to you. Software, ideas, drawings, music, plans, it makes no difference. Once you release it, it becomes like the air that we breathe. It belongs to nobody and to everybody.
The only way that IP laws will be enforceable in the age of the internet is to institute Orwellian laws whereby the governement is given fascist powers to spy on everybody. Already, hundreds of millions of copies of copyrighted software are being used freely around the world and there is nothing the manufacturers can do about it, short of instituting full blown fascism.
Wait a minute, aren't they doing that already? Aren't all ISPs in the US and Europe already keeping a log of all user activities? A government that finds it necessary to spy on its own people, not only does not deserve to last, but cannot possibly last. A house divided and all that...
Hit them where it hurt the most, the pocket book. It's our money that is being used to enact stupid laws like the DMCA. Without money, they have no power. There is only one solution against fascist IP laws: Download it all and copy it all! And use it all for free! Don't give them your money so they can turn around and use it against you.
On the philosophical ground, these Stanford folks seem to have created a device capable of sifting the Akashic data banks. After all, where do these ideas come from? But like any chaotic concept, we reform it along the lines we expect to see.
So we have a machine that we can give a problem, and it will give us an answer, as long as we know what we want to hear.
This sounds an awful lot like most human-made software development (especially "community" development) in that it's really good at optimization, but it slows down significantly once new ground begins to be charted.
It of a conversation I recently had about this very idea- that GNU projects (GNOME was the example) tend to have this habit of just mulling around and looking funny for a long while before jelling into something usable- but once that happens, the thing created is a war-hardened program capable of getting the job done. Who knows, though, if it would have even existed had it not had previous environments' headlights to chase?
There's definitely a parallel here worthy of more observation.
What we call folk wisdom is often no more than a kind of expedient stupidity.-Edward Abbey
There's a class of problems for which such algorithms work. And there are problems for which it doesn't do much. Koza's main contribution has been to find more useful problems for which this approach works. Analog circuit design is a good choice, because tweaking on circuit parameters and connections works in that domain.
Koza's system works on some of the same types of problems as Lenat's Eurisko, from 1978. Eurisko was a search system that worked on LISP S-expressions. It was used for simple program creation, digital circuit design, and trouncing humans in the Traveller strategy game. The basic concept was to take a representation of the solution, apply various plausible operations to it, and see what made things better. Many of the same concepts recur in genetic programming, although the search strategy is very different. Eurisko used heuristics thought to be clever. Genetic programming just bashes on the problem with compute power. (That's why Eurisko worked on a single time-shared DEC-10 and genetic programming needs a Beowulf cluster.)
It's worth noting that the re-invention of early electronic circuits is easy today because you can now use a simulator (typically SPICE) to test them. This makes automated brute-force searches possible.
It's not clear that this approach leads to strong AI. But it's a big hammer that can definitely crack some problems.
Suppose we had a GNU project to do something similar; and published each and every solution which resulted - distributing this effort among thousands of GNU advocates.
These solutions could be used to blunt future patents based upon the resulting "prior art" from this effort. And software would be free to progress as it once did.
Anything that this array of GP computers can create by a process of natural selection must by definition be an obvious consequence of the basic building blocks. After all, no creative thought it being exercised here, just a purely mechanical process.
If so, those patents must have been granted in error (not an uncommon thing for the patent system), and so should be revoked immediately.
That goes for anything else that can be evolved in a similar way.
Maybe we have an automatic way of weeding the many bad patents out of the system. I wonder if the powers that be will be interested ...
Bahh, I just woke up and it's to early for me to post.
About 2 years ago I started getting interested in genetic programming, all one had to do was define the problem well enough give the computers the right pieces and boom you have the next perfect speech to text engine, or Pac-man ghost logic.
The first think you'll realize when you get into this field is that there are two type of genetic programming; "Genetic Algorithms" and "Genetic Programming". The first is really just defining an answer set, like trying to re-arrange a DNA strand so it fits a certain criteria, the latter is actually having the computer create some "code" or an actual algorithm. Naturally I was more interested in "Genetic Programming".
The first thing I set out my test program to do was find an algorithm to find prime numbers, just a little test before I moved on to bigger and better things (like Pac-man ghost logic). I plugged in a few operations for the GP to work with, Add, Sub, Mul, Dev, Mod etc.. and gave it a fitness saying "your fit if you have an algorithm that given N you return Nth prime number". Well this didn't work.
The GP would come up with the most retarded algorithms; long lines of Add/Sub etc.. Some of them worked moderately well, all could have been reduced to a more finite set. Either way it wasn't going to work. The problem was that I needed to give the GP better tools then basic arithmetic, it needed for loops, if branches, variables! Maybe if I could figure out how to give the GP the right set of tools, and defined the problem we'll enough it could have gotten further.
You'll find GP successful in a limited range of problems. This is defined by the tools you can give them to work with, and by how well you can grade its "fitness. Fitness becomes very limited when the user most be evolved, imagine trying to have a GP come up with a good text to speech, ever time a new "generation" of code was produced you could have to personally grade the static garble it came out with.
-Jon
this is my sig.