Пиши и продавай!
как написать статью, книгу, рекламный текст на сайте копирайтеров

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28

char xl [80]; /* рабочая переменная */

strcpy(xl,x); /* подготовка к работе */

xl[0]=0;strcat(xl,&xl[l]); /*D1 */

strcat(xl,y); /*xl+y*/

for(j=0;j<2;j++) { 1=strlen(xl); xl[I]=0;} /* Dn */

strcat(xl,x); /*xl+x*/

for(j=0;j<2;j++) { 1=strlen(xl); xl[I]=0;} /* Dn */

strcpy(xl); /* возвращение управления */

return;

}

Ничто не мешает предложить аналогичный подход для моделирования ситуаций в биологическом, социальном и компьютерном мирах.

Анализируя ситуации социальной жизни людей, можно ввести ЭД типа: «бежать», «идти», «сидеть», «ехать», «говорить», «рождаться», «умирать», «повеситься» и т.п. Можно даже ограничить это множество, скорректировав его действиями «не убий», «не возжелай».

Для компьютерной программы в качестве ЭД могут выступать операции: «писать», «читать» и т.д.

Понятно, что подобные СР-сети не являются панацеей от всех бед и не предлагают универсальной эвристики, пригодной для всех случаев жизни. Они могут стать лишь еще одним инструментом в руках художника, рисующего собственную жизнь.

Серьезным недостатком изложенного подхода является его «непробиваемая» целеустремленность – стремление на каждом шаге увеличивать значение целевой функции. В приведенных примерах подобный путь привел к успеху, но это не означает, что так будет всегда; хотя, с другой стороны, целевой функцией, как, впрочем, и множеством ЭД всегда можно варьировать.

Пути улучшения ситуации видятся в направлении распараллеливания процессов. Например, если, решая выше приведенную задачу по обработке символьных строк, допустить параллельность в формировании СР-сети, т.е. наращивать сеть не только по единственному пути максимального увеличения значения целевой функции, а по нескольким направлениям, при этом разрешая использовать на каждом этапе все имеющиеся на данный момент результаты по всем возможным направлениям, то шансы найти выход в лабиринте решения задачи могут быть значительно повышены, см. следующий рисунок:

Обобщить сказанное и подвести итог представляется возможным в виде следующей схемы:

1.        Элемент системы является простейшей неделимой частицей – формальным нейроном.

2.        Каждый нейрон способен к одному элементарному действию из некоторого наперед заданного множества, куда входит действие – «ничего не делать». В общем случае в множество ЭД могут быть включены как арифметические операции, так и специальные алгоритмы, мемо-функции. Наличие ЭД «ничего не делать» равносильно отсутствию нейрона.

3.        На начальном этапе система представляет собой множество нейронов с ЭД «ничего не делать», на каждый из которых может оказываться воздействие со стороны нескольких входов и одного выхода. Разницу между получаемым выходным значением и требуемым выходным значением назовем напряжением.

4.        Считаем, что возникшее напряжение должно компенсироваться изменением у нейронов присущих им ЭД. Изменение ЭД «ничего не делать» на любое другое приводит к рождению нейрона для системы. Предположим, что нейронов должно возникать ровно столько, сколько необходимо для компенсации напряжения.

5.        Считаем, что при рождении нейронов выбирается нейрон с тем ЭД, которое максимально способствует минимизации напряжения. Значение напряжения, которое компенсируется рожденным нейроном, назовем жизненной силой нейрона; считаем, что если на нейрон действует напряжение, превосходящее его собственную жизненную силу, то нейрон гибнет.

Таким образом, было показано, что в основе моделей, предназначенных для исследования серьезных качественных изменений работы системы, с успехом можно использовать саморазрушающиеся и самовозрождающиеся нейросети. Были даны основные определения, предложен механизм и приведены необходимые примеры, достаточные, на мой взгляд, для самостоятельной практической реализации изложенного подхода к различной областям жизни.

Новизна и эффективность данного подхода построения самообучающихся систем определяется применением для корректировки имеющегося знания не только коэффициентов ряда, с помощью которого апроксимируется неизвестная функция, а в первую очередь, операций между компонентами числового ряда с последующей корректировкой коэффициентов. Подобный подход позволяет значительно упростить схему работы самообучающейся системы в том случае, когда эта система используется для выделения в потоке данных аналитических зависимостей, построенных на базе таких действий, как сложение, вычитание, умножение и деление. При необходимости перечень действий всегда может быть расширен и дополнен не только известными математическими операциями типа логарифмирования и возведения в степень, но и алгоритмами, включающими реализованные программно мемо-функции, а также сам алгоритм самообучения. В этом случае речь может идти уже не столько о классическом программировании, сколько о написании сценария или задании сюжета произведения.

В этой связи интересно посмотреть на аналогии, прослеживающиеся в современных технологиях проектирования программного обеспечения для ЭВМ, и, в частности, на объектно-ориентированное программирование в среде Windows, в котором объекты рождаются, наследуя свойства, и умирают, возвращая память.

Цитируется по книге Э. Телло «Объектно-ориентированное программирование в среде Windows» (М.: «Наука-Уайли», 1993):

«Объектно-ориентированное программирование это способ программирования, обеспечивающий модульность программ за счет разделения памяти на области, содержащие данные и процедуры. Области могут использоваться в качестве образцов, с которых по требованию могут делаться копии.

Весьма удобно рассматривать объекты как попытку создания активных данных. Смысл, вкладываемый в слова «объект представляет собой активные данные», основан на объектно-ориентированной парадигме выполнения операций, состоящей в посылке сообщений.

В посылаемых объекту сообщениях указывается, что мы хотим, чтобы он выполнил. Так, например, если мы хотим вывести на экране строку, то мы посылаем строке сообщение, чтобы она изобразила себя. В этом случае строка это уже не пассивный кусок текста, это активная единица, знающая, как правильно производить над собой различные действия».

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28

сайт копирайтеров Евгений