-
Genetic algorithm का उपयोग करने वाला कार evolution simulation प्रोग्राम
- इसका उद्देश्य genetic algorithm का उपयोग करके random 2-wheel shapes को पीढ़ियों के दौरान कारों में evolve करना है
- यह BoxCar2D पर आधारित है, लेकिन शुरू से लिखा गया है, और केवल वही physics engine (
box2d) इस्तेमाल करता है - David Bau की
seedrandom.jsलाइब्रेरी का उपयोग किया गया है
-
Controls और settings
- इसमें
Save/Restore Populationफीचर है, जिससे मौजूदा population को local में save और restore किया जा सकता है Surprisetoggle के जरिए drawing को बंद/चालू करके simulation की speed बढ़ाई जा सकती हैNew Populationट्रैक को बनाए रखते हुए केवल कार population को फिर से शुरू करता है- एक ही seed से हमेशा वही track बनता है, इसलिए दोस्तों के साथ competition संभव है
Mutation rateवह संभावना है कि नई generation बनते समय हर individual का हर gene random value में mutate होगाMutation sizeवह range है जिसमें हर gene mutate हो सकता है; संख्या जितनी छोटी होगी, उतना ही वह मूल value के करीब होगाElite clonesसे मतलब उन शीर्ष n कारों से है जिन्हें अगली generation में copy किया जाएगाView top replayमौजूदा simulation को pause करके सबसे बेहतर प्रदर्शन करने वाली कार दिखाता है
- इसमें
-
Graph
- लाल: हर generation का highest score
- हरा: हर generation की शीर्ष 10 कारों का औसत
- नीला: सभी generations का औसत
-
Genome संरचना
- आकार (हर vertex पर 1, कुल 8 genes)
- wheel size (हर wheel पर 1, कुल 2 genes)
- wheel position (हर wheel पर 1, कुल 2 genes)
- wheel density (हर wheel पर 1, कुल 2 genes) - जितना गहरा, density उतनी अधिक
- chassis density (1 gene) - जितना गहरा, density उतनी अधिक
-
अतिरिक्त बातें
- simulation deterministic नहीं है, इसलिए सबसे अच्छी कार हमेशा एक जैसा प्रदर्शन नहीं कर सकती
- दूरी के साथ terrain की complexity बढ़ती है
- अब यह code GitHub पर community contributions के साथ उपलब्ध है
1 टिप्पणियां
Hacker News राय
संक्षेप में यह इस प्रकार है:
Surpriseबटन दबाकर कई पीढ़ियों को तेज़ी से पार किया जा सकता है। mutation rate और mutation size को बदलते हुए समय के साथ evolution की प्रक्रिया देखना दिलचस्प हैcomplianceके लिए कोई gene हो ताकि suspension लागू किया जा सके, तो यह दिलचस्प होगा। ज़्यादातर रन में यह Tron bike जैसी आकृति पर converge करने की प्रवृत्ति दिखाता हैboxcar2dजैसा, लेकिन Flash के बिना लागू किया गया)