![]() |
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
Iwo Asnet, bitte keine Belehrungen. Ich bin mir der Defizite dieses Vorgehens selbst bewußt, das müßte doch aus dem Eröffnungsbeitrage offensichtlich geworden sein. Außerdem schrieb ich, daß ich nicht die Ausdauer (wegen nicht überschäumenden Interesses) habe, mich in alle Subtilitäten hineinzudenken. Andere schreiben über nur eine Sortiervariante eine Dissertation! Was erwartest Du von einem Hobbyprogrammierer?
Zitat:
Ich habe das aus dem Buch, das ich mir zulegte, weil Du darob schriebst. Im letzten Kapitel ging es darum, wie die (auto-)evolutionäre Programmierung zu funktionstüchtigen, schnellen und nebulösen Sortieralgorithmen führt. Zitat:
|
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
Also machen andere das auch :lol:
Ja, ich mache das gelegentlich, wenn ich z.B. seit Stunden irgendeinem mir unverständlichen Fehler auf der Spur bin. Allerdings dauert es so nach meiner Erfahrung meistens länger, zum Ziel zu kommen, als wenn man sich wirklich mal konzentriert mit dem Code auseinandersetzt, und überlegt an die Sache rangeht. Aber nicht immer hat man dazu noch die Energie, vor allem wenn man schon eine längere Coding-Session hinter sich hat und/oder müde ist. Ich kann mich z.B. noch daran erinnern, wie ich vor etwa einem Jahr einen Algorithmus geschrieben habe, um eine antialiaste Linie mit variabler Dicke und abgerundeten Enden (und Alphatransparenz) zu zeichnen (und das mit Festkomma-Arithmetik). Ich hatte mir natürlich erst nen tollen Algorithmus auf Papier skizziert, nur in der Praxis haute das nicht so recht hin – z.B. erschienen vollständig horizontale Linien einen Pixel dünner als minimal schräge, oder es gab plötzlich 1 Pixel große Lücken oder Überlappungen bei den runden Enden, oder an einer Kante funktionierte das Antialiasing plötzlich nicht mehr richtig... letztenendes also Rundungs-Probleme. Leider gab es zig Stellen, wo irgendwas gerundet wurde (oder hätte gerundet werden können/müssen), und die Kombinationsmöglichkeiten von Abrunden, Aufrunden, mathematischem Runden, gar nicht Runden (Festkomma), nur 0.5 addieren/subtrahieren etc. waren schier endlos. Ich habe mehrere Stunden versucht, den Fehler analytisch zu finden, aber schließlich aufgegeben, und dann einfach so lange rumprobiert, bis es klappte. Hat mich zwei Nachmittage gekostet... :oops: edit: @Mavarik: Ja, der Debugger ist für diese Vorgehensweise ein sehr nützliches Tool. |
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
@Delphilaie: Ich habe ja nichts dagegen gesagt, ich fand die Bezeichnung nur sehr schön. Und was für ein Buch meinst du und was habe ich dazu geschrieben? :gruebel:
|
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
[OT]Btw auf dem 28C3 (nein, ich war nicht dort ;)) gab es einen Beitrag zur
![]() |
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
Zitat:
Zitat:
Ich besorgte es für einen schlappen Ecucent (+ die obligatorischen 3 Ecu Versandkosten pauschal) von den Amazonen aufgrund einer lobenden Erwähnung in einem der beiden großen Delphiforen. Ich bin mir sehr sicher, daß ich über dieses Buch in einem Deiner Beiträge las. Dummerweise finde ich diesen Beitrag nicht wieder. Edit: Oder las ich darob irgendwo auf Deiner Internetseite? |
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
|
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
Zitat:
![]() Ansonsten ist Evolution nichts anderes als Versuch und Irrtum, wie Luckie schon sagte. Also Hobbyprogrammierer kann man es so halten. Ich bin Hobbytischler und versuche dennoch, mit den richtigen Werkzeugen, dem richtigen Verständnis und den richtigen Techniken mein Hobby auszufüllen. Das ist aber eine Charakterfrage: Der eine wurschtelt gerne in seiner Freizeit rum, der andere fühlt sich erst wohl, wenn die Holzverbindung ohne Schrauben und Leim perfekt hält. PS: Das, was Lucke darstellt, ist in der Tat 'Evolution'. Nur hat das nix mit dem Rumwurschteln zu tun, das manche dann als 'programmieren' bezeichnen. Es ist ein Gedankenexperiment. In der Tat kann man tolle Programme / Strategien entwickeln, in dem man ein Ziel vorgibt und dann einen genetischen(!) Algorithmus auf ein paar Programmzeilen loslässt. Irgendwo hab ich dazu mal ein lustiges Beispiel gesehen: Es ging um eine Simulation eines Schwarmes, der Futter finden sollte. dabei konnte er das Feld in einer bestimmten Strategie absuchen, sozusagen sein Programm. Das bestand aus Anweisungen wie "Laufe vorwärts", "laufe nach links" etc. Die Evolution hat nun die Strategie/das Programm so verändert, das der Schwarm das Futter in optimal geringer Zeit gefunden hat. Echt lustig. Wenn ich nur wüsste, wo das war... Na, ![]() |
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
Zitat:
Simples Beispiel, das z.B. bei Sortieralgorithmen immer wieder auftaucht: n ist die Elementeanzahl. Man hat z.B. anzupassenden Quellcode, bei dem die Indizes von 1 bis n laufen. Bei mir aber laufen sie von 0 bis n-1. Alles mögliche (nicht zwangsläufig alles) muß daraufhin angepaßt werden. So wird z.B. oft die Mitte benötigt, also div 2 (oder shr 1) ausgeführt. Die springt aber, abhängig, ob die Ausgangszahl gerade oder ungerade ist, aber eben nicht immer, sondern nur bei jedem zweiten Wechsel zwischen gerade und ungerade. Werden alle Indizes in der Implementation um 1 verringert, werden aus geraden ungerade und umgekehrt, und schon kann die Mitte ungeahnte Effekte verursachen. Derlei Fallstricke lauern zu hunderten, und man kann diese systematisch suchen oder eben durch Ausprobieren aufzuspüren versuchen. Wird es nun allmählich klarer, inwieweit man "rum"probieren und dieses auch zum Erfolg führen kann? |
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
@Furtbichler: Naja, es ist schon eine Form von Evolution, wenn man einen Algorithmus durch kleine Veränderungen im Trial&Error-Verfahren immer weiter dem „Optimum“ annähert. Man simuliert eben nur von Hand den evolutionären Prozess, statt dass man ihn automatisiert ablaufen lässt. Das ganze ist nur insofern irreführend, dass, wie du schon sagst, unter „Evolutionärer Programmierung“ normalerweise etwas anderes verstanden wird.
|
AW: Evolutionäre Programmierung - programmiert auch Ihr evolutionär?
Na ja, ich habe eben nur gemerkt, dass wenn ich so anfange, ich den Algorithmus nicht verstanden habe. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz