34 votes

Avez-vous déjà tiré une solution de programmation de la nature?

Lorsque vous prenez du recul et regardez ...

  • la nature des animaux, les insectes, les plantes et les problèmes qu'ils ont organiquement résolu
  • peut-être même de la nature et de l'équilibre de l'univers

Avez-vous jamais été en mesure de résoudre un problème en dérivant une approche de la nature?

J'ai entendu parler de Colonie de Fourmis Algorithmes d'être en mesure d'optimiser la chaîne d'approvisionnement, entre autres choses. Aussi Fractale's étant la "géométrie de la nature" ont été appliqués à un large éventail de problèmes.

Maintenant que le printemps est là et le monde est de retour à la vie, je me demandais si quelqu'un a des expériences qu'ils peuvent partager.

Merci

PS je recommande de regarder la "Chasse à la Dimension Cachée" Nouvelle épisode sur les fractales.

20voto

Charlie Flowers Points 9145

Je me souviens de la lecture d'un livre par un mathématicien sur le domaine des mathématiques, et il a cité l'exemple de la nature. Son exemple de la nature m'ont permis d'améliorer une conception que je travaillais.

Son exemple fut celle-ci: il est au volant et il a vu des oiseaux sur un fil téléphonique. Les oiseaux ont été également espacées. Cela ne s'est pas parce qu'il y avait certains dirigeant tout oiseau qui se disait à chaque endroit où s'asseoir. Plutôt, chaque oiseau avait elle-même un certain "algorithme" pour décider quoi faire quand un autre oiseau est venu. Les oiseaux préfèrent, afin de maximiser leur espace libre, je suppose.

Cela m'a aidé à un moment où j'ai été assez nouveau à l'OO. J'ai gardé tendant à faire les choses à la procédure et n'ont centralisé l'intelligence de dieu "-objets". J'ai lu cela et compris que les objets individuels pourraient se concentrer uniquement sur les choses qu'ils ont besoin de savoir et de soins au sujet, et encore que le résultat à l'image est grande niveau peut encore être ce que vous voulez. Que le bon résultat peut "naître" sans être "contrôlé".

7voto

Jörg W Mittag Points 153275

Personnellement, je n'ai jamais résolu un problème en appliquant les idées de la nature. Cependant, j'ai résolu les problèmes en appliquant d'autres personnes des solutions inspirées par la nature.

Beaucoup de la présentation graphique des algorithmes, et la mise en page des algorithmes en général, sont basés sur la mécanique (ressorts, des bandes de caoutchouc, la gravité) ou de simples insectes comme le comportement (suivez votre chef, maximiser/minimiser la distance).

Et, bien sûr, j'aime la programmation orientée objet, qui a été développé par Nygaard et Dahl pour les simulations de physique des objets du monde réel, et a été perfectionné par Alan Kay, un microbiologiste qui a modelé OO explicitement, à la manière simple les cellules peuvent former des complexes organismes capables de comportement complexe. Donc, dans un sens, ceux qui ne OO, est indirectement découlant de son programme à partir de la nature.

3voto

north5 Points 163

Je travaille dans le traitement de l'image, de traiter avec les blobby des objets qui sont trop près à distinguer par simple seuillage. J'ai mis en place un algorithme de segmentation - l'idée étant que si vous visualisez les objets comme des collines, sur une carte, et de calculer le bassin versant de la ligne entre les deux collines, vous pouvez travailler où un objet se termine et commence l'autre.

Je voulais améliorer cet algorithme et comme un peu d'un randonneur me suis retrouvé en haut dans le Lake District, en regardant le panorama de découpage sur les collines et les vallées avec mes doigts (au grand embarras de ma moitié). J'ai aussi été connu pour accoster collègues marcheurs avec des questions comme "d'où vient cette colline, la fin et la prochaine-on commencer? Pourquoi? Et pourquoi ne pas vous compter cette colline?"

Je n'ai pas été jusqu'à prendre mon ordinateur portable avec moi pour le moment. :)

3voto

MRFerocius Points 1448

Quel que soit le concept de la nature, où nous pouvons créer un modèle mathématique (équation différentielle), nous pouvons l’appliquer à la programmation puisque les derniers sont basés sur des fondements logiques et mathématiques, les uns plus que les autres.

Je pense que nous pouvons aussi penser à l'envers, par exemple le modèle d'observateur, de nombreuses espèces implémentent également ce modèle, la chaîne de responsabilité, etc.

C'est une façon intéressante de penser ...

Bon un copain!

2voto

Guge Points 3761

Très souvent.

J'ai parfois allé pour une promenade dans la forêt alors que la réflexion sur un problème. Et le plus souvent, les solutions que j'arrive à avoir quelque chose à voir avec les arbres.

J'ai aussi travaillé sur l'INTERFACE utilisateur des idées inspirées par la physique. En utilisant des concepts tels que la gravité, le magnétisme ou la répulsion électrique à organiser les éléments sur l'écran.

J'ai aussi entendu une fois un discours intéressant sur SOA, croyez-le ou pas. L'idée centrale de la conversation a été que les différents sous-systèmes dans une architecture SOA doivent coopérer à la manière de cellules dans un système biologique. Le sujet est très éclairant sur la façon dont un système complexe peut effectivement travailler, même si elle est construite à partir de composants faiblement couplés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X