evolvablehardware / evolvablehardware/BitstreamEvolution

Refactoring Tasks

Aperta
#15 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.