CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Я твой слуга, я твой работник

Дмитрий САХАНЬ AIMatrix_Creator@chat.ru

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

Для игр, видео, музыки, бухгалтерских приложений и большинства баз данных вполне хватает имеющихся мощностей. Чем дальше вперед уходит технический прогресс, тем менее извинительно его отставание от информационного. Ведь в этой области, по сравнению с технической, пока ничего радикально нового не предложено, а следовательно, некуда прогрессировать. Это прекрасно понимают разработчики технических средств для информационных технологий: увольняется персонал, закрываются производства, падают цены на продукцию. Но и в информационной области дела обстоят не лучше. Если ранее работы в ней был непочатый край, то сейчас дело явно застопорилось. Судите сами — все больше настоящих специалистов, но области применения их знаний практически все те же: web-разработка, управление базами данных и разработка бухгалтерских приложений. Следовательно, многие из специалистов остаются не у дел. А что уж говорить о людях, не знающих языков программирования или вообще не умеющих программировать, но способных повлиять на информационные технологии своей неординарностью, необычным талантом, знаниями и умениями в других сферах. Их бы привлечь! Хочу поделиться своими соображениями о том, как использовать этот потенциал. Надеюсь, это будет выгодно как материально, так и морально всем, кто прислушается к моим словам. Под «всеми» я понимаю вот кого:

1) неординарных людей с необычными талантами;

2) программистов, ищущих возможности приложения своих знаний и умений;

3) специалистов по разработке, созданию и подключению разных аппаратных компьютерных «примочек»;

4) всех, кто способен и далее наращивать тактовые частоты, увеличивать объемы памяти и тому подобное.

Что я понимаю под словами «материально» и «морально»? Я объясняю вам суть идеи. Используя ее, вы становитесь разработчиком очень дорогих систем. Вот вам и материальное удовлетворение. Кроме того, вы автор системы, и в зависимости от ее уровня вам достается соответствующий эквивалент признания. А его можно рассматривать как моральное удовлетворение.

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

Если вы пессимист — это не для вас

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

Недавно разговорился со знакомым о возможности создания искусственного интеллекта. Он мне возьми да и скажи: «Да ну, такие вещи одними операторами IF не делаются (IF — по-русски «ЕСЛИ»)». На самом деле, следовало понимать: «Я не представляю себе, как это сделать». Ведь мой знакомый прекрасно понимал, что вопрос не в использовании каких-то операторов, а в сложности написания самого механизма интеллекта. Любой здравомыслящий человек не будет оспаривать того факта, что все известные нам сложнейшие программы на уровне машинных команд вообще работают с простейшими операторами и набором из нескольких регистров. Все зависит от того, насколько необычно человек смотрит на проблему и насколько нестандартно ее решает; пытается ли он понять факт или отворачивается от него. Именно нестандартные решения во многих случаях заставляют нас удивленно восклицать: «Не может быть. Как это получилось?» И, немного погодя: «Почему я до этого не додумался?» А все потому, что пытались решить проблему обычным методом. Ярким примером нестандартного подхода может служить программа Mars. Ее написали в то время, когда еще не было ни графических ускорителей, ни огромных объемов памяти. Программа на 386-м процессоре в реальном времени имитировала движение над поверхностью планеты. Кроме того, программа была написана так, что ее объем составлял всего 4 килобайта! Чувствуете разницу между ее объемом и объемом современных игровых движков (понятно, что они намного больше умеют, но все же). А как насчет жалоб современных геймеров на нехватку скорости их компьютеров для построения игровых сцен в реальном времени? А на 386-й машине без суперских видеоплат в программе Mars не выпадало ни одного кадра. И многие программисты того времени, увидев Mars, задавались вопросом: «Как это сделали, да еще в 4 килобайтах?» А ведь нестандартным решением была всего лишь замена сложной математики 3D-построения на таблицы заранее рассчитанных значений. Это привело не только к поднятию скорости рендеринга ландшафта планеты, но и к уменьшению размеров программы. И таких примеров в жизни очень много.

Как готовятся роботы

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

Группа разработки программной части, имхо, состоит из программистов и занимается написанием как программных внутренностей робота, так и редакторов его логических модулей. Здесь не будут рассматриваться способы написания программного движка робота, так как основная задача — донести идею до тех, кому когда-либо в жизни приходилось (или придется) разрабатывать логическую часть. Программная группа в состоянии сама разобраться, какие процедуры, функции и тому подобное необходимо написать в движке. Ей же придется дать логической группе некоторые представления об используемых в роботе типах данных. Вообще, всем группам придется тесно контактировать друг с другом, и программной группе часто придется выступать в роли координатора проекта.

Группа разработки логической части состоит из людей, способных описать логику работы живого существа (психологи, учителя, филологи и пр.)

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

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

Устройство логической части

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

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

Здесь и в дальнейшем все структуры будут описаны применительно к системе программирования Delphi. Думаю, программисты смогут адаптировать данные структуры для других языков. Черным цветом я выделил имена полей, красным цветом — их типы, синим — комментарии к ним.

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

(Продолжение следует)

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov