Comments (3)
Confirmed - two brains are using the same context, which messes up the recurring parts of the network, which are in turn much needed in vision processing.
Need to clone the brain of the splitting fish with network.clone() and add it to neat.population with neat.resize().
from fishbowl.
To dos:
- introduce an array genus that will group the fish
- ensure genus is inherited during splitting
- when a fish dies, don't delete it but remove from objs instead so it stays in genus
- fitness function should evaluate the total fish size of the whole genus
- during evaluation take all fish from genus and make their brain score equal to the fitness of the corresponding genus
from fishbowl.
Alternatively we can switch to another paradigm altogether:
- The fitness function is how long a certain fish has survived.
- One of the fish (or both of them) mutates on split.
- When the simulation time elapses for a generation, surviving fish are evaluated on their lifetime.
- When the simulation ends because all of the fish have died out, the score is proportional on the recorded lifetime of the corresponding fish.
- start recording birthFrame in Critter() constructor
- on split clone brain and add it to neat
- mutate fish on split
- reset birthFrame on split?
- when a fish dies, set its brain's score to the fish lifetime
- calculate neat.population[i].score based on lifetime (currentFrame - birthFrame)
- entirely replace neat.population on generation change instead of neat.mutate()
from fishbowl.
Related Issues (20)
- Conical vision HOT 1
- Divide fish sense into (same genus) and (other genus)
- Attack action - reduce your own and other fish's size
- Speed up - ability to do several cycles in one frame HOT 1
- Physical evolution
- Fish started growing when they shouldn't
- Stereoscopic vision / Rangefinder HOT 2
- Fix maxfitness HOT 1
- Code quality: Probably shouldn't assign this every cycle HOT 1
- All the fish from the same parent stopping abruptly at times HOT 3
- Separate outputs of the NN into "pulse intensity" and "steering" HOT 3
- Consider moving options / stats within a modal HOT 1
- Consider novelty search as a way to increase fun
- Food amount parameter should be replaced HOT 1
- Incorrect foodDensity calls on the x axis HOT 1
- Options - add button to reset the network back to initial random HOT 1
- Test lab for vision HOT 1
- Bring speed of just split fish in accordance with FISH_PULSE_VELOCITY
- Speed buttons on mobile in the top bar don't fit HOT 1
- There should always be at least 3 fish to keep evolution running on mobile HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fishbowl.