evolvablehardware / evolvablehardware/BitstreamEvolution

Refactoring Tasks

Offen
#15 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
18
Forks
7
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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).

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Es werden keine Dateien oder Testpfade genannt. Beginne mit der Überprüfung des develop-Branches und wähle einen nicht abgehakten Bereich aus, z. B. Reproducer, Hardware, Plotting oder Tone discriminator; verfolge dessen vorhandene trivialen und konkreten Implementierungen. Als erledigt gilt das Abschließen einer eng definierten Aufgabe mit den aufgeführten Tests oder der aufgeführten Verifikation, während das vollständige Issue die Koordination vieler noch nicht abgeschlossener Bereiche erfordert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
embedded-iot, testing
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.