Ящики могут иметь разные размеры и содержать в себе разную продукцию. Часть продукции в ящиках легкая и хрупкая, часть - тяжелая и прочная. Тяжелые ящики с прочной продукцией требуют более сильного захвата, чтобы ящик не выскользнул и не упал при подъеме. Однако если то же усилие захватов использовать при подъеме легких ящиков, то они могут быть раздавлены. Таким образом, усилие захватов должно соответствовать типу ящиков.
Как и в предыдущих примерах, расположение ящиков на транспортере может быть разным: некоторые из них стоят правильно, некоторые повернуты под тем или иным углом. Иногда бывает более длинный промежуток времени перед тем, как по транспортеру поступает новый ящик; иногда бывает так, что несколько ящиков стоят вплотную друг к другу.
НЕПРЕДВИДЕННЫЕ СОБЫТИЯ
Мы бы не захотели нанимать рабочего, который бывает настолько поглощен своей работой, что не замечает неожиданных, но жизненно важных изменений в окружающей обстановке и потому не может на них реагировать.
Мы уже разбирали случай, когда один из транспортеров, на которые нужно перегружать ящики, останавливается. Но что делать, если он вдруг начал двигаться в обратную сторону? Или, например, представим, что на складе возник пожар, создающий угрозу для человеческой жизни и для всего оборудования. А что если какой-то посторонний человек вошел в зону работы крана? Или если за короткое время поступает так много ящиков, так что кран-сортировщик не успевает переносить их на другие транспортеры? Или же прекратилась подача питания на кран, и ящики начали нагромождаться возле транспортера? Если наш кран-сортировщик пятого поколения действительно совершил качественный скачок в своей разумности, то он должен реагировать на все эти возможные события.
ПРИОБРЕТЕНИЕ НОВЫХ ОРГАНОВ ЧУВСТВ
Наш первый эволюционный шаг состоит в том, чтобы добавить крану-сортировщику новые органы чувств. Отчасти эту задачу можно решить с помощью простых датчиков типа "все или ничего". Наши отводящие транспортеры должны быть оснащены датчиками, которые реагируют не только на то, движутся ли они или нет, но и на то, движутся ли они в правильном направлении. Датчик, реагирующий на высокую температуру, может служить сигнализатором возможного пожара. Простой измеритель напряжения может определять, поступает ли питание на подъемный кран.
Разобраться с различными размерами и разной ориентацией ящиков труднее. Кран четвертого поколения использовал телевизионную камеру над подающим конвейером, дополненную компьютером со специальной программой обнаружения форм и углов, так что он мог распознавать ящик и определять его Ориентацию и местоположение. Чтобы это делать, ему приходилось обращаться к памяти компьютера, которая определяла, как выглядит ящик на телевизионном изображении.
Как нам иметь дело с ящиками разного размера (а также разного веса и разной хрупкости)? Для простоты мы можем составить компьютерную программу распознавания ящиков, так чтобы она исходила из допущения (как обычно поступают и люди), что все эти три параметра взаимосвязаны: маленькие ящики обычно легкие и хрупкие, а чем они становятся больше, тем они тяжелее и прочнее. Тогда программа распознавания может подавать команду захватам использовать небольшое усилие для маленьких ящиков, все более увеличивая его по мере увеличения размеров ящиков.
Коль скоро наш компьютер достаточно мощный, чтобы на нем могла работать программа распознавания ящиков по телевизионному изображению, давайте установим вторую камеру, которая будет обозревать то пространство вокруг крана, в котором было бы нежелательно появление людей. Изображение с этой второй камеры должно анализироваться в компьютере для обнаружения присутствия человека. Мы можем значительно упростить эту процедуру. Нам не нужно знать, что это за человек, мужчина это или женщина, какого он или она роста, или какого цвета одежда на этом человеке. В действительности нам даже не нужно знать, человек ли это. Если что-либо будет передвигаться в запретной зоне, мы хотим, чтобы наша программа обнаружения постороннего присутствия тут же это замечала и останавливала кран.
Однако в этой ситуации есть и своя проблема. Кое-что регулярно входит в запретную зону и движется в ней, а именно сам работающий кран. Нам бы не хотелось, чтобы управляющий компьютер крана-сортировщика останавливал кран каждый раз, когда он обнаружит сам себя. Основная функция разума живых существ состоит в том, чтобы узнавать самого себя и отличать себя от не себя. Иначе мы могли бы поедать самих себя! Таким образом, программа обнаружения посторонних объектов должна анализировать изображение, поступающее с камеры, чтобы распознавать форму и движения крана как отличающиеся от любых других форм, движущихся в запретной зоне. Тогда команда остановки крана будет подаваться лишь в том случае, если обнаружится что-то, по своей форме не являющееся краном.
Поскольку наш кран-сортировщик должен ставить разные ящики на различные транспортеры, программа распознавания должна не только воспринимать ящики, но и классифицировать их по одному из нескольких параметров. Для простоты представим себе, что это делается только на основе размера.
ВЫ НЕ МОЖЕТЕ ДЕЛАТЬ ВСЕ СРАЗУ
Нам нужно, чтобы наш кран-сортировщик пятого поколения делал совсем немного вещей. Он должен (а) наблюдать за ящиками на подающем транспортере, (б) распознавать размер и расположение каждого ящика, поворачивать захваты в зависимости от расположения ящика, опускать захваты, когда ящик находится под ними, (в) захватывать ящик с усилием, соответствующим его размеру, и поднимать его, (г) классифицировать ящик по типу и направлять движение крана к соответствующему транспортеру, (д) поворачивать ящик таким образом, чтобы он был правильно ориентирован по отношению к ленте того транспортера, на который его нужно перенести, (е) установив ящик над нужным транспортером, (ж) опускать стрелу крана и раскрывать зажимы, (з) поднимать стрелу крана и (и) возвращать ее в исходное положение над подающим транспортером. В то же время система должна быть готова остановить транспортер и работу крана при сигнале тревоги в случае (к) пожара, (л) обнаружения посторонних в запретной зоне, (м) если любой из транспортеров останавливается или начинает двигаться в обратную сторону, или же (н) если на кран перестало поступать питание.
Все это представляется весьма сложным. Однако одним из результатов попытки создания все более разумных машин явилось то, что мы осознали, сколь многое в отношении наших простых действий мы считали само собой разумеющимся.
Понятно, что прекращение работы любого из транспортеров остановит процесс производства, так что это не должно происходить без необходимости. Поэтому возможность останавливать подающий транспортер, в том случае если любой из отводящих транспортеров останавливается или движется в обратную сторону, можно было бы далее усовершенствовать так, чтобы компьютер выключал подающий транспортер только в том случае, если он обнаружит на нем ящик, который должен быть перенесен на неисправный отводящий транспортер. Тем временем он мог бы подать сигнал тревоги обслуживающему персоналу, чтобы они починили неисправный транспортер, причем ремонт мог бы закончиться до того, как поступит новый ящик, предназначенный для этого транспортера.
Эта задача была бы вполне выполнимой, если бы наш компьютер имел неограниченные возможности по части программ и памяти. Но ни люди, ни компьютеры не обладают неограниченными возможностями. Хотя вы можете нанять много работников, чтобы они одновременно наблюдали за всеми этапами процесса, или можете купить очень мощный компьютер, но существуют экономические соображения: вам не хотелось бы вкладывать во все это слишком много денег без особой необходимости. Таким образом, на практике "внимание" нашего компьютера должно распределяться между всеми этими задачами так, чтобы, с учетом присущих ему ограничений, наилучшим образом соответствовать нашим целям.
Компьютеру нужно вполне ограниченное количество времени для анализа информации, поступающей по каждому из его сенсорных каналов, и столь же ограниченное время для вычисления того, что ему нужно делать с тем, что он обнаружит. Кроме всего прочего, компьютер может делать только одну вещь за раз, так что ему нужно будет потратить определенное время на одно задание, затем перейти к следующему заданию, затем к следующему и так далее. Последовательное выполнение серии этих заданий и возвращение к начальному состоянию - это цикл работы компьютера. Позволим ли мы компьютеру тратить столько времени, сколько ему необходимо на каждое задание, или равное количество времени на каждое задание (слишком много для одних, слишком мало для других), или более длительное время для решения более важных задач?