23

The AI course I participated in online, taught at Stanford, recommended that Python be used for the homework. I believe Georgia Tech still uses LISP. The fallacy here is "new" is "good". AI research is one of the oldest computing research disciplines. It keeps calving off subfields as people realize that techniques from it can be used elsewhere. Language ...


15

To answer just your title, yes. Neural nets can give non-boolean answers. For example, neural nets have been used to predict stock market values, which is a numeric answer and thus more than just yes/no. Neural nets are also used in handwriting recognition, in which the output can be one of a whole range of characters - the whole alphabet, the numbers, and ...


15

Joel actually answered this one a few years back. The actual meaning of "teach a machine how to program by itself" is "teach a machine how to take a spec and create a program that corresponds to that spec." And with that in mind: The problem, here, is very fundamental. In order to mechanically prove that a program corresponds to some spec, the spec ...


14

Since Tic-Tac-Toe is a solved game, I would recommend simply playing a perfect game every time. The following algorithm will allow you (or the AI) to always deny your opponent victory: Win: If you have two in a row, you can place a third to get three in a row. Block: If the opponent has two in a row, you must play the third to block the opponent. Fork: ...


12

Your example sounds similar to Bridge. Top Bridge-playing systems use Monte Carlo methods to select moves. At a high level: Determine the probabilities of each card being in a given hand. You know with certainty which cards are in your hand and which cards have been played. Determine the probability of all other cards based on cards that have been played ...


11

First of all, it seems to me you are missing (or perhaps misunderstanding) the "explicitly" bit in "without being explicitly programmed" (from the quote in the question). It doesn't mean that no programming is required at all, it means that you are not programming a specific solution to the problem, but instead what you are making is a more general program ...


11

I wish to write a chess AI which simulates the way I think over the board, using C++. Awesome! My focus is on writing the algorithms for choosing moves (decision making), not defining the board and pieces. Er, huh? To my knowledge, most chess programs written to date are focused on taking advantage of the computer's calculating powers Well yes, ...


10

"The best algorithm to achieve this"? Define "best". A simple A* algorithm will generate the most efficient possible path for an enemy to take to reach the player, but would you really want to play against a perfect computer? That's a recipe for frustration right there. The Pac-Man "AI" was actually 4 very simple algorithms that told the 4 ghosts where ...


9

Take a look at n-grams. One n-gram is a sequence of n words. In your case you want n to be 3, since you need two query words and a resulting word. One 3-gram would be for example "I am tired", another one "I am happy". What you then need is a collection of these 3-grams that are collected over your target language, say English. Since you cannot collect it ...


9

Off the top of my head, the very classic, must-read, heavy book that will help you throughout your AI experience : Artificial Intelligence, A Modern Approach. Don't be scared by the size, this book is trying to explore multiple kinds of AI, and the authors warn that the reading of the entire book will need nearly a 2-semester period. If you want to focus on ...


8

You may find answers to your questions in a recent special issue “Sprachen der KI” (“Languages of AI”) of the German AI journal KI - Künstliche Intelligenz, Volume 26, Number 1 / February 2012, published by Springer. I am the co-author of one part of a discussion paper included in it: “What Language Do You Use To Create Your AI Programs and Why?” Here is a ...


8

Why you don't need to generate code What you are doing here is interesting as a learning exercise. Certainly there are worse ways to learn a language than by generating code in the language, with the language. Outside of that, there may not be many practical applications for generated code in a highly flexible, dynamic language like Lua. Anything you can do ...


7

Usually, such filters are programmed to output not only a yes/no value for each sample, but rather a probability: a sample may, for example, be reported as 95% likely to be abusive. Then you set two thresholds, to divide your results in three groups: very unlikely to be abusive, very likely to be abusive, and uncertain. For example, you might consider ...


7

A case of recent personal experience: I've been working on a card game myself (Bisca, a 2-player Portuguese game), and I've been getting good results using Monte Carlo methods, specially using the recent Information Set Monte Carlo Tree Search algorithm (ISMCTS, described with example source code in Python at http://www.aifactory.co.uk/newsletter/...


7

1) since the board has a fixed-size that you're just going to be feeding into an AI anyway, you could just represent it as a one-dimensional array with the right number of cells, where each cell represents a space on the board. Mapping that one-dimensional array to the screen for presentation might be a little weird, but it's a problem you only have to solve ...


6

Not an AI expert, but I do know some things about AIs in general, and about chess AIs. First, let's indeed note that there is no "best practice" for AIs, they can work in many different ways. Some approaches are better suited to some problems, and some problems have many viable approaches. Now, no, games like chess are definitely not played by considering ...


6

You are correct about AI which includes ML which includes DL. NN can indeed be included in ML, be it inside or outside of the DL context. An example for the latter is when neuronal nets are used in simple task based learning (e.g. recognize car number plates in pictures). Data mining is somewhat broader than your definition, because it's not only ...


6

Min-Max search (with or without ABP) is not supposed to "build the complete search tree" in memory. It is usually implemented as Depth First Search tree traversal, which traverses the complete search tree, but does not store it completely. In fact, at each point in time, there is only one node per level required in memory, so the memory usage is actually ...


5

I think your problem scope falls exactly into the purpose of R, though I have never written or worked with R. I have heard good things about it, and would strongly suggest you start looking into it. http://www.r-project.org/ Coming from python this will be a large shift I'm betting since it's functional, but I don't know how pure it is so it may not be too ...


5

Sounds like a job for Prolog If you decide to implement this system using Prolog, then this article will help you with choosing an appropriate data store. It dates back to 2002 but Prolog has been around a lot longer than that so the information should still be useful.


5

I have 7 different categories, and for each one, a lot of key words related to that category. I would use some for training and some for testing. Sounds like a simple Bayesian classification should work well. I'm sure there's libraries which implement that for all major programming languages.


5

If you are allowed to remember past data, A* is indeed your best bet. I used it on Google's Ant AI challenge, which only has a small radius of view. The main difference with a limited field of view is you do a lot more walking around just to explore, but that's unavoidable. A* will give you a pretty good list of where to explore, without having to visit ...


5

I'm not an neural network expert but I understand that identity mapping ensures that the output of some multilayer neural net is ensured to be equal to its input. Such a net is also called a replicator. I have understood that such identity/replication facilitates unsupervised training, and that the hidden layers of such nets can be used for feature ...


5

I would try to keep the TicTacToeGame completely UI agnostic. No observer, no publisher-subscriber inside that class. Only "business logic" (or call it "game-logic") inside that class, no mixed responsibilities which could lead to the complexity you scetched in your question. Instead, you could implement the turn-logic by utilizing your own event queue. I ...


4

Drools recently adding backward chaining, seamlessly into the drl language. So now you get the benefits of both words. It doesn't yet quite have all the features of prolog, for instance no 'cut'. But it's unification and deriviation tree results will work as prolog people expect, i.e. full support for transititive closures. And features will continue to ...


4

When you explore AI, you do so first with a problem space that is relatively small and bounded by specific rules, so that you can prove your techniques. Checkers is such a space. It therefore makes an ideal playground for AI explorations. This is also true of chess, although checkers is a smaller problem space, and therefore is more suitable to simpler ...


4

You could also try BerkeleyX AI course that is available on edX. More info here: CS188.1x Artificial Intelligence I haven't taken this particular one, but the quality of presentation is generally very good. If you go through the archived course that already ended, you can just study at your own pace. However, if you register for the upcoming one you may ...


4

Sure, we do this all the time (for extremely limited subsets of problems). It is fairly trivial to imagine taking another step or two and tying something like Siri into the input of these code generators (or something like Wolfram Alpha) which in turn writes code and solves your problem. I would expect that something already exists somewhere to do the most ...


Only top voted, non community-wiki answers of a minimum length are eligible