Биологически вдохновленное программное обеспечение

Общие алгоритмы:

  • Quicksort (и это - средний анализ сложности), шоу, что рандомизация Вашего входа может быть хорошей вещью!;
  • сбалансированные деревья ( деревья AVL , например), аккуратный способ сбалансировать затраты на поиск/вставку;
  • Dijkstra и Ford-Fulkerson алгоритмы на графиках (мне нравится то, что второй имеет много приложений);
  • LZ* семья алгоритмов сжатия ( LZW, например), сжатие данных звучало как вид волшебства мне, пока я не обнаружил его (давным-давно:));
  • FFT, повсеместный (снова использованный в таком количестве других алгоритмов);
  • симплекс алгоритм, повсеместный также.

Числовой связанный:

  • алгоритм Euclid для вычисления GCD двух целых чисел: один из первых алгоритмов, простых и изящных, мощных, имеет много обобщений;
  • быстрое умножение целых чисел ( Cooley-Tukey, например);
  • повторения Newton для инвертирования / находят корень, очень мощный метаалгоритм.

связанный с теорией чисел:

  • AGM связанные алгоритмы ( примеры ): приводит к очень простым и изящным алгоритмам для вычисления пи (и намного больше!), хотя теория довольно глубока (Гаусс представил эллиптические функции и модульные формы от нее, таким образом, можно сказать, что она родила алгебраическую геометрию...);
  • решето числового поля (для целочисленной факторизации): очень сложный, но вполне хороший теоретический результат (это также идет для алгоритм AKS , который доказал, что НАЧАЛА находятся в P).

я также любил изучать квантовые вычисления ( Shor и Deutsch-Josza алгоритмы, например): это учит Вас думать из поля.

, Как Вы видите, я немного склоняюсь к ориентированным на математику алгоритмам:)

7
задан nbro 20 August 2018 в 14:23
поделиться

6 ответов

Многие концепции, первоначально наблюдавшиеся в биологии, были использованы в программном обеспечении. Например Генетический алгоритм (GA).

Искусственная жизнь (AL) раскрывает / использует несколько принципов биологии, таких как устойчивость к несовершенным фрагментам кода , адресация по содержанию , несовершенное воспроизведение (в некоторых реализациях также сексуальное, то есть воспроизводство, управляемое множеством организмов) и нецелевая функция полезности . Интересным результатом AL является спонтанное производство макроэлементов, наблюдаемых в таких областях, как экология или эпидемиология (области, в значительной степени подверженные влиянию биологии), такие как появление паразитов и даже организмов, которые пользуются преимуществами паразитов или тонких хищников. хищные отношения.

Может быть, можно сказать, что программное обеспечение прошло «полный круг» с некоторыми экспериментами в вычислениях, в которых используются настоящие (углеродные) молекулы ДНК (или РНК)! Оригинальный эксперимент в этой области (ссылка в формате PDF) профессора Олдермана (известного в ЮАР), который закодировал различные элементы задачи, связанной с графом (гамильтонов граф), с помощью различных молекул ДНК и позволил огромной параллельной вычислительной мощности биологических химия сделает все остальное и решит проблему!

Вернувшись в цифровой мир, но с сильным вдохновением из биологии и действительно из анатомии коры головного мозга, а также из многих теоретических и клинических наблюдений в области нейробиологии, мы имеем ] Нейронные сети (NN). В области NN, возможно, заслуживает особого внимания, находится модель иерархической временной памяти Numenta , которая,

5
ответ дан 6 December 2019 в 07:06
поделиться

Если ваш вопрос означает «использовались ли биологические идеи для оптимизации программного обеспечения?» тогда Генетическое программирование ( http://en.wikipedia.org/wiki/Genetic_programming ) является одним из примеров. Из статьи в Википедии:

В искусственном интеллекте генетическое программирование (GP) - это методология, основанная на эволюционных алгоритмах, вдохновленная биологической эволюцией для поиска компьютерных программ, которые выполняют определяемую пользователем задачу. Это специализация генетических алгоритмов (ГА), где каждый человек представляет собой компьютерную программу. Следовательно, это метод машинного обучения, используемый для оптимизации совокупности компьютерных программ в соответствии с условиями пригодности, определяемыми способностью программы выполнять заданную вычислительную задачу.

Если ваш вопрос означает «какие программные технологии были вдохновлены биологией?» тогда см. в более общем плане http://en.wikipedia.org/wiki/Bio-inspired_computing . Я ожидал, что несколько других методов, таких как муравьиные рои ( http://en.wikipedia.org/wiki/Ant_colony_optimization ) и нейронные сети ( http://en.wikipedia.org/ wiki / Neural_network_software ) также можно использовать.

5
ответ дан 6 December 2019 в 07:06
поделиться

Искусственные нейронные сети - еще один классический пример. Программное приложение, как правило, предназначено для распознавания образов и прогнозирования поведения сложных систем.

4
ответ дан 6 December 2019 в 07:06
поделиться

Оптимизация муравьиной колонии , метод поиска / оптимизации и искусственная жизнь, такая как Игра жизни Конвея

4
ответ дан 6 December 2019 в 07:06
поделиться

В большинстве ответов пока говорится об ИИ. Заголовок вашего вопроса намекает на программное обеспечение, которое прячется, чтобы не быть обнаруженным.

У нас есть вирусы.

У нас есть охотники за вирусами ...

Я сам, я даже спрятал некоторые ошибки в своих собственных программы ...: (

4
ответ дан 6 December 2019 в 07:06
поделиться

Alan Kay (the object technology pioneer) spoke at length about the influence of biology in the OOP paradigm. He's got a series of ideas about how objects are like "cells" and that OOP scales in a similar way to the way that cells can scale to produce massive architectures...

You can follow quite a bit of this in his Turing Award Speech: http://video.google.com/videoplay?docid=-2950949730059754521# - Перейти примерно к отметке 30:55

3
ответ дан 6 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: