Рассматривая русскоязычный рынок компьютерных игр со словами, можно обнаружить весьма удручающую картину - разработок мало и все они вертятся вокруг нескольких идентичных идей типа сканвордов, кроссвордов, "угадай слово по буквам", и... уже редко "Быки и коровы". А ведь их очень много.
Причем очень многие головоломки начали свое активное развитие именно во второй половине прошлого столетия, начиная с 60-х годов. Ими были увлечены студенты, ученые. Разрабатывалось множество разновидностей, часть из которых потов вырастали в мощные исследовательские работы с привлечением вычислительных способностей ЭВМ. Стоит напомнить, что именно в тот период начиналась "война" шахматных компьютерных интеллектов. Естественно, на их базе откатывались и другие интересные алгоритмы. Причем достаточно часто играли именно в слова. Эти головоломки не менее интересны, чем обычные логические игры, причем часть из них достаточно интересна, с точки зрения обучения основам программирования, работы с данными.
В общем, обо всем по порядку. А для начала давайте приведем несколько примеров.
Угадай слово в усложненном виде
Речь идет не об упрощенном варианте, который мы можем найти в "виселицах", "Поле чудес" и т.п., а о более сложном, требующем и математических навыков. Один игрок загадывает слово. Второй же, чтобы его рассекретить, говорит другое. Например, загадано ПОЕДИНОК, а произносится МОЛОКО. Загадывающий называет не букву, а число: количество букв в названном, которые присутствуют в исходном. То есть в данном случае он скажет 4. Из этого можно понять: в загаданном слове присутствуют О и одна из согласных (М, Л, К, О не подходит, поскольку О у нас три). И так шаг за шагом все и разгадывается. Причем игра была настолько интересной с исследовательской точки зрения, что стали разрабатываться специальные алгоритмы для определения наличия той или иной буквы за минимальное количество ходов. Например, одноходовый вариант: БОБ. Если ответят 1, то значит есть О, если 2, то Б, а если 3, то и О, и Б. К таким решениям относятся ДЕД, ОКО, ПУП, ПОП, ШИШ, что интересно, БАОБАБ (все три буквы в разном количестве), МИМ. В общем, над этим трудились очень многие :).
Почему мы остановили свое внимание именно на этой игре, в первую очередь? Все дело в том, что, даже отгадав все буквы из данного слова, можно столкнуться с анаграммами.
Анаграммы
Что это такое? Напомним. Анаграммами называются слова, которые имеют в своем составе одни и те же буквы в одинаковом их количестве, но с разной расстановкой. Например, ШНУРОК и КОРШУН. Анаграмм на самом деле достаточно много, а разработчики шахматной программы "Каисса" также заинтересовались самим процессом поиска оных. Для начала они, естественно, взяли на вооружение словарь, в качестве которого послужил 4-томный "Толковый русский словарь" Т. Ушакова. Далее они поступили весьма интересным образом.
В принципе, эту задачку можно давать и студентам. Например, как найти наибольшее количество анаграмм для некоего слова из имеющейся языковой базы. Многие могли бы пойти по пути перебора всех возможных сочетаний и сравнения с имеющимся в той самой базе. А авторы "Каиссы" поступили по-другому. Они сделали для каждого слова из словаря некое подобие быстрой идентификации, для чего расставили все буквы, которые в нем содержатся, в алфавитном порядке. То есть, и у КОРШУН, и у ШНУРОК будет единый идентификатор КНОРУШ. Решение очень элегантное и не требует больших вычислительных мощностей. К тому же для нашего современника эта задачка может решаться на начальном уровне обучения программированию.
Сам алгоритм очень удобен и для решения другой интересной головоломки, которая называется "каркас". Например, в задании дается всего лишь несколько согласных букв (может быть и одна, поскольку в русском языке нет существительных без согласных), например, Т, Н, К, а после этого на их базе требуется создать максимально возможное количество слов с добавлением других букв (гласных, Й, Ь, Ъ). То есть, получатся: КНУТ, ТКАНЬ, ТОНИКА, ОКТАН, НИТКА, ТАНК и так далее. Почему в названии присутствует именно слово "каркас"? Дело в том, что изобретатель этой игры А. Битман (он также участвовал в создании "Каиссы" и программы для поиска анаграмм) выдвинул идею, что во многих случаях, если убрать гласные и оставить согласные, то смысл может быть восстановлен по "скелетам" или "каркасам" слов. Например, "Кмптрн вст", многие могут догадаться, что это зашифровано название нашей газеты. И хотя тут может подойти и "Компьютерная весть", и т.п., данной идеей часто интересовались и позже, поставив перед собой задачу избавления от избыточности и так далее.
Метаграммы
Метаграммы - это цепочки из слов, задача которых получить из изначального конечный результат, изменяя на каждом ходе только одну букву, ничего не переставляя, и все должно быть осмысленно. Например, как из МИГ получить ЧАС: МИГ - МАГ - МАЙ - ЧАЙ - ЧАС.
На самом деле задание не из простых, поскольку требует выбора промежуточных решений с возможностью предсказания последующего развития той или иной ветки. На самом деле метаграмм можно создать достаточно много, причем в свое время очень большое количество любителей и знатоков по всему СССР были заняты именно поиском минимальных вариантов. Классический пример, как превратить МУХА в СЛОН. Конечно, можно предусмотреть и очень длинную ветвь преобразований, но речь шла об оптимальности. Кстати, именно такие задачи в рамках ЭВМ и не решали, это было по плечу только людям.
Конечно, со временем появилась и другая разновидность головоломки, когда разрешалось переставлять буквы местами. Это значительно расширило спектр возможностей преобразования, само количество головоломок.
А вот как оптимально этот вариант сделать в рамках компьютерной программы? Это вопрос к вам, дорогие читатели.
Ассоциативные ряды
А вот это самый интересный момент, на который стоит особо обратить внимание. Ассоциативные ряды достаточно глубоко исследовались психологами. То есть переход от одного слова или понятия к другому происходит не с помощью перестановки букв, а логически связанно, с помощью ассоциаций. Например: ЧАШКА - НАПИТОК - ВОДА - ДОЖДЬ - НЕБО. Или же ЧАШКА - ГЛИНА - ЗЕМЛЯ - НЕБО. В обоих вариантах мы связывали ЧАШКА и НЕБО. В первом случае с чашкой ассоциируется напиток, который в нее наливается, естественно, там есть вода и так далее. Во втором случае мы подразумеваем, что чашка изготавливается из глины, которая находится в земле и так далее. То есть, на самом деле ассоциативных рядов, соединяющих два, иногда абсолютно несовместимых понятия, можно создать множество. А психологи того времени трудились именно над оптимальностью таких рядов и пришли к такому заключению, что смысловое расстояние между отправной и конечной точками может составлять не более шести шагов при любой сложности совместимости.
И что из этого?
Посмотрите на работу современных электронных переводчиков. Ладно, мы даже не от этого будем отталкиваться. Посмотрите на программы текст-в-речь. Какая у них основная проблема в русскоязычном варианте? Правильно, ударения и смысл. "Устройство стОит 4000 бел. руб.". "Курс доллара стоИт на месте". Одно и то же написание "стоит" подразумевает два различных глагола, а отличия идут только по ударениям, причем в тексте эти два предложения могут следовать одно за другим. Конечно, ваш покорный слуга встречал книги, специально преобразованные для алгоритма "текст-в речь", где в таких случаях специально прописывают "стооит" или "стоиит" либо ставят специальные метки для ударений. Но ведь это не единственный такой пример.
Причем, что делает человек, читая предложенные примеры? Ведь он не допустит ошибок. Всему причиной ассоциативность его мышления. То есть, он оценивает окружение, вернее, слова, расположенные вокруг этих глаголов, и воспринимает все соответственно. Следовательно, компьютерным программам нужно учиться тому же. И на самом деле нужно создать алгоритм минимального смыслового шага.
И заметьте один важный момент. Все-таки наука и развитие новых технологий должны быть интернациональными. Ведь вкупе мы используем сейчас изобретения, пришедшие к нам абсолютно из различных мест, от разных культур и народов. И, например, у англоязычных граждан данный вопрос и не стоит как таковой, у них просто все ударения на первый слог. Это русскоязычным нужно искать смысл :))).
Причем, если затрагивать уже электронные переводчики, то и тут существует проблема, решение которой нужно искать только нам. Американцам это не нужно. Например, слово "mixer", что дословно обозначает "смешивающее устройство", у нас имеет несколько смысловых разновидностей. То есть, это может быть микшер для аудиоканалов, миксер для приготовления пищи, а может быть и смеситель. И как сейчас поступят электронные переводчики? В технической документации для звукорежиссеров они могут рассказать о поварском деле, сантехнике и т.п. То есть, опять же, нужно искать смысл. В данном примере в тех же предложениях будут содержаться связующие смысловые элементы. То есть, помимо того, что есть большая словарная база (современные словари очень мощны и обширны), необходим смысловой или ассоциативный движок, которого нет.
Немного об ИИ. Завершение
Любой современный ученый, плодотворно занимающийся данным вопросом, вам расскажет, что человеческий мозг работает на уровне образного и ассоциативного мышлений. Компьютеры и "разумные" роботы этим пока не наделены. Даже более того, им сейчас присущ другой тип мышления - переборно-математический. И на самом деле эта ветка развития поможет создать только хорошего шахматно-электронного стратега. Например, машина Crusher может определять препятствия, автономно выбирать решения по их преодолению либо объезду, но она ведь не знает, что именно за препятствие стоит перед ней - камень, скала, дерево.
Во-вторых, а почему именно шахматы часто берутся за основу или даже базу для ИИ будущего? 90% людей, а может, и больше, вообще не играет в эту стратегию, но это им не мешает в обыкновенной жизни производить такие операции, которые компьютерам и роботам не "светят" и в далеком будущем.
Помнится, весной на страницах "КВ" я описал вам свою небольшую программку, которая позволяет компьютеру "мыслить" образами, создавать небольшие ассоциативные цепочки, следовательно, она могла (и может:)) самообучаться. И, наверное, это и нужно брать за основу.
А у нас главной задачей является все-таки создание полноценных электронных переводчиков, как минимум. Это будет обозначать новый виток развития, огромные перспективы для Интернета и так далее. Ведь перевели же люди древнегреческие письмена, древнеегипетские иероглифы. Что мешает сделать нечто подобное с современными языками полноценно?
Кристофер,
[email protected]
Горячие темы