Новости Библиотека Учёные Ссылки Карта сайта О проекте


Пользовательский поиск





предыдущая главасодержаниеследующая глава

Пойди туда, сам не знаю куда

 Навстречу ему Балда 
 Идет, сам не зная куда.

А. Пушкин

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

Итак, нужна ли Искинту нечеткость?

Иду по улице. Слушаю разговоры.

- Андрей еще молодой человек, - убеждает одна пожилая женщина другую...

Пробую угадать, сколько лет Андрею - тридцать или пятьдесят. Не успеваю решить, как доносится иное:

- Недавно привязался ко мне мастер, дескать, много браку гонишь. Я ему отрезал: работаю не хуже других!..

Пытаюсь определить количественно, что означает "недавно" в жалобе молодого рабочего: вчера, на прошлой неделе, 30-го числа минувшего месяца? И что значит "много браку" - 2 процента или 50 процентов всей продукции? И как понять "не хуже других"? Не хуже соседей, работающих на станках слева и справа, или не хуже всего участка, или?..

Может быть, и удалось бы понять, но новые неопределенности обрушиваются на меня лавиной.

- На улице довольно холодно...

- У Василия отличные перспективы...

- Мария неудачно вышла замуж...

- В эту ночь я почти не спал...

- Конфеты удивительно вкусные...

- Вы очень любезны...

- Он живет далеко от работы...

- Ты его сразу узнаешь: высокий, красивый мужчина...

Боже мой, как нечетко, как размыто выражаются люди! Ни тебе меры, ни числа. И тем не менее они отлично понимают друг друга.

Я вдруг осознаю, что эта нечеткость, эта расплывчатость свойственна не только нашим словам. Вот иду по улице и почти не замечаю лиц. Речи людей слышу (на них сосредоточено все мое внимание), а вместо лиц - туман. Ладно, а дома я вижу?

Опыт с циферблатом
Опыт с циферблатом

Кое-какие и кое-как. Только чтобы не наткнуться, только чтобы не пропустить нужный мне дом.

Который теперь час? Перед моими глазами проявляется, становится резким циферблат уличных часов, который до этого я просто не видел, хотя вроде бы и смотрел на него. Ага, начало четвертого!

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

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

Похоже, что нечеткость является фундаментальной чертой человеческого мышления. А математика, на которой базируется Искинт, четкая, количественная, правильная. У такой математики нет ничего общего с нашим обыденным пониманием мира, с нашими доводами, сомнениями и решениями. Ей, якобы всесильной, не по плечу нечеткая человеческая мысль; она, вроде бы всемогущая, легко заблудится в размытом мире человеческих решений. Математика бесполезна для Искинта - сбросим этот балласт с атомохода современности!

А может быть, лучше сбросить с атомохода само человеческое мышление? Велика ли ценность - туманное, расплывчатое, нечеткое? Не лучше ли правильный, формульно-теоремный, неукоснительный стиль математики?

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

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

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

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

Чтобы понять такое явление, как Гулливер, великанам нужно было не стремиться измерить его четкой бробдингнегской мерой, а предпочесть размытость и нечеткость. Важно было предположить существование других миров, в которых разумные существа имеют более скромные размеры. Сделав это нечеткое, но сильное заключение, великаны могли бы многое узнать от Гулливера, который ко времени научного обследования уже неплохо владел бробдингнегским языком.

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

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

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

Математические опыты Гулливера в стране великанов
Математические опыты Гулливера в стране великанов

Глубокое заблуждение. Бессмысленно, например, привязывать ход мысли к осям X, У и Z, будто это орбита космического корабля. Горы чисел-координат исчерпывающе расскажут о движении корабля и ничего не сообщат о мысли. Для очень сложных систем - мышления, языка, общества - нужно жертвовать точностью, чтобы проникнуть в сущность.

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

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

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

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

Количественная математика споткнулась об эту организованную сложность. Ее орудия, отточенные в других боях, оказались здесь почти бесполезными, как бессильны дротики дикарей против ружейного огня колонизаторов. А мы, привыкшие к победному маршу математики, не желаем взглянуть правде в глаза: веруем в математику, в ее количественную непогрешимость.

Построить Искинт без математики, конечно, нельзя. Но нужна новая математика - математика нечетких объектов.

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

Чтобы построить Искинт, нужно не просто развитие математики, нужна коренная революция в математике.

Двенадцать лет назад на одном международном совещании я услышал горячее, по-восточному темпераментное выступление американского ученого Лофти Заде, который рассказывал о фази-множествах.

Понятие "множества" - одно из основных в математике; на него опираются и алгебра, и геометрия, и логика. Что такое "множество" - известно. А вот что значит "фази"?

Если от английского произношения докладчика вернуться к латинскому написанию слова, оно из "фази" превратится в "фузи". И это "фузи" встречалось нам еще в школе, скажем, в слове "диффузия". "Диффузия" в прямом переводе - это "разлитие".

Те из читателей, кто любит историю, легко вспомнят, что пушка в петровские времена называлась "фузия" (или "фузея"), то есть "литье".

Литье, разлитие, размытость... Л. Заде говорил о размытых множествах!

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

Размытое множество устроено совсем иначе. Если это и клуб, то клуб с мягкими правилами: вместо непременного членства здесь большая или меньшая склонность, степень принадлежности, мера близости. Скажем, утверждение "молодой" будет выглядеть на языке размытых множеств так:

молодой =0,1/15+0,9/20+1,0/25+0,7/30+0,2/40+0,1/50

Прочтем эту запись. Числа 15, 20, 25, 30, 40 и 50 означают возраст. Молодому человеку может быть и 15, и 20, и 25, и 30, и 40, и 50 лет. К каждому возрасту привешен своеобразный ярлычок - мера близости. Для 15 лет эта мере невелика - всего 0,1. Столь же мала она для 50 лет. Зато для 25 лет она максимальная - 1,0.

Значит, "молодой" - множество возрастов, в которое, безусловно, входит 25 лет, чуть в меньшей степени 20 лет, еще в меньшей - 30 и совсем в малой - 15 или 50. Перед нами спектр чисел, передающий оттенки понятия "молодой". Если сравнить смысл слова "молодой" со сложной краской, то формула представляет собой как бы рецепт составления ее из простых тонов: возьми 0,1 часть возраста "15 лет", смешай ее с 0,9 частями возраста "20 лет", добавь к смеси 1,0 части оттенка "25 лет"...

Спору кет, любопытная запись. Но полезная ли? Понятие "молодой" мы определили, а дальше что? Предположим, о человеке говорят - "очень молодой". Позволяет ли теория вычислить, что это означает? Да. Вот результат:

очень молодой=молодой2.

Вы не ошиблись, читатель, правая часть формулы гласит: "молодой в квадрате". В точности как в школе: у=х2.

Ну а если сказать - "не очень молодой и не очень старый", смысл сего нечеткого заявления можно исчислить? Пожалуйста:

не очень молодой и не очень старый=∇ (молодой)2 ∩ ∇ (старый)2.

Перед нами снова формула, в которой, быть может, не все символы вам знакомы. И бог с ними - не стоит тратить время на подробности, потому что вам отлично знакомо главное, потому что в новой одежде вы узнали старых друзей: у=х2, z=х22 и другие, и прочие, и прочие. Алгебра это!

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

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

Каждому из нас. приходилось в ответ на вопрос, знакомы ли мы с определенным предметом, отвечать: "более или менее", "в некоторой степени", "слегка". Мы наращиваем нечеткость, когда хотим проявить осторожность и не делать опрометчивых суждений. Нечеткая алгебра возвела человеческую уловку в правило математики.

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

дряхлый=очень-очень старый=старый4.

Остается еще раз удивиться мудрости Р. Декарта. Это он стал первым записывать показатель степени в виде маленькой цифры над переменной. И это он ввел в науку само понятие переменной. Ф. Энгельс так оценил нововведение: "Поворотным пунктом в математике была Декартова переменная величина, Благодаря этому в математику вошли движение и тем самым диалектика".

Про главную идею Р. Декарта резонно еще сказать "могучая". И тогда сегодняшняя нечеткая алгебра окажется не только плодом трудов Л. Заде, но и результатом творческого импульса, данного науке Р. Декартом.

Математика нечетких объектов, конечно, математика сведения. Внешний, физический мир сначала сводится к словесному описанию. Словесное описание, в свой черед, сводится к функциям от размытых переменных. Размытые переменные сводятся к простейшим переменным, а эти амебы нечеткой математики уже измерены и описаны с помощью чисел (вспомните наше "молодой").

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

Незачем сбрасывать старую математику с атомохода современности: застопорится атомоход. Но изменить взгляд на математику стоит.

Дело математики не только количественные явления, но и качественные, не только числа, но и смыслы. Дело математики не только точность, но и расплывчатость.

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

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

В голову приходит, что н само слово "конфуз" из фузи-семейства. Чтобы не вышло конфуза, не будем считать теорию Л. Заде полной и окончательной победой над расплывчатостью. Скорее теория размытых множеств - смелая разведка в стратегически важном направлении, дерзкая попытка взять расплывчатость штурмом.

Чем она окончится, предсказать трудно. Сегодня Л. Заде наступает. Он призвал под свои знамена Ричарда Беллмана, известного специалиста по математической теории принятия решений, и вдвоем они изучают феномен "принятие решений в расплывчатых условиях". Речь идет о сложных, многошаговых решениях, для которых Р. Беллман раньше изобрел изящный метод - динамическое программирование. Теперь четкое динамическое программирование становится нечетким. Р. Беллман пробует старый ключ к новой двери.

Аналогия с ключом принадлежит ему самому. Он заметил как-то, что в руках у каждого математика только один ключ - излюбленные его методы и приемы. Математик идет по улице, называемой реальностью, и пробует открывать своим ключом разные двери. "Если вам повезет, - напутствует математика Р. Беллман, - найдется дверь, которая откроется, ну а если нет - вы встретите только закрытые двери. Но никто не знает, что за закрытой дверью".

Этого и вправду не знает никто, и потому мы вставим наш ключ, наши расплывчатые методы, в замочную скважину двери, па которой написано "Алгоритмы".

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

Начнем с алгоритма узнавания. Вы билетер в кинотеатре и хотите добросовестно не пропускать па фильм о зарубежной любви детей до 16 лет. Проходят мимо вас люди. Вот этот, ему 16 или меньше? Ростом вроде вышел, да выражение лица младенческое, и робок очень. А этот, маленький, лезет, напирает, небось уже паспорт в кармане или просто нахал? Девица! И тени, и помада, и парик, ну точно, мамин парик, а сама в пятом классе...

Вы принимаете быстрые и однозначные решения - пропустить или задержать, "да" ИЛИ "нет". И вы редко ошибаетесь, хотя работаете с размытыми признаками по размытым правилам.

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

Если нужна полная запись нечеткого алгоритма, то, пожалуй, не сыщешь лучше этой.

Тот, кто не знает и не знает, что он не знает,

- глупец, избегай его.

Тот, кто не знает и знает, что он не знает,

- может научиться, научи его.

Тот, кто знает и не знает, что он знает,

- спит, разбуди его.

Тот, кто знает и знает, что он знает,

- пророк, учись у него.

Придадим старинному персидскому поучению формальный вид; оно станет менее поэтичным, зато более строгим.

1. Он что-нибудь знает? Неть да! (запомнить).

2. Он знает, что ничего не знает? Нет2, да2 (запомнить).

3. Если нет1 и нет2, то "глупец, избегай его".

4. Если нет1 и да2, то "может научиться, научи его".

5. Если да1 и нет2, то "спит, разбуди его".

6. Если да1 и да2, то "пророк, учись у него".

Персидский алгоритм содержит целую гроздь размытых понятий (выделены курсивом). Он относится к числу алгоритмов распознавания, но распознаванием дело не ограничивается; перед нами еще и алгоритм действий: избегай его, научи его, разбуди его, учись у него.

Каждое действие не детализировано, названо в общем. Оно детализируется другим размытым алгоритмом. Скажем, алгоритм "Избегай его":


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

Например, когда глупца нет поблизости, мы, минуя все шаги алгоритма, переходим к его 10-му, последнему, шагу: радуемся и вздыхаем свободно.

Совсем другой оборот принимает дело, когда глупец настигает вас (ответ "да" на шаге 9 алгоритма). Приходится возвращаться к шагу 2 - вновь прятаться, пережидать опасность. В нечетком алгоритме прорастает цикл. А за ним и второй: от шага 4 к шагу 1.

Все алгоритмы, о которых шла до сих пор речь, я бы назвал получеткими: переменные в них действительно размытые, а логика (ответы на вопросы) строгая: только "да" или "нет", "истина" или "ложь", 1 или 0.

Размывать так размывать! Размоем саму логику. Когда-то остроумный философ сравнил логику с перилами моста; она хотя и не руководит процессом мышления, но ограждает человека от ошибок. Как вам правится, читатель, размытый мост с нечеткими перилами? Сохраним обозначение 1 для полной истины и 0 для совершенной лжи. Тогда приблизительная истина будет

числом, близким к 1, а несовершенная ложь - к 0. Запишем:

да=1/1+0,8/0,9+0,7/0,8.

Напомним суть такой записи: в размытое множество по имени "да" обязательно входят: полная истина (1); с мерой близости 0,8 в него включается почти полная истина (0,9) и с функцией членства 0,7 более или менее истина (0,8). Само собой, размытому "да" соответствует его размытый антагонист:

нет=1/0+0,8/0,1+0,7/0,2.

Теперь внимание, читатель! Новые "да" и "нет" похожи на тройные зеркала; в этих трельяжах появляются сразу три изображения, причем в разной степени четких. И за каждым изображением другая страна, иное Зазеркалье.

Та же мысль, но изложенная суконным языком: алгоритм распараллеливается, открываются три положительных и три отрицательных пути.

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

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

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

Итак, размыты и шаги алгоритма, и его проверки - ветвления. Что же осталось? Что сохранилось от первоначальной жесткой конструкции, от стального моста через проблему?

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

Так долой обязаловку! Пусть майский дождь, бесшабашный и непочтительный, размоет и этот последний бастион четкости! Пусть после каждого выполненного шага будет разрешено поступать и так, и этак, и еще как-нибудь. Лишим алгоритмы порядка!

Вы каменщик и строите дом. Запасены материалы для стройки - кирпичи простые и фасонные, балки, панели, рамы. Известны правила строительства, их несколько, скажем, десять правил. Каждое из них гласит: "вместо детали У разрешается подставить деталь Z". Конечно, У и Z м()гут быть самыми различными, но правило - это всегда разрешение на замену, на подстановку, и ничего больше.

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

Забавное получается строительство! Вместо того чтобы просто класть кирпич за кирпичом, вы все время заменяете одни детали другими. Если все кирпичи одинаковые, вы вообще топчетесь на месте: один кирпичик вынул, другой вставил - итог пулевой. Но кирпичи-то разные. Вместо простого кирпичика - панель, вместо панели - блок, вместо блока - секцию.

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

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

Все, да не все. Алгоритм без принуждения действительно допускает строительство множества разных домов. Но всегда правильных, всегда подчиненных правилам, тем правилам подстановки, с которых начиналась работа. Правила многое разрешают, однако не в ущерб делу. Дверь вместо окна на первом этаже разрешают, а на втором - нет. Круглое окно вместо квадратного можно всюду, а про пол взамен окна - не найдешь такого правила. Алгоритм без принуждения годится для строительства и маленьких домишек, и огромных домин, и промышленных зданий, и дворцов... Быть может, у вас, читатель, складывается впечатление, что автор, восхищенный разнообразием результатов работы такого алгоритма, многолпкостыо порождаемых им сооружений, предлагает изменить практику строительных работ? Отказаться от гор проектной документации, а взамен вооружить прорабов СМУ новоявленным алгоритмом?

О нет, цели автора совсем иные. Меня сейчас интересует другое строительство, не реальные дома, а воздушные замки, не грубые кирпичи, а нежные слова. Для начала всего три слова: "Петр", "кашу" и "ест". Впрочем, удобства ради добавим к ним четвертое: . Жесткий алгоритм, алгоритм с принуждением, предписывает нанизывать слова в следующем порядке: сначала "Петр", потом "ест", затем "кашу" и в конце . Получается:

Петр есть кашу .

Если сохранить тот же порядок нанизывания слов, если не менять алгоритм, а только ввести в него цикл, наши бусы станут расти:

Петр ест кашу Петр ест кашу Петр ест...

И так далее. Ест, пока не надоест. А надоест быстро, скучные бусы повторяют одну и ту же фразу, однообразно и уныло.

Что ж, введем разнообразие. Ослабим чуть-чуть жесткость алгоритма. Пусть порядок сборки предложения остается прежним, кроме одного исключения: последнее слово выбирать по правилам

ПС -> паштет,

ПС -> яблоко,

ПС -> начальство глазами,

ПС -> щи суточные,

ПС -> жену поедом,

ПС -> Петра.

Все эти правила устроены одинаково: в левой их части стоит метка последнего слова (ПС), а в правой само это слово; стрелка означает разрешение на замену.

Алгоритмы построения слов
Алгоритмы построения слов

Наш новый алгоритм приводит сначала к промежуточной форме:

Петр ест ПС .

А потом происходит замена этого ПС:

Петр ест яблоко Петр ест паштет Петр ест паштет Петр ест яблоко ...

Стоп, присмотримся к быстрорастущим бусам. Первым в нашем списке правил было слово "паштет", но алгоритм разрешал брать любое слово, необязательно первое - вот и началось все с яблока, а могло со щей или с начальства. Во втором отрезке бус появился "паштет", а третий в точности повторил второй. Здесь опять сказалось простое, но коварное разрешение использовать любое слово. А любое - значит можно включать одно и то же произвольное число раз!

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

Петр ест щи суточные Петр ест жену поедом Петр ест начальство глазами Петр ест яблоко Петр ест Петра

Здесь просматривается уже зародыш сюжета, становится интересным, к чему приведет неумеренный аппетит нашего героя? Уж не к самоедству ли? Или Петр обычный людоед? Чем все это кончится? А ничем не кончится. Не живой он, этот Петр. Подобие жизни создано небольшим отклонением от обязательного порядка нанизывания, небольшим послаблением в алгоритме.

Снимать ограничения можно и дальше. На этом пути обнаружится, что "Каша ест Петра", "Паштет ест начальство глазами" и "Яблоко ест щи суточные". Заметьте, все это правильно построенные русские фразы, хотя смысл некоторых из них труднопостижим.

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

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

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

А произошло оно, это чудо из чудес, как-то само собой, безо всякого видимого напряжения. И не объяснить себе самому, как оно вышло, как получилось...

Тут слышу я спокойный и ровный голос читателя, который неприятно поражен неумеренными моими восклицаниями.

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

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

- Как что? Мы им подражали!

- Иными словами, повторяли в точности порядок слов примера?

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

- Сколько же языковых формочек хранится, по-вашему, в памяти пятилетнего человека?

- Ну, десять или тридцать, точно не знаю. Специалисты, вероятно, сосчитали.

- Сосчитали. Для того чтобы действительно овладеть родным языком, чтобы свободно понимать и говорить, не ощущая трудностей, нужно больше формочек (по-научному - моделей использования языка), чем секунд в жизни человека.

- Уму непостижимо!

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

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

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

- Право же, у вас нет права так говорить, права теория Хомского, а не вы.

- Что, что?

- Право же, у вас нет права так говорить, права теория Хомского, а не вы, - повторит автор и продолжит: - Я произнес фразу, начисто опровергающую ваше предположение о вероятностях встречи. Она, моя фраза, напичкана словами "право", как булка изюмом, хотя вероятность встречи двух слов "право" в одной русской фразе мала.

- Вы придумали искусственный пример!

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

- Разорвали мое предложение, вставили в разрыв кучу всякой белиберды, а теперь радуетесь.

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

- Согласен, - ответит вдумчивый читатель. И, согласившись, бесстрашно пойдет дальше: - Между двумя словами с высокой вероятностью встречи, между близкими друзьями, безжалостно разлучая их, располагается со всеми удобствами любое число других слов. Моя теория вероятностей противоречит фактам языка. Отбросим ее. Как же тогда ребенок из бессловесного становится говорливым? Шаблоны не сочтешь... Вероятности не работают... Что же тогда?

- Порождающая грамматика, предложенная Н. Хомским.

- Малолетка действует на манер вашего фантастического каменщика? Но у того был список правил, в который он время от времени заглядывал. А ребенок откуда взял правила порождающей грамматики? Наизусть выучил? Чушь какая-то! Этих правил ему никто никогда не рассказывал, даже не намекал.

- Я не говорил о том, что ребенок выучивает правила наизусть. Это вы, уважаемый читатель, все время склоняетесь к унылому заучиванию. Сначала шаблонов, потом вероятностей, теперь правил. Ребенок не выучивает правила...

- Конечно, не выучивает! Очень нужны ему, живому и смышленому, эти бесплодные подстановки!

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

- Вы утверждаете, что в колыбели ребенок становится лингвистом-теоретиком?

- Судите сами. Восемнадцати месяцев от роду ребенок начинает произносить первые предложения. Каждое предложение состоит всего из двух слов: "мама пруа", "Ваня там" или "дай часы".

- Какие же это предложения! Просто комбинации известных ребенку слов...

- О нет, это доподлинные предложения, подчиненные строгим правилам грамматики. Два слова, но у каждого четкая роль. Одно слово главное, опорное, выражающее суть дела. А другое вспомогательное, уточняющее, детализирующее. К опорному "пруа" ребенок присоединяет и "мама", и "баба", и "би-би" (то есть "автомобиль"), и десятки других слов. К опорному "там" можно добавить все, что увидел, все, что обращает на себя внимание, что понравилось.

- А к опорному "дай" - все, что хочешь срочно, немедленно, обязательно хочешь получить, иначе...

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

Язык - инструмент, без которого ребенок не может обойтись в своей деятельности.

- Деятельность в восемнадцать месяцев. Не смешно ли звучит?

- Нисколько. Маленький человек занят огромной деятельностью - он осматривает, ощупывает, опрашивает - да, да, опрашивает мир, населенный другими людьми, животными и вещами. Вот как крепнет его оружие. В восемнадцать месяцев он владеет четырнадцатью двухсловными предложениями, через месяц - 24, еще через месяц - 54 и далее - 89, 350, 1400 предложениями. К двум годам он использует 2500 различных двухсловных предложений. Теперь топорная грамматика для двухсловных предложений становится тесной, как распашонка. Под давлением необходимости узнать или сообщить более сложные вещи ребенок изобретает многоуровневую грамматику. Прислушайтесь к детской речи. Мы как бы участвуем в самом процессе порождения. "Кошка... - говорит малыш и добавляет: - Кошка встала... - И снова добавляет: - Кошка встала стол", интонацией выделяя слово "стол" как место, необычное место, которое заняла теперь кошка.

- Что же, родители не помогают ребенку, мать не исправляет его ошибок?

- Помогают, исправляют. Но... Но большинство родителей мало озабочены грамматической неправильностью. Если малыш говорит "дай кукла", а тянется к мячу, вот тогда мать обязательно корректирует: "Это не кукла, а мяч", а если по сути все правильно, подает ребенку куклу чаще всего безо всяких исправлений.

- Выходит, ребенок сам исправляется, слушая правильную речь взрослых?

- Так тоже не выходит. Одна дотошная лингвистка записала на магнитофон все, что слышала ее дочка от рождения до трех лет.

- Любопытно. Что же выяснилось?

- Значительная часть предложений, которые слышала девочка, была неправильно построена, не соответствовала требованиям языка.

- Ай, ай, ай! Ребенка кормили дефектными предложениями!

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

- Тем не менее девочка выучилась говорить по-русски.

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

- Откуда все же ученые знают, что он ее строит и перестраивает? Он что, рассказывает им отдельные правила?

- Нет, это не под силу даже взрослым. Мы не осознаем своей грамматики, как не осознаем своих правил ходьбы, неприязни или восхищения. А ребенок. У детей есть эффект, который ученые прозвали. "Бух-бух, стреляю!". Вы, положим, спрашиваете у двухлетнего Вани, как правильно сказать: "много стулов" или "много стульев", а Ваня отвечает: "бух-бух, стреляю!" Для детей изобретаются особые задачи, привлекательные, веселые, игровые, сказочные, с картинками. И особенности их порождающей грамматики мы вскрываем не напрямую, а косвенно, анализируя ответы ребенка.

- Косвенно... Значит, в мозгу ребенка может находиться совсем не порождающая грамматика, а нечто другое?

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

- Согласен, - ответит выдуманный и потому послушный авторскому произволу читатель.

А для читателей подлинных я приведу еще несколько доводов.

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

Сила теории проявляется далее в ее динамичности. Предложения не штампуются в готовом и застывшем виде, а возникают в процессе речи, производятся шаг за шагом, порождаются составляющая за составляющей. Здесь Н. Хомский очень близок к замечательному советскому психологу Л. Выготскому, который еще в 1934 году писал: "Мысль не воплощается в слове, а совершается в слове".

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

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

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

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

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

Математика нечетких объектов вполне справится с этой ситуацией. Компьютер, вооруженный нечетким алгоритмом, не оплошает: найдет, куда идти, решит, что взять, и вернется когда положено. Для облегчения физического труда человечество изобрело тысячи различных машин, а для автоматизации труда умственного придумана пока лишь одна серьезная машина - электронная вычислительная. В этой и предыдущей главах мы осознали ее реальные возможности, оценили пробивную силу четких и охватывающую гибкость размытых алгоритмов. Теперь стали нам по плечу реальные программы Искинта.

предыдущая главасодержаниеследующая глава




Rambler s Top100 Рейтинг@Mail.ru
© Злыгостев Алексей Сергеевич, 2001-2017
При копировании материалов активная ссылка обязательна:
http://nplit.ru 'NPLit.ru: Библиотека юного исследователя'