Fun mit Antennen und genetischen Algorithmen

Scheduled time: Saturday, 16:00 - Room V4 - Duration 60 Min.

Genetische Algorithmen sind von der Natur inspirierte Such-Algorithmen, mit welchen man schwierige multidimensionale Probleme lösen kann. Dabei muss man für die Suche nur eine Bewertungsfunktion angeben, die beschreibt, wie gut die aktuelle Lösung ist (Fitness).
Der Vortrag gibt einen Überblick, wie ein genetischer Algorithmus (GA) im Prinzip funktioniert. Dann wird vorgestellt, was man damit machen kann. Beispiele sind das Erzeugen von magischen Quadraten, die Erstellung (nicht das Lösen) von schwierigen Sudokus, oder die Berechnung von Antennen am Beispiel einer Antenne für das 70cm-Amateurfunkband.
Eine Antenne kann man berechnen, wenn man einen genetischen Algorithmus mit einem Programm zur Antennen-Simulation koppelt. Damit lassen sich Antennen-Designs finden, die in der Praxis recht gute Eigenschaften haben. Es wird gezeigt, wie man die Parameter einer Antenne für einen genetischen Algorithmus aufbereitet und zeigt schließlich einige – teilweise auch auf den ersten Blick überraschende – Ergebnisse von Yagi-Antennen für das 70cm-Amateurfunkband.
Zur Simulation der Antennen verwende ich den bekannten Open-Source-Code NEC (Numeric electromagnetics Code) mit dafür verfügbaren Python-Bindings.
Für die Software habe ich das »Parallel Genetic Algorithm Package« PGApack [0] verwendet. Das ist eine uralte Software von den Argonne National Laboratories aus den 1990er Jahren, die auf Parallelrechnern mit MPI laufen kann, aber auch eine Standalone-Variante hat. Ich habe eine Version davon gemacht, die die Original-Dokumentation wieder aus TeX bauen kann, einen Bug fixt, und die Änderungen des Debian-Maintainers einpflegt. Ausserdem compiliert meine Version gegen alle drei MPI-Implementierungen, die von Debian gepackaged werden. Dazu habe ich meinen Python-Wrapper [1] für PGApack verwendet. Für die Antennensimulation kommt eine Variante von NEC2 für Python [2] zum Einsatz.

[0] https://github.com/schlatterbeck/pgapack
[1] https://github.com/schlatterbeck/pgapy
[2] https://pypi.org/project/PyNEC/

Website: https://runtux.com

Desired previous knowledge: Programmier- oder Python Kenntnisse von Vorteil aber nicht unbedingt nötig, auch an Funk interessierte Personen sind herzlich eingeladen.

Supplemental material: Slides (390 KiB)

Cloud-Pad für Publikumsinteraktion: Pad