Over the last few years, evolutionary computation research has shown increasing interest in including some aspect of epigenetics. For example:
A 2008 paper by Tanev and Yuta
Work from Lee Spector's genetic programming group
A recent paper by Ricalde and Banzhaf
Take a robot that we want to be able to move from the bottom right corner to the top left corner of a 4x4 matrix full of random holes it should avoid. With holes represented by 1s, it could look something like:
As we want it to get to an exit from a start, we have a natural fitness ...
Do genetic algorithm and neural networks really think?
Genetic algorithms and neural networks are vastly different concepts. Both of them do not think.
I'm aware of those AI programmes which can play games and neural networks which can identify pictures. But are they really thinking
Depends on how you define "thinking", but I say "no".
Do they think ...
There is no "best language" for any problem. There are too many variables to consider, even when advising a single person with a single project plan.
If the choice is between Python and C++, I would generally advise:
If you want to implement from scratch and learn how the algorithm works, use Python with numeric/accelerated libraries such as NumPy or ...
I think that the answer to your question is yes. In the article New A.I. application can write its own code, the authors state
Computer scientists have created a deep-learning, software-coding application that can help human programmers navigate the growing multitude of often-undocumented application programming interfaces, or APIs.
Designing applications ...
There have been extensive studies within evolutionary computation in the area of island models and niching for doing exactly this.
The advantages of this approach include greater population diversity (which is particularly useful when the problem is multiobjective) and the potential for concurrent execution of each separate population.
See also the answers ...
In GE, the genotype is a linear sequence of codons. By "wrapping" it, you make it a circular sequence that never ends. It allows you to build a bigger tree, while having only a few codons. Still, it is possible to find such a combination of a genotype and a grammar that defines an infinitely deep expansion — such combinations are hardly suited for ...
The other answers cover modern work on this, but it's not even a new topic!
Koza's work in Genetic Programming (1992) led to whole sub-fields doing this. The techniques are widely used, robust, and well understood. They're just very computationally expensive. Enough so that most of the time you're better off just hiring a programmer to do it.
TL;DR Ignore the hype, current systems (in 2018) are very far removed from human-like "thinking", despite interesting and useful results. State-of-the-art for "thinking and behaving like a creature in general" has not reached the sophistication level of insects, even though we have example narrow AIs that can beat the world's best at intellectual games.
Yes it has been tried. In fact there is a whole field, dubbed Genetic Programming.
There is an annual competition to obtain "Human-Competitive" algorithms, and many instances of those have been found over the years.
They treated it as a classification problem. While it's common to use some variety of Neural Nets (NNs) to build classifiers, Genetic Programming (GP) can also be used for this purpose. In contrast to NN classifiers, GP can use a wider range of operations (e.g. if,while,logical statements,arbitrary mathematical functions etc) to perform the classification ...
I have not touched Obj-C, but I've played with evolution in PHP, which wasn't designed for that at all. If a slow script language on my 10-year old desktop PC can do it, Obj-C should be able to handle that.
This is a game, so - I assume - you've disabled all the graphics. A headless program is ideal for training. Waste no CPU cycles on stuff ...
AI has been applied to programming (check out TabNine, my favorite autocomplete engine) although not in as robust a fashion as you describe.
Programming requires a high level of abstract while AI is typically trained to solve a very specific task. Given thousands of examples of insert sort in Python I think a model could be trained (perhaps after ...
Should I have all paths as the population,
No, this is not usually possible for more realistic problems where a population that covered all possibilities would be far too large to manage.
or should I create a population same size as the nodes(17).
No, there is no need to link the population size to other properties of the problem so directly.
If your path ...
Before trying to answer your question more directly, let me clarify something.
People often use the term genetic algorithms (GAs), but, in many cases, what they really mean is evolutionary algorithms (EAs), which is a collection of population-based (i.e. multiple solutions are maintained at the same time) optimization algorithms and approaches that are ...
To understand what a codon is, we need to understand what GE is, so let me first provide a brief description of this approach.
Grammatical evolution (GE) is an approach to genetic programming where the genotypes are binary (or integer) arrays, which are mapped to the phenotypes (i.e. the actual solutions, which can be represented as ...
I am not an expert on this specific topic, but I can say a few words. I will use the term "programming" to refer to software development (of any kind).
If you are in the camp that this isn't that hard, why hasn't it become mainstream?
It's definitely hard, otherwise, we would have already some useful artificial programmers.
Why is creating AI ...
There are multiple ways to handle 'illegal' individuals, each one with pros and cons:
Abortive methods: The individuals that violate constraints are eliminated as soon as discovered (i.e. after crossover or mutation) and new individuals are generated in order to keep the population stable. This usually implies a slower creation of new generations, as ...
The standard tool to work with XML files is XSLT. You may not need AI to solve this problem. But.. you have to learn how to program with XSLT ;)
On Windows you can use MSXML, if you work from C++ - msxsl.exe, C# has internal supoort for XSLT. That is what I know about. There are also non-MS tools.
This is a really interesting question that can't be answered correctly since we lack a common understanding or a universally valid definition of what "thinking" means. Still I will try to give my humble opinion on it.
First of all I would like to mention that consciousness might not exist in a binary fashion (as possessing it or not) but in a gradual ...
The first classic paper your present uses a genetic algorithm (GA), while you mention genetic programming (GP). In short, a GA uses an evolutionary process to evolve a fixed-length vector, normally a bit string, while a GP evolves variable-length decision trees, which could be a computer program or mathematical function.
An autoencoder is something that ...
There are a few ways of handling this within GA's, but most of them actually amount to using some kind of Genetic Programming instead.
The simplest way, and most similar to what you've proposed is called linear genetic programming. In this representation, you break the genome into a set of equal-width pieces. Each piece is interpreted as a machine-language ...
As per the answer to this AI SE question,
the presence of mutation makes a GA into a global search algorithm, i.e. it will eventually visit each point in the search space.
How efficiently it will do so is indeed related to the quality of the fitness function:
A 'perfect fitness function' could conceivably mean any of the following:
A function which ...
A totally random algorithm could solve any problem given unlimited time and a perfect fitness function. All you need to do is give the GA some new random population members each generation and you're guaranteed to find the solution eventually. Even if you keep only descendants of the previous generation, setting the mutation rate and number of ...
The island model and niching mentioned by NietzscheanAI are well known ways to isolate populations. However, the populations are not really isolated as individuals migrate from one population to the other. In these cases depending on the sampling strategy used to sample parents for crossover migrating individuals may dominate a population causing rapid ...