34 Stimmen

Haben Sie schon einmal eine Programmierlösung aus der Natur abgeleitet?

Wenn Sie einen Schritt zurücktreten und sich ...

  • die Natur der Tiere, Insekten und Pflanzen und die Probleme, die sie organisch gelöst haben
  • vielleicht sogar die Natur und das Gleichgewicht des Universums

Konnten Sie schon einmal ein Problem lösen, indem Sie einen Ansatz aus der Natur abgeleitet haben?

Ich habe gehört, dass Ameisenkolonie-Algorithmen u.a. die Optimierung der Lieferkette. Auch Fraktal Die "Geometrie der Natur" wurde auf ein breites Spektrum von Problemen angewandt.

Jetzt, wo der Frühling wieder da ist und die Welt wieder zum Leben erwacht, frage ich mich, ob jemand Erfahrungen hat, die er teilen kann.

Gracias

PS: Ich empfehle, sich den Film " Die Jagd nach der verborgenen Dimension " Nova-Folge über Fraktale.

1voto

RP. Punkte 719

Ich habe Genetische Algorithmen das sich auf die Evolutionsbiologie stützt, um Fehler in sehr großen integrierten Schaltkreisen zu erkennen

Die folgenden Links geben Ihnen eine grundlegende Erklärung des genetischen Algorithmus und eine C++-Bibliothek für genetische Algorithmen.

Einführung in Genetische Algorithmen

C++-Bibliothek für genetische Algorithmuskomponenten

0voto

thedz Punkte 5396

Die Bedrohung durch den Daystar zwingt mich ständig dazu, meine Algorithmen zu überprüfen und neu zu bewerten, um maximale Effizienz zu erreichen.

0voto

aJ. Punkte 33220

Eine Sache, die ich aus dem Naturgesetz gut verstanden habe, ist Erhaltung der Energie , " Die Gesamtmenge an Fehlern im Produkt ist konstant. Ein Fehler wird nie behoben. Er wird einfach in einen anderen Fehler umgewandelt. " !! :-)

Spaß beiseite, ich bin wirklich dankbar, Sprachen wie C++ in meiner Arbeit zu verwenden, bei denen die Konzepte (z.B. Vererbung, Freund) von sozialen Systemen abgeleitet sind.

0voto

pokrate Punkte 3804

Das extrem einfache Konzept der "Ausnahmebehandlung" ist die mächtigste und einfachste Anwendung der Natur in jeder Software.

Jeder lebende Organismus tut sein Bestes, um sich an die sich verändernden Umstände um ihn herum anzupassen und im Leben voranzukommen, um sein Überlebensziel zu erreichen. Viele außergewöhnliche Umstände kommen dazwischen, um ihn von seinem Ziel abzuhalten, aber die Organismen kämpfen hart und versuchen, den optimalsten Weg zu finden, um die anstehende Aufgabe zu erfüllen. Unser tägliches Leben ist voll von solchen Erfahrungen.

Auch die Behandlung von Ausnahmen hilft jeder Software, ihr Ziel unter Umgehung aller auftretenden Schwierigkeiten zu erreichen.

Aber eine Sache, die in der Software fehlt, ist etwas, von dem ich mir wünsche, dass es unbedingt vorhanden ist. Es geht wie folgt:

Der Mensch lernt ständig aus seinen Fehlern, speichert alles, was ihm begegnet, in seinem Kopf und weiß beim nächsten Mal, wenn ein solches Problem auftaucht, wie es zu vermeiden/lösen ist. Aber beim ersten Mal, wenn es auftritt, wissen sie, wie sie es mit ihren normalen Gewohnheiten vermeiden können (Behandlung der Ausnahme mit der allgemeinen Basisklasse Exception), aber sie lernen danach, dass es eine spezielle Art der Behandlung gibt (spezialisierte Ausnahmeklasse wie FileDoesNotExistException ). Sie gehen nie in eine Werkstatt, um sich auf den neuesten Stand bringen zu lassen, obwohl sie Ratschläge von Freunden annehmen. Ich hoffe, Sie verstehen das Wesentliche, was ich zu sagen versuche.

Auch eine Software sollte lernen, ohne ihren Benutzern die Meldung "Website wird gerade aktualisiert" zu zeigen und unbekannte Probleme mit der einfachen Klasse Exception zu behandeln. Neue Versionen werden zwar veröffentlicht, aber ich wünsche mir, dass wir eine ständig laufende und selbstlernende Software entwickeln, die sich selbst aktualisiert, ohne jemals abzustürzen.

0voto

Cruachan Punkte 15597

Ich habe einmal mit dem Autor von Terragen einige seiner atmosphärischen Rendering-Algorithmen in ein Landschaftsrendering-Programm einzubauen, das ich geschrieben hatte. Am meisten beeindruckt hat mich, dass der Code tatsächlich die Atmosphäre emuliert - man gibt Schwarz als Grundfarbe ein (weil der Himmel im Weltraum schwarz ist) und die Farbe der Lichtquelle (eigentlich Weiß, vielleicht mit einem leichten Hauch von Gelb), verschiedene Werte für die Höhe der Atmosphäre, die Dichte und den Rot/Grün/Blau-Abfall, und dann geht das Ganze los - wodurch ein schöner blauer, abgestufter Himmel und eine leuchtende gelbe Sonne entstehen - oder, wenn man die Sonne richtig positioniert, ein schöner roter bis dunkelblauer Himmel und Sonnenuntergang.

Eigentlich war es nicht besonders komplex - nur ein paar sehr gut gewählte mathematische Gleichungen, die das Verhalten von höchstens einem Dutzend verschiedener Parameter emulieren - aber es war wunderschön zusammengestellt. Ich habe danach viel Zeit damit verbracht, damit zu spielen - und es schließlich komplett für GLSL umzuschreiben, aber es hat mich auf jeden Fall ein paar Dinge darüber gelehrt, wie man eine bestimmte Klasse von Problemen angeht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X