Hey peeps. Give us your thoughts on this:
Visual Basic programs that can learn
Impossible?! Well, think of it this way, a program that can improve it's code by it's own experiences. Is this impossible? Give me your thoughts...
Printable View
Hey peeps. Give us your thoughts on this:
Visual Basic programs that can learn
Impossible?! Well, think of it this way, a program that can improve it's code by it's own experiences. Is this impossible? Give me your thoughts...
There's a company called NetCustomize who specializes in this.
Well, their programs don't change their own code but they learn what the user likes and act in a way which will be respected by the user.
Or something like that. :rolleyes:
That's not really what I mean.
Let's say, developing new features to the program as the program finds that it might be useful. Features that the programmer didn't program into the app, but the app thought for itself.
I think LISP or Prolog are capable of making 'self-modifying code'. I think a VB program could do it by interfacing with VBA itself, and running the new code semi-interpretively.
There are a lot of really long threads on AI that might help you.
what do you mean???
once the program is built, its code is no longer a vb code,
its a binary code (or something like that) so it can't
change her code.
Yes, in theory this isn't possible, but in practise, there may be a few ways.
Basically, I'm just speculating on AI I suppose...
If it's possible how would you achieve that?Quote:
Let's say, developing new features to the program as the program finds that it might be useful. Features that the programmer didn't program into the app, but the app thought for itself.
Something that the programmer didn't programmed in the app? Then how would the prog know what kind of functions to build in and in wich language?
I mean, you as programmer must first tell the app what to do, then it can do stuff, the prog has no brains, you're the brain behind the prog.
These are your thoughts
prog hey! What to do next?
you hmm, dunno, find out yourself, think of anyting the users like!
That's not the way it works, it's more like:
prog Hey! What to do next?
you Ok, let's code a function the people need, something like a alarm, do it like this: <VB blablabla</VB>
prog ok, thanx
So.. you have to say the prog what to do, it can't live on his own.
Visual Basic is a program, and you tell it what to do. :rolleyes:
run it with its original VB source code in a txt file..
You tell it to open up the text file every (ohh 24 hours) and save parts of the text file as their respective .vbp .bas .cls whatever...
I have a program that saves bytes to a file in a such a way that excel recognizes the saved .xls file even though it was never actually saved in excel..
So you could save info from the text file as their respective .bas .cls and .vbp
then after that you could run a shelled Vbscript that tells a compiler to compile the new files into an exe, leave a text file with commands for the new exe like to rename the old exe, compile the new exe, run the new exe and off itself... leaving the new exe running in its place after bring recompiled from a text file that got turned into its respective parts...
So then, the tough part, would be modifiying that source code in the file so that the program could add functions in the right spots that compiled without a problem...
and, in the end, you'd have to be the one to write in those functions for it to choose to insert into its new self..
hmm... It's a good idea... Perhaps you should do a random background changer / button changer / font changer so the program never looks the same twice?? =p
I just found an example of what i was talking about
you can use VBSCript 5.0 to evaluate a variable as VBScript Code
http://www.vb2themax.com/HtmlDoc.asp...ID=1600&Page=6
go there to learn more...
so, in theory, if you did a *lot* of coding so that you *taught* the program vbscript on a below kindergarden level
'beginning of new programs start with Dim vRanDOmeVaR
vRanD0meVaR = Eval(userincluded vbs file)
it wouldn't be an *AI* but at least you could have a program upgrade itself while it runs automatically if you decide to throw stuff into its upgrade vbs file..
like, a bug fix or a patch on the fly... you wouldn't even have to stop your program, you could have it wait until it's idle before it offs itself and runs its new self..
Is it possible to change the code at runtime?
I do not mean something like
If this and this, do that, else do that,
but a function that lets the user write in lines of code and executes them.
Something like
Dim NewCode as String
NewCode = txtCode.Text ' Here the user inputs code
Execute(NewCode)
Where Execute should be the function to run the written code.
If someone knows if it's possible, please post!
Pentax
Except that that functionality is in VBS not VB... if you really are interested follow the link I posted... Any More ideas on AI? this is a good subject..
Changing the source code is impossible once the program is compiled, though you could have two identical EXEs in the same directory (both EXEs are your app). Once you run one EXE, it can open and change the bytes in the other EXE (it's close to asm), close the file, and run it, then the executed file will copy itself in order to update the other EXE.
Of course the tough part is to teach the program exactly how to change the bytes in the file. :rolleyes:
A little off topic but I've read an article regarding this subject.
It was a computer designed by IBM, which plays chess and learns from its opponents because of it's simulation of human brain nuerons. Because of it's "experience", it was able to beat the world chess champion.
Oh yeah. Was it Deep Blue? I'd love to have a play on THAT.
this is the most contriversial question about computers and their abilities
we all know that they cant do anything unless they are programmed
and as far as the chess program by ibm
it wasnt able to THINK
it was able to follow a strategy
and that strategy was programmed by a human
just like a computer game
it LOOKS like the monsters can think where you are
but in reality we all know its a program that is made by human to figure out where you are
computer power is in the hands of humanity
Yeah, you're right. Although we will very likely see 'thinking' computers in the near future. They don't even have to be that complex, just enough to cope with a situation they haven't been programmed for.
It's like a baby - it has some information preprogrammed (instinct). Some information it learns, and other information it works out for itself based on a situation and what it knows. Once a computer can do that, we won't need to do much programming any more.
I saw an atricle a few weeks back saying how a company (maybe IBM or Bell Labs or somert) are developing the worlds biggest computer. Something like the size of a tennis court. Very fast indeed. Anyway, i will try to find the article i saw and i will post a link to it. It may be of interest.
Later
REM
the answer is no of course
will they LOOK like they are thinking YES
think of it this way
very simplistic
you say "good morning"
program the puter to say "good morning to see you too"
in reality we know the stupid thing is not thinking
but it LOOKS like it is
so take this simplicity to a advanced level
and yes i believe they will be out of control
This isn’t really AI but I actually wrote a program as early as 1982 that learned from it’s mistake.
It was an Othello game (a classic board game) that stored every move it made and remembered them if it lost the game so it didn’t do the same mistake twice.
It was pretty easy to beat the program the first time you played but after a while it became virtually impossible to beat it (so I actually lost interest in playing it).
What did you program that game on back in 82?
I programmed it in BASIC on a computer called ABC80.
It was an amazing machine with a Z-80 processor and 16KB RAM and with 16KB ROM that hold the BASIC interpretator.
Never hear of that one.. LOL I started out on a tiny little Sinclair and moved along to the Atari 400. Way back in the day!!!!
This has turned into a long thread, all started by me!!!
The thing is, in England, they've made these Robots that reproduce. They started off with 18 different robots - 17 small and 1 big. The big one took the good parts out of the 17 smaller ones and built a 19th one. Cool stuff.
A true step forward.
Also, VB programs can't, and probably never will be able to make their own code up, simply because of the AI that would be involved, but what about more high-level programming languages?!
Yeah - I'm sure I saw a demonstration of a LISP program a while back that 'learnt' - and then changed it's own code.
I think what they did was feed a value that caused it to go strange, and then it checked and added an error routine to it. Next time round, without any changes, it worked. :cool:
It was programmed to learn.Quote:
we all know that they cant do anything unless they are programmed
If you play a chess game today (on computers) you'll notice that the computer will move according to what you do. This computer was different in a sense that its moves changed everytime because of it's "playing experience".Quote:
and as far as the chess program by ibm
it wasnt able to THINK
it was able to follow a strategy
and that strategy was programmed by a human
[/B][/QUOTE]
From a chess player...
As for the IBM chess computer (Deep Blue, or Deep Thought), yes the program was capable of 'remembering' or 'learning' from passed moves. Also it was running on several CPUs, had a HUGE database of millions of games played by passed & present champions. Having said that, the contest between Kasparov & PC was NEVER fair to the human because of the fact that they were playing with the CLOCK. Therefore the computer had a big advantage being able to analize millions of moves per second. I firmly believe that if Kasparov had enough time to move (no clocks involved), he would win. Let's not forget that the software was written by humans far less advanced in chess comparing to Kasparov who I think is in top 1-2 players of all time. Clearly the computer's ability to perform fast calculations in a short period of time was the key to success.
I'm a chess playing machine, damn it! Not a cheese spraying mannequin.
Those 'millions of games played' was the whole point of this computer. It was suppose to modify itself to play better each time.