Вычислительное мышление. Метод решения сложных задач - Питер Макоуэн
Шрифт:
Интервал:
Закладка:
Возможно, эти примеры подтверждают, что ИИ контролирует ограниченные, хотя и важные сферы жизни на Земле. Но чтобы действительно завоевать мир, как в кино, отдельным системам ИИ придется действовать вместе и объединиться в синхронизированную армию. Властолюбивому автомату, который пробивает ваши покупки на кассе самообслуживания, чтобы помешать вам купить пиво, придется связаться с датчиком здоровья. Затем они оба могут вступить в сговор с системой, подсчитывающей кредитный рейтинг, и она пообещает повысить кредитный лимит, если вы купите кроссовки со встроенным датчиком GPS и будете есть только зеленый салат из умного холодильника. Конечно, холодильник будет открываться, только если от кроссовок поступят данные о завершении обязательной семикилометровой пробежки.
Это тревожная картина, но, к счастью, она маловероятна. Разработчики по всему миру создают интернет вещей — сеть, объединяющую самые разные приборы и физические объекты, с помощью которой можно предлагать новые услуги. Чтобы завоевать мир, многочисленным кусочкам пазла нужно объединиться и образовать полную картину. Такая ситуация не очень вероятна — слишком много компонентов должно совпасть и одновременно сработать. Похоже на пресловутое противоречие в сюжете «Дня независимости», когда Apple Mac подключается к кораблю инопланетян. Поразительная межплатформенная совместимость.
Наши земные системы ИИ, созданные с помощью различных языков программирования, по-разному хранят разные данные и используют разные и несовместимые наборы правил и техники обучения. Если они не задуманы как совместимые, нет никаких оснований считать, что две безопасно сконструированные системы ИИ, разработанные разными компаниями для разных целей, спонтанно объединятся и направят усилия на некую общую великую цель без человеческого вмешательства. Конечно, глобализация означает, что у современных гигантских компаний есть большое стремление приводить вещи в гармонию друг с другом, чтобы завладеть рынком и получать больше прибыли...
Но могут ли системы ИИ и тела роботов, в которых они установлены, пройти тест и завладеть миром? Предположительно, только если мы, умные, но слабые людишки, разрешим им и серьезно поможем. Но зачем нам это делать? Может быть, из-за нашей человеческой глупости?
Сетки и игры имеют важное значение. Сетки являются основой для многих игр. Кроме того, они занимают особое место в информационных технологиях. Например, они позволяют показать изображения. А игра о жизни, основанная на решетке, открыла абсолютно новое направление в информатике. Правила другой компьютерной игры на основе решетки помогут объяснить, почему люди больше не являются лучшими игроками на планете. Программисты превратили саму жизнь в одну из таких игр.
Игры как высокотехнологичная область искусства
История компьютерных игр довольно коротка, но отрасль настолько разрослась, что сегодня стоит дороже, чем киноиндустрия. Играете ли вы за тролля в Warcraft или деретесь с назойливыми свинками в Angry Birds, за этим стоят компьютерные программы, установленные в игровых приставках, ноутбуках, смартфонах и планшетах, которые мы носим с собой по всему миру. Они обеспечивают нам и развлечения, и новые способы взаимодействия с другими людьми.
Полные видеоигры можно разделить на две основные категории. Над большими играми работают многие сотни людей — программисты, дизайнеры и художники. Они используют и науку — например, в физических движках, компьютерных программах, которые моделируют физические законы виртуального мира. Эти движки определяют, как падают камни или как ткань развевается на ветру. Конечно же, здесь мы наблюдаем пример компьютерного моделирования, только оно используется скорее для развлечения, чем для исследований. Сегодня видеоигры представляют собой сплав информатики и художественного творчества. Как сказал пионер отрасли Ричард Гэриотт, это квинтэссенция высокотехнологичного искусства.
Вторая основная категория игр — независимые игры, в основном разрабатываются для смартфонов. Здесь для результата хватит небольшой группы увлеченных и творческих программистов и дизайнеров. Появление рынка приложений для смартфонов привело к взрывному росту новых идей и тем, которые можно исследовать и развить. Это особенно верно для игр, интегрированных в социальные сети (наши так называемые социальные графы), в которых все мы проводим много времени. Говорят, идея для приложения найдется у каждого, и с небольшой помощью вы сможете сами что-нибудь создать. Если вам интересно, можно взять бесплатный программный пакет из интернета, который позволит превратить ваши идеи в код для смартфона. Потом его можно скачать на свой телефон и удивить друзей.
Пиксельные картинки
В основе своей компьютерные игры строятся на компьютерной графике и изображениях (хотя можно ждать появления компьютерных игр, в которые вы будете играть в реальном мире и при этом задействовать все органы чувств!). Изображения, которые мы видим на экране, состоят из многих тысяч пикселов. Пикселы — это просто элементы картинки, маленькие точки на экране. Их яркость и цвет можно изменять, потому что они представлены в виде цифр. Если экран достаточно велик, можно создать абсолютно любое изображение, установив для пикселов определенное значение с помощью правильно подобранных чисел. Чем больше пикселов, тем выше разрешение и тем более детальное и четкое изображение мы можем получить. На рис. 54a изображена голова робота из 64 пикселов (8×8). Рисунок едва узнаваем, поскольку пикселов не хватает, чтобы показать детали. На рис. 54b — та же картинка, но пикселов уже 256 (16×16). Очевидно, что это голова робота. Если добавить еще пикселов, то есть увеличить разрешение, картинка может стать еще более подробной — например, на ней можно показать форму глаз, носа и рта.
Сам экран компьютера можно считать решеткой, и в таком случае игра — это серия изображений, которые мы контролируем (снова представление в действии).
Изображения можно создавать самыми разными способами с помощью компьютерной графики. Простые растровые методы подразумевают сохранение каждого пиксела. Нашу первую картинку можно сохранить в виде 64 цифр:
Здесь 0 означает белый пиксел, а 1 — черный пиксел. Мы создаем изображения, продвигаясь по линиям сверху вниз и быстро устанавливая значение пикселов.
Чем больше пикселов, тем яснее изображение, но и тем больше цифр необходимо сохранить, чтобы представить его. Чтобы сохранить изображение робота в более высоком разрешении, нам понадобится 256 цифр вместо всего лишь 64: