I have an Agent-Based model written in NetLogo. Now I want to take it to next level and evolve my agents as Genetic Programming population. I want a way to incorporate the genetic programming part into my NetLogo model, either through an interface or write it in NetLogo itself if that's possible. Anybody has any insights into this?
Thank you
Related
I am thinking of training a mobileBERT model from scratch for the German language.
Can I use the English mobileBERT model from HuggingFace to apply it to a dataset in another language?
It makes sense that I would have to adapt the teacher model of mobileBERT to a BERT model of the corresponding language. Unfortunately, I could not find a parameter to adapt the teacher model.
Are there any other ideas on how best to train a mobileBERT model for another language?
Many greetings and many thanks!
ALPacker
I am planning to use ant colony optimization (ACO) to optimize the layout design of a building. I want to use Anylogic to derive the performance of a certain layout design in each iteration of the ACO algorithm and finally obtain the best solution.
Is it necessary to use the APIs of anylogic to realize this idea ?
If the answer is Yes, then , it is possible to change layout design in Anylogic in each iteration of ACO automatically through API?
To use a customized optimization algorithm, the optimization experiment obviously doesn't work because it uses its own heuristics.
You can do that only with a custom experiment. In this custom experiment you will generate the ACO and run the simulation as many times as needed and collect the results to feed the next iteration.
I have done this with Artificial bee colony, cuckoo search and genetic algorithms to optimize systems, so it should be the same for you.
Nevertheless since you are trying to optimize a layout, you will have to smart on how you define your objective function restrictions and search parameters... but that's off-topic
I was trying to find evaluation mechanisms of collaborative K-Nearest neighbor algorithm, but i am confused how can I evaluate this algorithm. How can I be sure that the recommendation done by this algorithm is correct or good. Actually I have also developed an algorithm that i want to compare with it. but i am not sure how can i compare and evaluate both of them. The data set used by me is of movie lens.
your people help on evaluating this recomender system will be highly appreciated.
Evaluating recommender systems is a large concern of its research and industry communities. Look at "Evaluating collaborative filtering recommender systems", a Herlocker et al paper. The people who publish MovieLens data (the GroupLens research lab at the University of Minnesota) also publish many papers on recsys topics, and the PDFs are often free at http://grouplens.org/publications/.
Check out https://scholar.google.com/scholar?hl=en&q=evaluating+recommender+systems.
In short, you should use a method that hides some data. You will train your model on a portion of the data (called "training data") and test on the remainder of the data that your model has never seen before. There's a formal way to do this called cross-validation, but the general concept of visible training data versus hidden test data is the most important.
I also recommend https://www.coursera.org/learn/recommender-systems, a Coursera course on recommender systems taught by GroupLens folks. In that course you'll learn to use LensKit, a recommender systems framework in Java that includes a large evaluation suite. Even if you don't take the course, LensKit may be just what you want.
Do you know if anyone has tried to compile high level programming languages (java, c#, etc') into a recurrent neural network and then evolve them?
I mean that the whole process including memory usage is stored in a graph of a neural net, and I'm talking about complex programs (thinking about natural language processing problems).
When I say neural net I mean a directed weighted graphs that spreads activation, and the nodes are functions of their inputs (linear, sigmoid and multiplicative to keep it simple).
Furthermore, is that what people mean in genetic programming or is there a difference?
Neural networks are not particularly well suited for evolving programs; their strength tends to be in classification. If anyone has tried, I haven't heard about it (which considering I barely touch neural networks is not a surprise, but I am active in the general AI field at the moment).
The main reason why neural networks aren't useful for generating programs is that they basically represent a mathematical equation (numeric, rather than functional). Given some numeric input, you get a numeric output. It is difficult to interpret these in the context of a program any more complicated than simple arithmetic.
Genetic Programming traditionally uses Lisp, which is a pure functional language, and often programs are often shown as tree diagrams (which occasionally look similar to some neural network diagrams - is this the source of your confusion?). The programs are evolved by exchanging entire branches of a tree (a function and all its parameters) between programs or regenerating an entire branch randomly.
There are certainly a lot of good (and a lot of bad) references on both of these topics out there - I refrain from listing them because it isn't clear what you are actually interested in. Wikipedia covers each of these techniques, and is a good starting point.
Genetic programming is very different from Neural networks. What you are suggesting is more along the lines of genetic programming - making small random changes to a program, possibly "breeding" successful programs. It is not easy, and I have my doubts that it can be done successfully across a large program.
You may have more luck extracting a small but critical part of your program, one which has a few particular "aspects" (such as parameter values) that you can try to evolve.
Google is your friend.
Some sophisticated anti-virus programs as well as sophisticated malware use formal grammar and genetic operators to evolve against each other using neural networks.
Here is an example paper on the topic: http://nexginrc.org/nexginrcAdmin/PublicationsFiles/raid09-sadia.pdf
Sources: A class on Artificial Intelligence I took a couple years ago.
With regards to your main question, no one has ever tried that on programming languages to the best of my knowledge, but there is some research in the field of evolutionary computation that could be compared to something like that (but it's obviously a far-fetched comparison). As a matter of possible interest, I asked a similar question about sel-improving compilers a while ago.
For a difference between genetic algorithms and genetic programming, have a look at this question.
Neural networks have nothing to do with genetic algorithms or genetic programming, but you can obviously use either to evolve neural nets (as any other thing for that matters).
You could have look at genetic-programming.org where they claim that they have found some near human competitive results produced by genetic programming.
I have not heard of self-evolving and self-imrpvoing programs before. They may exist as special research tools like genetic-programming.org have but nothing solid for generic use. And even if they exist they are very limited to special purpose operations like malware detection as Alain mentioned.
Does anybody know what components in Simulink (MATLAB package) are analogs for AnyLogic components? (e.g: source, buffer, delay, sink).
Or how can I easily simulate behavior of AnyLogic model in MATLAB?
Maybe there are some cool magic tools?
If you're asking whether or not there is an easy way to convert from an AnyLogic model to a Simulink model, I doubt it. I haven't seen any conversion tools like that.
I have a feeling you're just going to have to rebuild your AnyLogic model in Simulink if you want to simulate your models in MATLAB. I would start by looking through the Block List and Function List links on this Simulink documentation page. You should be able to find analogous components to those in your AnyLogic model.
AnyLogic is one of the best tools for business simulation and Matlab is the best engineering tool. But they have different notations.So in the most cases conversion is just impossible! E.g. to convert DE model of airport into Matlab.
My suggestion: use Matlab for engineering tasks and AnyLogic for business simulation.