evolvablehardware / evolvablehardware/BitstreamEvolution
Refactoring Tasks
- Lingua principale
- Python
- Stelle
- 18
- Fork
- 7
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
This issue outlines a list of tasks that must be finished to complete the refactor (in branch "develop") into a minimum viable state to be able to run simple experiments.
- [X] "Evolution" top-level class
Protocols:
- [X] GenDataFactory
- [X] GenDataIncrementer: serves both trivial implementation and concrete implementation
- [X] CircuitFactory
- [X] Trivial impl
- [X] Concrete impl - fully tested
- [ ] Reproducer
- [X] Trivial impl
- [ ] Concrete Implementations: Likely start with a generalized "select+mutate" and then implement following selection methods:
- [ ] Single Elite
- [ ] Fractional Elite
- [ ] Classic Tournament
- [ ] Fitness Proportional Selection - priority
- [ ] Rank Proportional Selection
- [ ] Map Elites - may require additional work (possibly a new type of Population), and need to be removed from selection methods
- [ ] GenerateInitialPopulations
- [X] Trivial impl
- [X] Concrete impl - fully tested
- [ ] Existing Population concrete implementation with tests
- [ ] RandomizeUntil - blocked by hardware evaluation
- [x] EvaluatePopulationFitness
- [X] Trivial impl
- [x] Concrete implementations:
- [x] Var-max
- [x] Pulse count
- [x] Tests for all
- [x] GenerateMeasurements
- [X] Trivial impl
- [x] Concrete implementations:
- [x] Var-max
- [x] Pulse count
- [x] Tone discriminator
- [x] Tests for all 3
- [ ] Hardware
- [X] Trivial impl
- [ ] Concrete implementation + tests
- [x] Reading waveform
- [x] Counting pulses
- [ ] Tests: Mock Serial interface
- [ ] Plotting - verify that all plot data is still collected
- [x] Overall high-level evolution view
- [ ] Pulse count generation view
- [x] Varmax heatmap
- [ ] Pulse count heatmap
- [x] Waveform - whenever one is collected we should show it
- [x] Pulse count/varmax violin plots
- [ ] Source population plot
- [ ] Tone discriminator - state
- [ ] Tone discriminator - waveform
- [x] Single epoch - fitness or pulses
- [ ] Tone discriminator:
- [ ] Evaluate Fitness
- [ ] Reading data using hardware
Other/Misc:
- [ ] FullySimCircuit - re-integrate into new system and test
- [ ] File-Based simulated circuit - add a fitness evaluator for this
NOTE: Refactor broke up things into bitstreams and circuits. One current caveat is that crossover will act differently. Previously, crossover selected one point within a tile and performed crossover on every tile at that point. Now, it will select a point in the entire (modifiable) bitstream and perform crossover once. This may involve a change in outcomes - if needed, BitstreamIndividual can be modified or replaced to track the bits within each tile so that this crossover functionality can be restored (and can still externally output/input a single list of bits that is breaks up into tiles as needed).
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Non sono indicati file né percorsi dei test. Inizia esaminando il branch develop e scegli un'area non spuntata, come Reproducer, Hardware, Plotting o Tone discriminator; segui le implementazioni triviali e concrete già presenti. Si considera completato il lavoro quando viene portata a termine un'attività definita in modo circoscritto con i test o la verifica elencati, mentre l'issue completa richiede di coordinare molte aree non ancora completate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- embedded-iot, testing
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 20/100