ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm not asking the specifics, but can someone give me a basic overview of how it works. Is AI "simply" a whole set of IF statements that look at the movements of something else. I just can't see how that would be efficient or easy to produce.
In general, no, there are no AI constructs that are created with a whole big gob of if statements. The only format I know of that comes close to that would be Expert Systems.
Neural networks, for instance, "encode intelligence" in a large number of coefficients. There are no if statements; the coefficients act as "weights" to influence a particular action. The bigger the coefficient, the stronger the influence.
If you're talking about game programming AI, then that's completely different. Game AI is not really "true" artificial intelligence. Game AI is basicaly a script of simple "If this condition exists, do this" statements. The script writer has explicitly mapped out what the computer will do for a given situation, and there's very little room for the computer to adapt to new situations.
Last edited by Dark_Helmet; 07-04-2004 at 02:21 PM.
AI is a research issue, and no-one really agrees on how to do it (there are many people who are very skeptical about neural networks, for example). Your best bet is to:
1) Decide exactly what it is that you want your AI to do.
2) Try to find any books/papers which discuss methods of doing that kind of thing, and try to implement them in your program.
There aren't really any general principles of AI. Just think about all the different things that a human intelligence can do, and see if you can find any (interesting) general principles underlying it — I doubt you can. There are lots of algorithms around for solving particular problems, though.
If you're doing games programming, you can probably get away with a very simple AI, so long as the AI doesn't have to deal with too many situations. Like Dark Helment said, you can just program an appropriate behaviour for each situation.
simply put: AI is (almost)all about trees. creating them, finding good ways to prune them, and traversing them to find the solutions to problems. trees represent the state space of a problem; if you're talking about a board game, then nodes on the tree represent the board state(the arrangement of pieces), if you're talking about finding the shortest path between 2 places on a map, nodes in the tree represent different cities along the route along with stats on how long it took to get to that city from the root node, etc.. no real AI agent is programmed with blocks of if or switch statements.
that was just a simple view, and obviously there are other strategies. there are lots of good sites to be found on google, or if u want a book, "AI A modern approach" by norvig and russel seems to be standard.
in my opinion AI's are all about controlling multiple things by what is most important
like set up the core part of a program so other parts can talk to it by giving it a number that it tells the core part how important and influential this task it wants to perform is, then either tell it what it can have to do the task, or that it cant do such a tasks,... it makes it decision based on the number, where it comes from, and how long/what it is compared with all other tasks currently running (is it just me or is this sounding more like a computer kernel?)
heres an example:
importance: 90/100
where the message came from: protector program (this program is fitted to protect all others (basically protect the computer or whatnot if under attack from something, like someone coming at it with a sledgehammer after losing to many chess games to the new AI)
other running tasks: moving a chess piece to win the game
the core program chooses to allow the protector program to do something ..., it requests what the program needs)
needs: use of all arms/limps
the core program, knowing that the protector program's requests are urgent, compared to other programs (not counting the importance number), and that the importance number is pretty high, allows for the protector program to use all limps to keep the computer/other programs safe)
the core program really only makes critical decisions, the other programs should talk to each other with a number of such given from the core program, they can talk so things like the protector program doesn't go off and steal the sledgehammer and knock that sore losers brains all over its case
all in all, for an actually smart AI you'll need multiple computer, each setup (or better yet: hardwired) to preform certain tasks, like translate spoken language into numbers that all other programs can understand, or to process input from a camera into stuff other parts of a computer can understand (if they need it)
keefaz: that iq test has to be messed up, it gave me ugly number! (plus some of them have no "correct" responses)
There are several areas that fall under Artificial Intelligence. Speech recognition, pattern matching, analyzing text, neural networks, rule based systems, model based systems, robotics.
I think basically, when there is a capability of people that is hard to do on a computer, the study of how such a task would be accomplished on a computer can be called Artificial Intelligence.
The example you gave is a rule based system. It was once referred to as an Expert System. The program consists of a database of rules, and an engine which uses these rules. It is the data and rules that determine the behavior of the system rather than the engine.
This type of system today tends to be embedded in other software. Examples are the FTC analyzing stock trades to flag possible insider trading. Credit card companies analyzing purchase history to determine whether to approve a purchase, and even determine if the card was probably stolen.
A very simple circuit in modems help them adapt to changing line conditions. This circuit is a from neural network research.
I'm sure you have noticed companies, like FED EX that use speech recognition for there phone orders.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.