Книга
Книга
Предисловие
Наш город имеет давние и славные традиции проведения школьных олимпиад по различным предметам. В 1934 г. в Ленинграде состоялась первая в СССР городская олимпиада школьников по математике, где было около 400 участников. С тех пор олимпиада школьников проводится ежегодно, за исключением военных 1942—1943 годов. С 1985 г. (также впервые в стране!) проводятся городские олимпиады по информатике, помогающие поддержать интерес школьников к этой науке и высокий уровень их знаний и навыков, позволяющий школьным и студенческим командам города систематически выигрывать российские и международные соревнования самого высокого ранга. Проведение олимпиад школьников играет важную роль в профессиональной ориентации учащихся, привлечении талантливой молодежи в науку и поддержании высокого уровня высшего образования и научных исследований. Для победителей олимпиад любимый предмет часто становится профессией, они сами принимают участие в проведении олимпиад, и такая трад иция продолжается. Через олимпиады прошли многие выдающиеся ученые. Таким образом, участие в предметной олимпиаде — это не только увлекательное и азартное спортивное соревнование, не только тренировка и развитие творческих способностей, но и путь к выбору любимой и единственной профессии, позволяющий подняться к самым ее вершинам.
В последние годы число олимпиад возросло. К традиционным олимпиадам по математике, физике, химии, биологии прибавились олимпиады по лингвистике, информатике и другим предметам. У способных старшеклассников практически все выходные в феврале—марте оказываются заня-
тыми походами на олимпиады. Но что делать тем, кто еще не выбрал свой единственный любимый предмет и не знает, в какой профессии ему пора начинать совершенствоваться? Или тем, кто увлечен сразу несколькими предметами и затрудняется в выборе одного? Что, если, например, человек любит и хочет заниматься сразу и математикой, и физикой и информатикой?
Кажется естественным проводить, кроме предметных, и межпредметные олимпиады, где задачи включали бы элементы знаний и навыков из нескольких дисциплин. Межпредметные олимпиады важны еще и потому, что в современной науке и технике многие открытия делаются на стыке различных областей, и хорошему специалисту необходимо умение говорить на языках нескольких наук, которое нужно развивать с самого детства.
Удивительно, что, несмотря на очевидную важность межпредметных олимпиад, до недавних пор ни в Санкт-Петербурге, ни в других городах и странах, насколько нам известно, не проводились. И вот в 1999 г. несколько специалистов в области автоматики и систем управления из вузов города и организаций РАН задумали провести школьную олимпиаду по кибернетике, чтобы привлечь внимание будущих студентов к своей специальности. Идея была поддержана заведующим отделом науки и техники Санкт-Петербургского городского Дворца творчества юных (Аничков дворец) В. П. Тарасовым, и дело пошло: в 1999—2005 гг. было проведено шесть городских олимпиад.
Как известно, кибернетика — это наука об управлении и связи в системах произвольной физической природы. Предмета “Кибернетика” в школьных программах пока нет, поэтому в ИПМаш РАН совместно с Санкт-Петербургским город-
ским Дворцом творчества юных была разработана концепция Олимпиад, основанная на том, что кибернетика в школе понимается как наука на стыке математики, физики и информатики. Соответственно, олимпиада по кибернетике организуется как соревнование в решении задач, требующих знаний и навыков по перечисленным предметам школьного курса, т.е. оказывается межпредметной. Типичные задачи включают составление математической модели какого-либо физического процесса и исследование ее на компьютере. Условия задач похожи на “текстовые” задачи по математике, а при их решении, по-существу, осваивается основной метод кибернетики — метод математического моделирования. Большинство задач имеют занимательный сюжет, а некоторые задачи представляют описание и построение элементарных процессов управления. Чтобы успешно решать задачи, участники соревнований должны иметь хорошие знания по математике, физике и информатике, а также уметь писать программы на одном из языков программирования. Кроме того, необходимо обладать навыками работы в коллективе, поскольку команде из трех человек предстоит решить несколько сложных задач в ограниченное время и успех зависит от того, как распределены роли между членами команды.
Такая концепция позволяет укрепить межпредметные связи, выявить детей со способностями к нескольким естественным и техническим наукам, а также заинтересовать тех, кто еще не определил круг своих интересов. За несколько лет набралось достаточно много задач и других материалов, и организаторы решили, что пришло время их опубликовать для более широкого использования, обсуждения и привлечения интереса к наукам кибернетического цикла. Так появилась эта книга.
Книга открывается текстом “Что такое кибернетика?’, составленным по материалам статьи о кибернетике из Большой Советской Энциклопедии, написанной выдающимся ученым, одним из создателей отечественной кибернетики и вычислительной техники академиком В. М. Глушковым (подробнее о В. М. Глушкове см. на сайте http: //www. computer-museum. ru/galglory/27. htm).
Первая часть книги содержит воспоминания и мнения организаторов об олимпиадах, правила их проведения, хронику и результаты. Важную роль в успехе олимпиад сыграла сетевая система автоматической проверки решений, разработанная Виталием Шиегиным и описанная в п.1.4. Следует отметить, что Виталий был мотором первых олимпиад, создал сайт Олимпиады и ее эмблему (см. рисунок на обложке). Более того, сама идея Олимпиады родилась, как гласит легенда, во время прогулки Виталия Шиегина и Андрея Лямина, тогда еще аспирантов СПбГУИТМО, весной 1999 года по улице Восстания.
Вторая часть содержит условия всех предлагавшихся задач, а третья часть — решения избранных задач.
В четвертой части собраны статьи, которые могут представить интерес для любителей кибернетики. Хочется обратить внимание читателя на статьи, перепечатанные из Соросовского образовательного журнала: статью В. Н. Фомина, профессора кафедры теоретической кибернетики математико-механического факультета СПбГУ, безвременно ушедшего в 2000 году, внесшего большой вклад в развитие и преподавание кибернетических наук в С.-Петербурге (подробнее о выдающейся личности В. Н. Фомина см. на сайте http://www.math.spbu.ru/user/fomv/) и статью Ю. И. Ней- марка, профессора кафедры теории управления и динамики
машин Нижегородского государственного университета, основавшего эту кафедру в 1958 году и справившего недавно свой 85-летний юбилей (подробнее о Ю. И. Неймарке см. на сайте http: //www. unn. ru/vmk/tudm/prepod/neimark. htm). а также на поучительную статью профессора Д. А. Поспелова из сборника “Очерки истории информатики в России” в которой описывается драматическая история развития кибернетического движения в нашей стране (подробнее о Д. А. Поспелове см. на сайте http: //www. computer-museum. ru/galglory/pospelov. htm). Представленные статьи, хоть и написаны достаточно просто, не являются научно-популярными: в них говорится о серьезных вещах, и сейчас волнующих специалистов. Статьи заставляют задуматься и попытаться самим решить обсуждаемые в них проблемы — в полном соответствии с духом Олимпиады.
В приложении можно найти список кафедр кибернетического профиля вузов Санкт-Петербурга, а также список ссылок на интернет-ресурсы по кибернетике, информатике и их истории.
Основные материалы и ссылки, помещенные в книгу были представлены на сайте http://cyber-net.spb.ru, знакомом всем участникам олимпиад по кибернетике. На сайте продолжают публиковаться новые задачи, объявления о месте и времени проведения новых олимпиад и другая информация.
Организация олимпиад и публикация книги были подцер- жаны рядом грантов и программ Института проблем машиноведения РАН. Проведение олимпиад на достойном уровне было бы невозможно без помощи спонсоров, из которых в первую очередь хочется поблагодарить ЦНИИ “Электроприбор” и академика РАН В. Г. Пешехонова, а также ОКБ “Элек-
троавтоматика”. Большую помощь в организации оказали студенты СПбГУИТМО С. В. Арановский, А. А. Блинников, И. С. Волков, М. А. Коршунов. Наконец, хочется отметить важную роль дружного коллектива Отдела техники Санкт-Петербургского Дворца творчества юных, возглавляемого В. П. Тарасовым и деятельность неутомимого Г. И. Болтунова, который в дни, когда пишутся эти строки проводит уже новую — областную Олимпиаду по кибернетике с участием 36 школьных команд, в том числе и из других регионов России.
Автоы надеются, что книга будет полезна учащимся и преподавателям средних и высших учебных заведений, а также научным работникам и методистам, интересующимся вопросами преподавания и популяризации кибернетики и информатики. Отзывы, замечания и новые задачи можно посылать по адресу: info@cyber~net.spb.ru.
Декабрь 2005 г.Декабрь 2005 г.А.Л.ФрадковА.Л.Фрадков
Декабрь 2005 г.
Декабрь 2005 г.
А.Л.Фрадков
А.Л.Фрадков
Что такое кибернетика?
Большая российская энциклопедия определяет кибернетику (от греч. kybernetike — искусство управления, от kybernao — правлю рулем, управляю) как науку об управлении, связи и переработке информации.
Кибернетические системы и информация
Основным объектом исследования в кибернетике являются так называемые кибернетические системы. Примерами кибернетических систем могут служить разного рода автоматические регуляторы в технике (например, автопилот или регулятор, обеспечивающий поддержание постоянной температуры в помещении), электронные вычислительные машины (ЭВМ или компьютеры), человеческий мозг, биологические популяции, человеческое общество... Кибернетические системы имеют рецепторы (датчики), воспринимающие сигналы из внешней среды и передающие их внутрь системы, а также входные и выходные каналы, по которым они обмениваются сигналами с внешней средой. Выходные сигналы системы передаются во внешнюю среду через эффекторы (исполнительные устройства). Поскольку каждая система сигналов, независимо от того, формируется она разумными существами или объектами и процессами неживой природы, несет в себе ту или иную информацию, то всякая кибернетическая система может рассматриваться как преобразователь информации. Рассмотрение различных объектов живой и неживой
природы как преобразователей информации или как систем, состоящих из элементарных преобразователей информации, составляет сущность так называемого кибернетического подхода к изучению этих объектов.
Мозг и компьютеры
Из числа сложных технических преобразователей информации наибольшее значение имеют компьютеры (этот термин вытеснил употреблявшийся ранее термин ЭВМ - электронно-вычислительные машины). Компьютеры обладают свойством универсальности. Это означает, что любые преобразования буквенно-цифровой информации, которые могут быть определены произвольной конечной системой правил любой природы (арифметические, грамматические и др.) могут быть выполнены компьютером после введения в него составленной должным образом программы. Другим известным примером универсального преобразователя информации (хотя и основанного на совершенно иных принципах) является человеческий мозг. Свойство универсальности современных компьютеров открывает возможность моделирования с их помощью любых других преобразователей информации, в том числе мыслительных процессов. Такая возможность ставит компьютеры в особое положение: с момента своего возникновения они представляют основное техническое средство, основной аппарат исследования, которым располагает кибернетика.
Кибернетика и управление
Целенаправленное изменение поведения кибернетических систем происходит при наличии управления. Основной задачей системы с управлением является такое преобразование поступающей в систему информации и формирование таких управляющих воздействий, при которых обеспечивается достижение (по возможности наилучшее) заданных целей управления. Примером может служить система автоматического регулирования температуры воздуха в помещении: специальный термометр-датчик измеряет температуру воздуха Т, управляющая система сравнивает эту температуру с заданной величиной То и формирует управляющее воздействие —ЦТ — То) на задвижку, регулирующую приток теплой воды в батареи центрального отопления. Знак минус при коэффициенте к означает, что регулирование происходит по закону отрицательной обратной связи, а именно: при увеличений температуры Т выше установленного порога То приток тепла уменьшается, при ее падении ниже порога — возрастает.
Отрицательная обратная связь необходима для обеспечения устойчивости процесса регулирования. Устойчивость системы означает, что при отклонении от положения равновесия (когда Т = То) как в одну, так и в другую сторону система стремится автоматически восстановить это равновесие. При простейшем предположении о линейном характере зависимости между управляющим воздействием и скоростью притока тепла в помещение работа такого регулятора описывается дифференциальным уравнением dT/dt = —ЦТ — То), решением которого служит функция Т = То + dexp(—kt^ где d — отклонение температуры Т от заданной величины То в начальный момент времени. Поскольку рассмотренная
система описывается линейным дифференциальным уравнением 1-го порядка, она носит название линейной системы 1-го порядка. Более сложным поведением обладают линейные системы 2-го и более высоких порядков и особенно нелинейные системы. Возможны системы, в которых принцип программного управления комбинируется с регулированием в смысле поддержания заданного значения той или иной величины. Так, например, в описанный регулятор комнатной температуры может быть встроено программное устройство, меняющее значение регулируемого параметра. Задачей такого устройства может быть, скажем, поддержание температуры +20° в дневное время и снижение ее до +16° в ночные часы. Функция простого регулирования перерастает здесь в функцию слежения за значением программно изменяемого параметра. В более сложных следящих системах задача состоит в поддержании (возможно более точном) некоторой фиксированной функциональной зависимости между множеством самопроизвольно меняющихся параметров и заданным множеством регулируемых параметров. Примером может служить система, непрерывно сопровождающая лучом прожектора маневрирующий произвольным образом самолет.
В так называемых системах оптимального управления основной целью является поддержание максимального (или минимального) значения некоторой функции от двух групп параметров, называемой критерием оптимального управления. Параметры первой группы (внешние условия) меняются независимо от системы; параметры второй группы являются регулируемыми, т. е. их значения могут меняться под воздействием управляющих сигналов системы. Простейший пример оптимального управления снова дает задача регулирования температуры комнатного воздуха при дополнитель-
ном условии учета изменений его влажности. Величина температуры воздуха, дающая ощущение наибольшего комфорта, зависит от его влажности. Если влажность все время меняется, а система может управлять лишь изменением температуры, то естественно в качестве цели управления поставить задачу поддержания температуры, которая давала бы ощущение наибольшего комфорта. Это и будет задача оптимального управления. Системы оптимального управления имеют большое значение в задачах управления экономикой. Если данных для обеспечения удовлетворительного качества системы недостаточно, можно строить так называемые адаптивные регуляторы, собирающие недостающую информацию в ходе работы системы и использующие ее для повышения качества своей работы.
Методы кибернетики
Кибернетика использует для исследования систем три принципиально различных метода. Два из них — математический анализ и физический эксперимент — широко применяются и в других науках. Сущность первого метода состоит в описании изучаемого объекта в рамках того или иного математического аппарата (например, в виде системы уравнений) и последующего извлечения различных следствий из этого описания путем математической дедукции (например, путем решения соответствующей системы уравнений). Сущность второго метода состоит в проведении различных экспериментов либо с самим объектом, либо с его реальной физической моделью.
Одним из важнейших достижений кибернетики являются
разработка и широкое использование нового метода исследования, получившего название вычислительного (машинного) эксперимента, или математического моделирования. Смысл его состоит в том, что эксперименты производятся не с реальной физической моделью изучаемого объекта, а с его математическим описанием, реализованным в компьютере. Огромное быстродействие современных компьютеров зачастую позволяет моделировать процессы в более быстром темпе, чем они происходят в действительности.
Разделы кибернетики
Современная кибернетика в широком понимании состоит из большого количества разделов, представляющих собой самостоятельные научные направления. Теоретическое ядро кибернетики составляют такие разделы, как теория информации, теория кодирования, теория алгоритмов и автоматов, общая теория систем, теория оптимальных процессов, методы исследования операций, теория распознавания образов, теория формальных языков. На практике центр тяжести интересов кибернетики сместился в область создания сложных систем управления и различного рода систем для автоматизации умственного труда. В чисто познавательном плане одной из наиболее интересных перспективных задач кибернетики является моделирование мозга и его различных функций.
Основным техническим средством для решения всех указанных задач являются компьютеры. Поэтому развитие кибернетики как в теоретическом, так и в практическом аспектах тесно связано с прогрессом электронной вычислительной техники. Требования, которые предъявляет кибернетика
к развитию своего математического аппарата, определяются указанными выше основными практическими задачами.
Определенная практическая целенаправленность исследований по развитию математического аппарата как раз и является той гранью, которая отделяет общематематическую от собственно кибернетической части подобных исследований. Так, например, в той части теории алгоритмов, которая строится для нужд оснований математики, стремятся по возможности уменьшить число типов элементарных операций и сделать их достаточно мелкими. Возникающие таким образом алгоритмические языки удобны как объект исследования, но в то же время ими практически неудобно пользоваться для описания реальных задач преобразования информации. Кибернетический аспект теории алгоритмов имеет дело с алгоритмическими языками, специально ориентированными на те или иные классы подобных практических задач. Имеются языки, ориентированные на задачи вычислительного характера, на формульные преобразования, на обработку графической информации и т.п.
Аналогичное положение имеет место и в др. разделах, составляющих общетеоретический фундамент кибернетики. Они представляют собой аппарат для решения практических задач изучения кибернетических систем, их анализа и синтеза, нахождения оптимального управления.
Особенно большое значение применение кибернетических методов имеет в тех науках, где методы классической математики могут применяться лишь в ограниченных масштабах, для решения отдельных частных задач. К числу таких наук относятся в первую очередь экономика-, биология, медицина, языкознание и те области техники, которые имеют дело с большими системами. В результате большого объема при-
менения кибернетических методов в этих науках произошло выделение самостоятельных научных направлений, которые было бы естественно называть кибернетической экономикой, кибернетической биологией и т.д. Однако в силу ряда причин первоначальное становление указанных направлений происходило в рамках кибернетики за счет специализации объектов исследования, а не в рамках соответствующих наук за счет применения методов и результатов кибернетики. Поэтому указанные направления получили названия экономическая кибернетика, биологическая кибернетика, медицинская кибернетика, техническая кибернетика. В языкознании соответствующее научное направление получило наименование математической лингвистики.
История кибернетики
Первым, кто применил термин “кибернетика” для управления в общем смысле, был по-видимому, древнегреческий философ Платон. Однако реальное становление “кибернетики” как науки произошло много позже. Оно было предопределено развитием технических средств управления и преобразования информации. Еще в средние века в Европе стали создавать так называемые андроиды — человекоподобные игрушки, представляющие собой механические, программно управляемые устройства. Первые промышленные регуляторы уровня воды в паровом котле и скорости вращения вала паровой машины были изобретены И. И. Ползуновым (Россия) и Дж. Уаттом (Англия) в XVIII в. Решающее значение для становления “кибернетики” имело создание в 40-х годах XX в. электронных вычислительных машин — ЭВМ,
или компьютеров (Дж. фон Нейман и др.). Благодаря ЭВМ возникли принципиально новые возможности для исследования и фактического создания действительно сложных управляющих систем. Оставалось объединить весь полученный к этому времени материал и дать название новой науке. Этот шаг был сделан американским математиком Норбертом Винером, опубликовавшим в 1948 г. свою знаменитую книгу “Кибернетика”. Винер определил “кибернетику” как “науку об управлении и связи в живом организме, машине и обществе”. Стремительное развитие вычислительной техники породило большой интерес к кибернетике в 1960—1970-е годы и ее бурное развитие во всем мире. В 1980—1990-е годы термин “кибернетика” был частично вытеснен термином “информатика”, имеющим отношение прежде всего к компьютерам и обработке информации. Однако в последние годы термин “кибернетика” вновь стал популярной в связи с развитием интернета (киберпространство) и робототехники (киборг — кибернетический организм — устройство с высокой степенью физического и интеллектуального взаимодействия человека и технических средств автоматики). Киборги, так же как и роботы-манипуляторы, могут найти применение при управлении объектами в недоступных или опасных для жизни человека условиях.
Глава I.
Олимпиада
Как все начиналось
... Но свет блеснул — и выход вижу смело, Могу писать: “В начале было Дело”'.
(И.-В. Гёте, “Фауст”)
Нет, в начале было все-таки слово. Вернее, мысль, выраженная словами “а почему бы нам...” Почему бы не организовать соревнование для своих (тех, которые занимались на кафедре) учеников? В отличие от официальных городских соревнований по информатике, собственные можно проводить там и тогда, где и когда будет интересно нам.
Эта нехитрая идея быстро переросла пределы отдельно взятой кафедры Автоматики и Телемеханики (сейчас — кафедра Систем Управления и Информатики) и диалектически воплотилась в свою противоположность — намерение провести вполне официальное соревнование для школьников в рамках Балтийской студенческой олимпиады по автоматиче-
скому управлению. Что, разумеется, не исключало возможности периодических локальных “междусобойчиков”.
...Ведь Мысль творить и действовать не может!
Не Сила ли — начало всех начал?
(там же)
Правильно подмечено. Чтобы мысль реализовалась в дела, силы действительно потребовались. И силы были приложены по трем основным направлениям:
Организация (привлечение участников, место проведения, грамоты, призы и т.п.);
Составление задач;
Обеспечение проверки решений.
Организационные проблемы школьной секции были близки к проблемам учебной секции Балтийской олимпиады, а опыт их решения у организаторов имелся.
Как в научной среде, так и в быту всегда можно обнаружить большое количество интересных и нетривиальных заг дач. Оставалось только их записать — как формальную постановку, так и сюжетное “оформление”. Причем “кибернетическая” направленность Балтийской олимпиады отразилась и на задачах школьной секции.
Проверка решений должна была быть быстрой, непредвзятой и по возможности корректной. Разумеется, для этого ее следовало автоматизировать. Компьютерная техника позволяет обеспечить первые два условия. Корректность по- прежнему зависит от предоставленных авторами задач проверочных данных, т.е. от пресловутого "человеческого фактора в чем позже смогли убедиться некоторые участники (за
что организаторы приносят им свои извинения). Но при этом автоматическая система “обижает” всех по одному и тому же алгоритму. Как говорится, ”ничего личного".
О задачах
Бессмыслица — искать решение, если оно и так есть. Речь идет о том, как поступать с задачей, которая решения не имеет. (А. и Б. Стругацкие, “Понедельник начинается в субботу”)
Как уже было сказано, организаторы сформулировали “школьное” представление кибернетики как науки на стыке математики, физики и информатики. Это определение полезно как рабочее для отбора и оформления подходящих задач: после отделения от сюжета, задача должна иметь вполне понятную постановку в терминах, знакомых школьнику — на языке математики, физики и информатики.
Пример. Студенту, изучающему теорию управления, можно предложить такую задачу: “составьте оптимальный закон управления для линейной дискретной системы второго порядка” — он ее поймет и даже сможет решить (если не пропускал занятия). А как быть со школьником? Неужели эта задача для него пока недоступна и требуется поступить в институт и проучиться несколько лет, чтобы понять ее смысл? Оказывается, что это не так. Просто задача сформулирована на “чужом” языке. Студент для ее решения будет использовать те язык и методы, которым его научили. Школьник же сможет обойтись без них. Достаточно лишь переформулировать задачу иначе: “найдите такую последовательность чисел, при которой представленный фрагмент программы (цикл) завершится поскорее” (см. задачу “После-
довательность” — она предложена на языке информатики, а решается — средствами алгебры).
Здесь возникает законный вопрос: а зачем тогда студенту было изучать теорию управления, если такие задачи способен решить любой школьник? Дело в том, что подобная задача может иметь и более сложный вид — например, в программе будет использовано не 2 массива (X и Y), а много больше, в формулы будут входить не только операции сложения и вычитания, но и произведение, или, например, тригонометрические функции. Во многих случаях школьник по прежнему сможет справиться, но студент, вооруженный теорией управления, будет иметь преимущество: ему легче определить, к какому классу относится та или иная задача, существует ли для нее решение и какими методами это решение может быть получено.
Большинство олимпиадных задач снабжено сюжетами. Можно предположить, что их назначение — запутать участников. Замечание в какой-то степени верно, но есть и другие объяснения. Во-первых, сюжет - это интересно. Любопытно прочитать про робота-хоккеиста, даже если не ясно, зачем ему понадобилось анализировать хаотическое движение шайбы и как ему можно помочь. Во-вторых — большинству людей проще вообразить конкретного (хоть и фантастического) робота, чем абстрактный хаотический аттрактор. И самое главное: задачи, которые приходится решать на практике, зачастую ставятся именно в таком вот “сюжетном” виде. Неплохо, когда специалист знаком с методом пузырьковой сортировки. Но более ценен тот специалист, который поймет, что настало время применить этот метод, хотя в техническом задании не сказано ни о сортировке, ни о пузырьках.
Неверно считать, что задача происходит из определенной науки. Все задачи (за исключением совсем уж искусственных построений) происходят из реальной жизни. А науки липп> предлагают инструменты, более или менее пригодные для решения этих задач.
Еще один важный момент, на который организаторы пытались (по возможности) обращать внимание при написании задач. Далеко не всегда реальная “сюжетно” поставленная задача имеет единственный вариант формализованного представления и далеко не всегда даже для хорошо формализованной задачи существует единственный метод ее решения. Потому и среди олимпиадных задач наиболее полезны те, которые не имеют ярко выраженного единственного решения — в них заложена возможность творческого поиска.
В чем еще недостаток задачи, рассчитанной на один метод решения? Она может оказаться или слишком очевидной (для тех, кто знаком с таким методом) или неразрешимой (для тех, кому повезло меньше). Знать и уметь применять методы необходимо, но недостаточно. Не для всякой задачи найдется уже кем-то придуманный метод — тем она и интереснее (помнится, Д. Кнут предлагал своим читателям в качестве упражнения доказать великую теорему Ферма, но не упоминал при этом ее названия).
От задач, не имеющих явного решения, было бы логичным перейти к задачам, не имеющим решения вообще (см. эпиграф). Как ни парадоксально, такие задачи тоже приходится успешно решать на практике постоянно. И ничего смешного здесь нет: пишущему эти строки доводилось аналитически “брать” эллиптический интеграл (классический небе- рущийся).
Но это уже совсем другая история.
Хроника олимпиад
№
Дата проведения
Учебные заведения
Количество команд
Количество участников
6
20 февраля 2005
17
36
103
5
22 февраля 2004
19
46
137
4
23 марта 2003
20
47
138
3
17 марта 2002
20
35
101
2
24 мая 2000
12
31
87
1
26 мая 1999
6
13
33
Первые две Олимпиады (1999 и 2000 годов) проводились в рамках Балтийской студенческой олимпиады по автоматическому управлению в форме отдельной секции под названием “Основы кибернетики”. Место проведения секции — Санкт- Петербургский городской Дворец творчества юных (ДТЮ). Поскольку мероприятия Балтийской олимпиады занимали три дня, некоторые школьники смогли принять участие в научных секциях — и не только послушать, но и выступить с собственными докладами.
В 1999 году количество участников было невелико — 13 команд из 6 учебных заведений (ФМЛ 239, ФМЛ 366, Гимназия 344, школы 519 и 570, НОУ “Гармония”). Всего — 33 человека. Все разместились в трех смежных аудиториях отдела техники ДТЮ. Поскольку опыта у организаторов еще недоставало, состав задач оказался достаточно легким. Это привело к тому, что три команды успели решить все задачи до окончания соревнований.
Не обошлось и без первого забавного казуса. Если участникам было что-то неясно, они имели возможность задавать
вопросы в письменном виде. Чаще всего приходилось отвечать “без комментариев” — когда в условиях задачи информация имелась или вопросы ставились так, что ответ был бы подсказкой. Несколько вопросов касались простейшей физической задачи “Равновесие” (чтобы ее немного усложнить, в условие ввели избыточные данные). Вот два таких вопроса: “является ли заданная сила трения силой трения о плоскость?” и “все ли параметры идеальны — нить нерастяжима, нет трения о барабан?..”. Вопросы организаторов насторожили, поскольку в команду, их задавшую, входили победители физических и математических олимпиад. Разгадка оказалась простой: пример, приведенный в условиях задачи, содержал опечатку, которая в сочетании с лишними данными сбила ребят с толку и они стали пытаться учесть все возможные факторы, которые обычно в расчет не принимаются. У тех же, кто не задумывался, что нить бывает растяжимой, а воздух — вязким, задача если и вызвала трудности, то совсем иного рода.
В 2000 году при составлении задач организаторы пошли на эксперимент: кроме задач на написание программ, были предложены две задачи, не укладывающиеся в эту схему — их решения проверялись вручную и результат добавлялся к числам автоматически сформированного рейтинга. Эти результаты почти не повлияли на первоначальный расклад, поскольку задачу “Шифр” правильно решило большинство, а с роботом-хоккеистом не справился никто (хотя некоторые шаги в верном направлении были). Эксперимент был признан неудачным из-за того, что окончательные результаты становятся известны с большой задержкой и ручная проверка менее объективна. Когда и если система позволит проверять непрограммные решения автоматически, к таким зада-
чам можно будет вернуться.
В 2002 году, после годичного перерыва, проведение олимпиад было возобновлено, но уже отдельно от Балтийской олимпиады. Тогда же утвердилось название “Олимпиада по кибернетике”, олимпиада обрела свой web-сайт (http://cyber-net.spb.ru) и свою эмблему (см. обложку). На сайте публикуются задачи и другая информация, а значки с эмблемой выдаются всем участникам олимпиад.
На олимпиадах 1999 и 2000 годов при подсчете рейтинга команд система использовала знакомую многим участникам олимпиад по программированию “облегченную ЭйСиЭм” формулу: решение проходит 10 тестов и подсчитывается количество успешно пройденных. Если верны все 10 — сумма удваивается (дается 20 баллов). При равном количестве баллов у разных команд учитывается время подачи решений и штраф за лишние попытки.
С 2002 года формула изменилась (см. раздел “Правила проведения олимпиады”). Главный аргумент был такой: задачи имеют разную сложность и все участники стремятся решать в первую очередь простые задачи. Если задач больше, чем удается решить самым сильным, наиболее сложные (и интересные) задачи остаются нерешенными. Чтобы поощрить участников за решение сложных задач, было решено ввести для задач весовые коэффициенты. Вес задачи определяется системой автоматически и может меняться по ходу олимпиады. Чем меньше правильных решений подано для задачи (в сравнении с остальными задачами), тем больше ее вес. Здесь использован принцип обратной Связи: участники своими действиями определяют сложность задач, выступая в роли экспертов. Это более объективно, чем, если бы вес задачи определялся организаторами. Кроме того, обратная
связь — это так кибернетично!
В 2002 году был зафиксирован еще один казус, более похожий на инцидент (следствие “человеческого фактора”). По окончании соревнований к организаторам подошла команда во главе с Дмитрием Павловым (впоследствии занявшим первое место на командном чемпионате мира по программированию) и уверенно сообщила, что в одном из проверочных тестов к задаче “Агентурная сеть” есть ошибка — так оно и оказалось. Поскольку затруднительно предсказать, как исправление ошибки повлияет на весовые коэффициенты и баллы других участников, в подобных ситуациях пересчет не производятся. Ошибка для всех одна и та же.
Похоже, Дмитрий не забыл незаслуженную обиду (организаторы догадались об этом, заглянув гостевую книгу сайта). Можно лишь добавить: ошибки, как и вся олимпиада — результат тяжелого труда, от них не отказываемся. Знаете, кто никогда не ошибается? И, честное слово, ничего личного!
В 2002 — 2005 годах Олимпиада продолжала набирать силу. К ее подготовке и проведению присоединялись как новые специалисты, так и студенты (некоторые - в прошлом сами участники Олимпиады). Расширилась география участников: Петродворец, Пушкин, Гатчина, Сосновый Бор, Всеволожск, Петрозаводск.
17 декабря 2005 года совместно с Ленинградским областным институтом развития образования (ЛОИРО) была проведена экспериментальная олимпиада среди школьников Ленинградской области. В ней приняло участие 36 команд (104 человека). Существенное отличие этих соревнований состояло в том, что они проходили дистанционно: команды находились в 8 различных центрах, расположенных в разных районах области. В организации соревнований участвовали рай-
онные Центры информационных технологий Гатчины, Гатчинского района, Кингисеппа, Кировска, Луги, Соснового Бора, Пикалево и Центр "Интеллект расположенный в Лисьем Носу. Кроме того, вне зачета, в олимпиаде приняли участие 3 команды из Мурманска и Мурманской области.
Положительная сторона дистанционной технологии проведения олимпиад: в них могут принять участие и те, у кого нет возможности приехать в Петербург. Кроме того, количество участников не ограничивается количеством рабочих мест в единственном здании.
Рождение и эволюция автоматической системы проверки решений
Вызывает антирес
Ваш технический прогресс:
Как у вас там сеют брюкву —
С кожурою али без?..
(Л. Филатов, "Сказ про Федота-стрельца, удалого молодца")
Идея системы
Как учил Платон, для всякой вещи из физического мира в потустороннем “мире идей” имеется прообраз, “идея” этой вещи. А поскольку подобные системы уже существуют и успешно функционируют, очевидно, что и для них есть идеальный прообраз — остается только мысленно проникнуть в мир идей и взглянуть на него (на реальные воплощения вблизи посмотреть не довелось).
Наблюдение позволило выявить основные функции (операции) в системе:
Каким-то образом принимать файлы решений от участников и регистрировать их.
Проверять зарегистрированные решения и выставлять по ним оценки.
Уведомлять участников о результатах проверки решений.
Формировать рейтинг участников (для каждого участника суммировать баллы, набранные по всем задачам и сортировать участников по этой сумме).
Перечисленные операции могут выполняться последовательно или параллельно (в виде разных процессов или даже на разных компьютерах). При работе на единственном компьютере в однозадачной среде применим только первый вариант. Второй вариант предпочтительнее, при нем задержки в выполнении одной операции меньше влияют на выполнение других. Более того, если некоторая операция (скорее всего, проверка), значительно более трудоемка, чем другие, ее могут выполнять сразу несколько параллельно работающих процессов. Обратная сторона параллельности — потенциальная опасность конфликтов между взаимодействующими процессами.
Система должна быть способна восстанавливаться после возможных сбоев (продолжать работу с того места, на котором она была прервана), чтобы избежать повторной проверки, а главное — потери данных.
Прием и регистрация решения:
Передача решения на проверку происходит только по инициативе участника.
Решение передается в виде исходного текста программы (на одном из языков программирования, известных системе).
После того, как участник передал решение на проверку, он не может отменить свое действие.
Система фиксирует последовательность и точное время поступления решений. Для каждого решения также запоминается идентификатор участника.
Каждое решение может иметь один из трех признаков состояния: “не проверено”, “в процессе проверки” и “проверено”. В зависимости от реализации, еще может понадобиться признак “уведомление послано”, информирующий, что решение не только проверено, но и участник уведомлен о результате проверки. При регистрации решение получает признак начального состояния — “не проверено”.
Проверка зарегистрированных решений:
Решения проверяются в том порядке, в котором они поступили в систему (исключением является случай, когда параллельно работает несколько процессов проверки).
Нужно выяснить, на каком языке программирования составлено решение (как его обрабатывать). Для этого используется расширение имени присланного участником файла.
Нужно выяснить, к какой именно задаче относится решение. Либо имя файла должно иметь специальный вид, позволяя однозначно определить номер задачи, либо от участника потребуется сообщать номер задачи другим способом — отдельно от файла или внутри файла (что менее желательно).
Если язык программирования требует предварительной компиляции, следует вызвать внешний компилятор для создания исполняемого файла. Система не должна быть жестко привязана к каким-то определенным компиляторам. Список и местоположение внешних компиляторов должны передаваться системе при ее настройке (в файле конфигурации).
Решение проверяется на нескольких вариантах входных данных. Для каждого варианта нужно выполнить полученный исполняемый файл, подавая ему на вход соответствующие входные данные. Наборы файлов проверочных входных данных (и, возможно, файлы эталонных решений для проверки) должны быть созданы для каждой из задач.
После каждого запуска нужно проверить результирующий набор данных. В простых случаях можно сравнивать выходной файл с эталонным некоторым стандартным способом (посимвольно, как последовательность
чисел и т.п.). В более сложных — может понадобиться уникальная для данной задачи проверочная программа. Способ проверки каждой задачи указывается в конфигурации системы.
Результаты проверки по всем успешно пройденным тестам складываются и запоминаются системой как атрибут этого решения. Решению присваивается статус “проверено”.
Уведомление участников о результатах проверки:
Специальная операция уведомления необходима, если участник не имеет возможности самостоятельно обратиться к системе с запросом о результате проверки.
Участнику может передаваться информация о результате компиляции (возможно, даже текст сообщения компилятора), а главное — о количестве успешно пройденных тестов (но не исходные данные тестов).
Формирование рейтинга участников:
Задача формирования рейтинга является достаточно трудоемкой (особенно, при большом количестве участников). Не следует давать участникам возможность самостоятельно инициировать эту операцию.
Для каждого участника подсчитывается текущая сумма набранных им баллов. Сумма может зависеть от количества попыток и времени отправки решений задач, баллов, полученных за наиболее успешную попытку по каждой задаче, сложности задач.
Участники упорядочиваются по убыванию баллов. В таблицу рейтинга пишется имя (название) участника, сумма баллов и все данные, из которых эта сумма сформирована — наилучшие баллы по каждой задаче, число попыток и т.п.
Управление работой системы: организаторы должны иметь возможность включать или приостанавливать выполнение отдельных операций, не завершая работы системы. Например, формирование рейтинга участников может быть остановлено раньше окончания соревнований. В назначенное время завершается прием решений, но проверка решений продолжается до исчерпания списка уже зарегистрированных решений.
Версии системы
Первая версия системы была рассчитана на работу исключительно под DOS. Всю свою сознательную жизнь она провела на винчестере в 40 Мб (когда появится музей олимпиады, этот 11 винт "займет в нем почетное место). Система была использована на олимпиадах 1999 и 2000 годов, а также — на нескольких внутрикафедральных и выездных мероприятиях рангом ниже. Ее удобство было в мобильности: принесли винчестер с собой, подключили к какому-либо компьютеру, настроили нужные параметры — и можно начинать. Главным ограничением была необходимость наличия локальной сети под управлением Novell Netware. С другой стороны, система потому и была рассчитана на Netware, что эта ОС в то время использовалась в большинстве локальных сетей (а главное — в сети ДТЮ, в котором проходила олимпиада).
Каждый участник получал собственную учетную запись и три персональных каталога на сетевом диске Netware. Один каталог — для работы, в нем пользователь имел права на любые операции. Второй каталог — выходной, в него участники копировали файлы с готовыми решениями для отправки на проверку. Право было только на создание файла, но не на перезапись существующего — что отправлено, изменить уже нельзя. Права на сканирование (просмотр списка файлов) и просмотр самих файлов также были не нужны. Третий каталог был доступен на сканирование и чтение — в него система писала уведомления для пользователей. И еще один сетевой каталог был общим для всех пользователей: в нем хранился сформированный файл рейтинга и программа для его просмотра. Система имела доступ к выходным и входным каталогам участников, а также к общему каталогу.
Все четыре описанные выше функции системы выполнялись одной программой — поочередно. Ниже приведен псевдокод, упрощенно описывающий работу программы.
read ( параметры конфигурации ) while ( не конец работы ) {
if ( keypressed ) {
if ( нажата управляющая клавиша ) { включить/выключить соответствующее разрешение или завершить работу системы
(в зависимости от нажатой клавиши) }
if ( разрешен прием ) {
for each ( выходной каталог участника ) { перенести (и зарегистрировать) все имеющиеся
файлы в систему и пометить их как непроверенные
if ( разрешена проверка ) {
if ( ранее программа была прервана
в момент проверки )
продолжить работу с нужного места
for each ( непроверенное решение ) {
скомпилировать решение
if ( компиляция успешна ) {
for( i=0; i<10; i++ ) {
сохранить номер текущего теста (i) выполнить программу с i-м входным файлом выполнить программу проверки решения сохранить результат проверки
сохранить сумму набранных баллов пометить решение как проверенное
if ( разрешены уведомления ) {
for each ( проверенное решение ) {
записать уведомление во входной каталог участника пометить, что уведомление послано }
if ( разрешена генерация рейтинга ) { сгенерировать текущий рейтинг участников
Кроме того, система обрабатывала прерывания от таймера, подсчитывая время выполнения программы-решения. При превышении допустимого лимита времени выполнялась перезагрузка компьютера. Перезагрузка происходила и при некоторых сбоях в проверяемой программе (чаще всего — при выходе за пределы массива). После перезагрузки система стартовала автоматически и продолжала работу с теста, следующего за тестом, вызвавшим сбой.
Система не была достаточно защищена от атак участников (а ведь почти каждый юный программист — хакер в душе). Однако был зафиксирован единственный успешный и достаточно безобидный случай такого рода — под конец товарищеских соревнований в 366 школе местные участники (знакомые с устройством своей сети) поместили в выходной каталог файл с именем AUX (кто не знает — это служебное имя в DOS). В процессе сканирования системе не удавалось перенести этот файл к себе, поскольку он-не удалялся обычными средствами (требовалось использовать утилиту Netware). Такой результат сбивал систему с толку, и она повторяла попытку на следующем витке.
Вскоре стало очевидно, что система требует переработки. Конечно, работа под “чистым DOS” уже казалась анахронизмом. Был и более серьезный аргумент: обычно количество поступающих в систему решений возрастает и достигает пика перед самым окончанием соревнований. При большом числе участников очередь на проверку становится очень длинной и требуется много времени на ее обработку (как раз тогда, когда все участники уже свободны и мучаются от неопределенности). Требовалось отделить проверочное приложение от остальной системы и сделать возможным запуск параллельных его копий на одном или нескольких выделенных
компьютерах.
Вторая версия системы работала под Windows и состояла из трех основных приложений: сервера, сканера и тестера. Сервер обеспечивал хранение данных (включая файлы решений) в базе данных формата Access, с которой общался через интерфейс ODBC. Тестер запрашивал у сервера решения для проверки, результаты которой передавал обратно серверу. Перезагрузки компьютера при проверке задач больше не требовалось, поскольку функции управления процессами в Windows API позволяют корректно завершать и аварийные и просто зависшие программы. Сканер выполнял сбор решений прежним способом (обходом каталогов), но передавал их серверу для размещения в БД. Также сканер рассылал уведомления участникам. Для взаимодействия сканера и тестера с сервером был разработан собственный прикладной протокол, использующий транспорт стека TCP/IP.
В таком виде система пережила только одну олимпиаду. Несмотря на переход под Windows и разделение приложений, осталось много нерешенных проблем. Так, алгоритм сканера изменился мало и, как и раньше, был ориентирован на работу преимущественно в локальной сети Netware. Постоянное сканирование сетевых дисков (большей частью — вхолостую) сильно загружало сеть и нервировало сетевых администраторов. Еще важная деталь — теперь вместо винчестера кому-то приходилось носить на себе целый сервер, при этом — предварительно сконфигурированный.
Наконец, настал и на нашей улице Интернет. Локальная сеть ДТЮ была переведена на протокол IP, что сразу расширило возможности развития системы.
Третья версия системы существенно отличалась от предыдущих. Она поддерживала проведение соревнований,
распределенных в пространстве (что, к сожалению, в то время использовать не удалось). Поскольку имелись опасения, что в ответственный момент связь с Интернет может прерваться, для перестраховки систему сделали не просто распределенной, а сверхраспределенной... Но лучше обо всем по порядку.
Большая часть взаимодействия участников с системой происходит через web-pecypc, названный офисом. При взаимодействии используется любой доступный web- обозреватель. Для персонализации доступа к офису, каждому участнику присваивается уникальный идентификатор и пароль. В офис участники загружают решения, там же видят результаты проверки своих решений. Через офис можно обратиться с вопросом к жюри и получить ответ. Серверная часть была реализована как набор скриптов на PHP с использованием СУБД MySQL. Поскольку теперь участники сами работали с системой, приложение-сканер было ликвидировано за ненадобностью.
Однако тестер остался. Изменился только протокол его взаимодействия с офисом (сервером, хранящим решения участников и результаты их проверки). Теперь используется традиционный (как, впрочем, и единственно возможный) способ взаимодействия с web-сервером — протокол HTTP, только дополненный собственными нестандартными полями заголовков.
С одним офисом может работать одновременно один или несколько тестеров. Но и самих офисов может быть несколько. Предполагалось, что при распределенной работе в условиях неустойчивой связи каждый офис может быть расположен ” ближе” (в смысле качества связи) к определенной группе участников.
“А как же связь между группами, где же общий центр?” — спросите вы и будете совершенно правы. Центр, вершина системы — это еще один web-ресурс. Именно через центр организаторы вводят в систему список участников, назначая пароли (после чего центр связывается с офисами по HTTP и передает им списки участников). Именно центр отвечает за генерацию и отображение общего рейтинга участников (для этого ему приходится периодически опрашивать офисы, собирая и обобщая результаты проверки решений).
Ну что еще можно сказать? Хороший был замысел, масштабный. Только хлопот много: для размещения каждого офиса нужен web-сервер с базой данных, да и офисов больше одного в реальности не потребовалось. А что касается качества связи — если надолго оборвется, то в любом случае проблем будет достаточно.
В последние два года использовалась уже четвертая версия системы, полученная из третьей путем отсечения лишних функций. Офис и центр разместились на одном web-сервере и обращались к одной базе данных — синхронизация между ними стала ненужной. Внешнее визуальное разделение на офис и головную часть осталось, но и предназначены эти два интерфейса для разного: офис — для персонального доступа участника к системе, вершина — для отображения публичной информации.
Перспективы развития системы
...А что там еще впереди?
Дорога, дорога, дорога.
(Ю. Левитанасий, “Дорога”)
Не изменяется только то, что уже умерло и превратилось в окаменелость — предмет интереса археологов. Дальнейшее развитие системы во многом зависит от развития самой олимпиады — расширения классов олимпиадных задач, географического распространения, частоты проведения соревнований.
Последняя версия системы ориентирована на работу через web, но ее положение в Интернет еще очень непрочно. Использование арендуемого web-сервера накладывает некоторые ограничения. В частности, приложение-тестер (отвечающее за проверку решений) приходится запускать где-то отдельно — а для обеспечения его непрерывной работы потребуется уже собственный сервер. Естественным следующим шагом представляется объединение сервера и тестирующего модуля (диалектический возврат к началу на качественно новом уровне) и обеспечение непрерывной работы системы.
Обновление списка используемых компиляторов необходимо, здесь не предвидится больших трудностей. Но вопрос можно поставить иначе: что является решением олимпиадной задачи? Программа на C++, Pascal, Delphi? Или все-таки алгоритм, формула, некоторый способ переработки данных? Или даже некоторая идея, выраженная последовательностью символов? Возможно, достаточно и одного языка программирования с простым и ясным синтаксисом и поддержкой всех необходимых алгоритмических конструкций и функций, но без излишеств.
Программа — это способ представления решения в виде, удобном для проверки компьютером. Но существует много задач, решение которых невозможно записать в форме программы (либо при этом они теряют привлекательность). И эти задачи тоже могут представлять интерес при проведении соревнований. Не обязательно сразу ударяться в искусственный интеллект и семантический анализ, возможно, в результате все окажется не таким уж и сложным. Будущее покажет. Пока просто сделаем пометку в блокноте: программа — частный случай формы представления решений.
Результаты олимпиад
Результаты олимпиады 1999 г.
Победители Олимпиады.
Место 1. Команда 239-2:
Балтийский Сергей Андреевич (ФМЛ 239),
Демченко Максим Николаевич (ФМЛ 239), Первышев Константин Вячеславович (ФМЛ 239).
Место 2. Команда 239-1:
Наумов Лев Александрович (ФМЛ 239),
Петров Федор Владимирович (ФМЛ 239), Шапиро Александр Ильич (ФМЛ 239).
Место 3. Команда 344-1:
Бадылин Анатолий Михайлович, Михайлов Сергей Геннадьевич, Рублев Андрей Владимирович.
Результаты олимпиады 2000 г.
Победители Олимпиады.
Место 1. Команда 239-1:
Балтийский Сергей Андреевич (ФМЛ 239),
Демченко Максим Николаевич (ФМЛ 239), Первышев Константин Вячеславович (ФМЛ 239).
Место 2. Команда 30-3:
Пименов Александр Александрович (ФМГ 30), ПТиндер Евгений Константинович (ФМГ 30).
Место 3. Команда ДТЮ-1:
Бух Борис Ефимович,
Кутищев Александр Александрович, Латыпов Виктор Николаевич.
Результаты олимпиады 2002 г.
Победители Олимпиады.
Место 1. Команда ФМГ-30-11-1:
Усевич Константин Дмитриевич (ФМГ 30), Хлебников Ростислав Александрович (ФМГ 30), Жданов Андрей Дмитриевич (ФМГ 30).
Место 2. Команда ФМЛ 239-1:
Синев Игорь Александрович (ФМЛ 239), Павлов Дмитрий Станиславович (ФМЛ 239), Сатюков Роман Валерьевич (ФМЛ 239).
Место 3. Команда GAS-261:
Чащев Андрей Сергеевич (Гимназия №261), . Семенов Алексей Александрович (Гимназия №261),
Григорьев Юрий Александрович (Гимназия №261).
з 2
20
5
20 3
20 1
20 1
20 1
20 3
20 1
20
1
20 3
2
1
20 3
20 1
8
2
20
1
20 1
20 1 4
1 0
1 О О
20
2
3
1
20 1
Номер задачи:
1
2
Вес задачи:
4
2
1) ФМГ-30-11-1
4
20
(Физ.-мат. гимназия №30)
2
1
2) ФМЛ 239-1
9
20
(Физ.-мат. лицей №239)
1
1
3) GAS-261
0
20
(Гимназия №261)
1
2
4) ШТЕАНИКТ
0
20
(Лицей "ФТШ")
0
2
5) ФМЛ-366
0
20
(Физ.-мат. лицей №366)
0
1
6) ФМЛ 239-V
4
20
(Физ.-мат. лицей №239)
3
1
7) Matrix
4
20
(Лицей "ФТШ")
2
1
8) ФМЛ 239-П
0
20
(Физ.-мат. лицей №239)
0
1
9) Гатчинский лицей
0
20
(МОУ "Лицей №3"Гатчина)
0
1
10) ФМГ-30-CGSGl
0
20
(Физ.-мат. гимназия №30)
0
1
11) Rulezzz
0
20
(Лицей "ФТШ")
0
1
12) ФМГ-30-ISGl
0
20
(Физ.-мат. гимназия №30)
0
1
13) BAGG-261
0
20
(Гимназия №261)
0
1
14) schools
2
0
(Лицей №8 Сосновый Вор)
2
0
15) СПбГДТЮ-2
0
9
(Дворец творчества юных)
0
2
16) ФМГ-30-СС8С2
1
20
(Физ.-мат. гимназия №30)
2
1
17) Гранит
0
20
(Лицей №13 Петрозаводск)
0
1
18) ФМГ-30-CGSGS
1
20
(Физ.-мат. гимназия №30)
1
1
19) СП6ГДТЮ-1
1
20
(Дворец творчества юных)
1
2
20) Noname
5
0
(Ун. лицей Петрозаводск)
2
0
21) VsevLiceum 1
0
20
(Лицей №1 Всеволожск)
0
2
22) BUG-261
0
0
(Гимназия №261)
0
1
4
6
в
7
8
9
3
3
2
4
4
3
20
20
20
0
20
20
374
5
2
2
3
1
2
20
20
20
4
1
20
350
1
1
1
1
2
1
20
20
20
9
4
20
336
1
2
1
3
2
2
20
20
20
0
0
20
289
2
1
1
2
1
4
20
6
20
5
1
9
233
4
1
1
2
1
4
20
1
20
5
0
9
228
3
1
2
2
0
2
6
7
20
0
1
20
226
4
3
1
4
1
1
20
8
20
5
1
5
224
3
2
2
3
2
2
20
0
20
0
1
5
193
1
2
1
1
2
1
20
9
20
0
2
7
191
2
3
1
2
1
2
20
0
20
0
0
5
187
2
0
1
2
1
2
20
8
5
0
0
5
186
2
1
1
0
0
1
20
9
5
0
0
6
166
1
1
1
1
0
2
20
0
20
0
0
6
159
1
1
1
1
0
3
3
0
20
3
0
9
138
3
0
1
1
1
2
4
0
20
0
1
1
136
2
1
1
1
1
1
7
0
20
0
1
7
134
1
1
1
0
1
1
3
0
20
5
1
3
120
2
1
1
1
1
2
3
9
20
0
0
0
115
2
1
1
1
0
0
3
9
0
0
0
9
111
3
1
0
0
0
2
1
9
20
0
0
0
108
4
3
1
1
0
0
3
0
7
5
0
5
91
2
1
1
2
1
1
Номер задачи:
1
2
3
4
б
в
7
8
9
Вес задачи:
2
4
3
3
2
3
3
4
2
23) JMP
0
1
0
8
0
20
0
0
5
73
Сборная (Школы №№ 92, 597)
0
1
0
4
0
2
0
0
1
24) UKV-261
0
0
5
8
0
20
0
0
0
69
(Гимназия №261)
0
0
2
2
3
1
1
0
0
25) СПбГДТЮ-3
4
0
3
3
1
6
0
0
4
48
(Дворец творчества юных)
2
2
1
2
1
1
2
2
3
26) Петергофские гимназисты
2
0
0
0
0
20
0
0
0
44
(Гимназия №415 Петродворец)
3
0
0
1
3
1
0
0
0
27) 163
0
0
0
2
0
20
0
1
0
43
(Школа №163)
0
3
0
3
0
1
1
2
0
28) ФМЛ 239-IV
0
0
3
0
0
6
3
0
3
30
(Физ.-мат. лицей №239)
0
0
3
0
0
1
2
0
2
29) Квертеры
0
0
3
3
0
3
0
0
0
16
(Школа №12)
0
0
2
2
0
2
0
0
0
29) Правец
0
8
0
0
0
0
0
0
0
16
(Школа №528)
0
1
0
0
0
0
0
0
0
30) sch56[llv]
0
0
0
1
0
6
0
0
0
10
(Гимназия №56)
0
2
0
4
0
2
1
0
0
31) TORS-261
0
0
0
1
0
0
2
0
0
4
(Гимназия №261)
0
1
0
2
0
0
3
1
0
32) 242
0
0
0
0
0
0
0
0
0
0
(Школа №242)
0
0
0
5
0
0
0
0
0
32) Soft
0
0
0
0
0
0
0
0
0
0
(Школа №264)
0
0
0
0
0
0
0
0
0
32) Совята
0
0
0
0
0
0
0
0
0
0
(Школа №139)
0
0
0
0
0
16
0
0
0
Результаты олимпиады 2003 г.
Победители Олимпиады.
Место 1. Команда GotoXY:
Дворкин Михаил Эдуардович (ФТШ), Полевиков Владимир Алексеевич (ФТШ), Ярославцев Григорий Николаевич (ФТШ).
Место 2. Команда Безумное Чаепитие:
Антипов Дмитрий Юрьевич (ФТШ),
Вокин Андрей Владимирович (Л№8, г.Сосновый Бор), Чихачев Кирилл Борисович (ФМЛ 239).
Место 2. Команда Matrix:
Кирпичев Евгений Рудольфович (ФТШ), Кропп Виктор Викторович (ФТШ), Кузнецов Антон Михайлович (ФТШ).
Место 3. Команда ФМЛ 239-1:
Дубашинский Михаил Борисович (ФМЛ 239), Стрижков Дмитрий Дмитриевич (ФМЛ 239), Федоров Алексей Анатольевич (ФМЛ 239).
Номер задачи:
1
2
8
4
Б
в
7
8
Вес задачи:
2
3
8
3
3
4
2
2
1) GotoXY
20
8
0
9
20
2
20
20
227
(Лицей "ФТШ")
2
3
0
1
2
3
1
1
2) Безумное Чаепитие
20
8
0
0
20
0
20
20
188
(Центр СПбГУИТМО)
2
6
1
2
5
0
1
2
3) Matrix
20
6
1
0
20
0
20
20
187
(Лицей "ФТШ")
3
5
1
2
4
1
1
1
4) ФМЛ 239-1
20
4
20
0
2
0
20
8
170
(Физ.-мат. лицей №239)
1
1
1
0
1
0
1
4
Номер задачи:
1
2
3
4
Б
в
7
8
Вес задачи:
2
3
3
3
3
4
2
2
5) PML-30-CGSG-2
20
8
0
0
'б
0
20
7
132
(Физ.-мат. лицей №30)
1
1
0
0
1
0
3
3
6) ФМЛ 239-2
20
2
0
0
0
0
20
20
121
(Физ.-мат. лицей №239)
1
2
0
0
0
1
3
1
7) ФМЛ 239-4
1
8
1
2
4
0
20
20
117
(Физ.-мат. лицей №239)
2
3
1
1
3
1
1
2
8) PML-30-10
20
8
0
0
1
0
20
7
113
(Физ.-мат. лицей №30)
2
3
0
0
2
0
1
1
9) UKV-261
2
8
1
2
1
0
20
20
109
(Гимназия №261)
1
6
1
1
3
3
1
3
10) ТС-1
20
7
1
0
3
0
20
0
108
(Дворец Творчества Юных)
2
1
1
3
2
1
1
1
11) BGG-261
0
4
1
2
1
0
20
20
94
(Гимназия №261)
0
6
1
1
1
3
5
1
12) DreamTeam
20
0
1
0
3
0
20
0
92
(Лицей "ФТШ")
1
3
1
0
1
4
1
4
13) Users
4
6
1
2
1
1
20
6
88
(Лицей "ФТШ")
1
1
1
1
1
6
1
2
14) PML-30-CGSG-3
2
0
0
0
1
0
20
20
85
(Физ.-мат. лицей №30)
2
0
0
0
1
0
1
1
15) PML-30-CGSG-1
0
0
1
0
2
0
20
20
81
(Физ.-мат. лицей №30)
1
0
1
0
4
1
1
2
16) GVV-261
4
8
1
0
1
0
20
0
75
(Гимназия №261)
1
2
1
1
1
1
1
1
17) PUL-261
1
6
1
2
1
1
20
4
67
(Гимназия №261)
4
3
2
1
5
3
1
2
17) Гатчина №3
0
8
0
0
2
0
20
1
67
(МОУ "Лицей №3 "Гатчина)
0
1
0
0
2
0
1
2
19) Fornever
1
6
0
0
0
0
20
9
64
(Лицей "ФТШ")
1
4
2
0
0
0
1
16
20) ФМЛ 239-5
2
5
1
2
1
0
20
0
63
(Физ.-мат. лицей №239)
1
3
1
1
6
1
2
2
21) SMART
0
4
0
0
2
0
20
4
60
(Лицей №13 Петрозаводск)
0
2
0
0
2
0
1
1
21) ФМЛ 239-3
2
1
1
2
1
0
20
4
60
(Физ.-мат. лицей №239)
6
1
1
2
1
2
1
1
21) REX
4
8
0
0
1
0
20
0
60
(Лицей "ФТШ")
6
6
0
0
2
3
2
0
24) Гатчина №1
2
0
0
0
4
0
20
0
56
(МОУ "Лицей №3"Гатчина)
1
0
0
1
1
0
1
0
25) PML-30-CGSG-4
0
3
0
0
0
0
20
7
55
(Физ.-мат. лицей №30)
0
5
0
0
0
0
1
3
26) Вундеркинды
0
6
0
0
1
1
20
0
52
(Дворец Творчества Юных)
0
6
0
1
3
2
1
0
Номер задачи:
1
2
8
4
Б
в
7
8
Вес задачи:
2
8
3
8
3
4
2
2
27) TSB-261
0
3
0
0
0
0
20
0
49
(Гимназия №261)
0
1
0
0
0
3
1
0
28) Всеволожский лицей
0
4
0
0
1
0
20
0
46
(Лицей №1 Всеволожск)
0
4
0
0
7
6
1
0
29) PML-30-CGSG-5
0
0
0
0
1
0
20
2
44
(Физ.-мат. лицей №30)
0
2
0
0
5
0
1
1
30) WAP
0
0
0
0
0
0
20
0
40
(Школа №242)
0
0
0
0
0
0
1
0
30) ST
0
0
0
0
0
0
20
0
40
(Школа №242)
0
0
0
0
0
0
1
0
32) Гимназия 330
0
0
0
0
0
0
20
0
38
(Гимназия №330)
0
2
0
0
0
0
3
0
32) ТС-2
0
0
0
0
0
0
20
2
38
(Дворец Творчества Юных)
0
3
0
0
0
0
3
5
34) Гатчина №2
20
0
0
0
1
0
0
0
36
(МОУ "Лицей №3" Гатчина)
6
0
0
0
4
0
0
0
35) PhML-366
0
8
0
0
3
0
0
0
30
(Физ.-мат. лицей №366)
0
2
0
0
1
0
0
0
36) PML-30-11-3
2
3
1
2
1
0
1
0
24
(Физ.-мат. лицей №30)
1
2
1
1
1
1
1
1
37) 519
0
0
0
0
0
0
0
7
12
(Школа №519)
0
0
0
0
0
2
0
2
38) FORWARD
0
0
0
0
1
0
5
0
10
(Школа №22)
0
0
0
0
2
0
1
0
39) PAZ-261
4
0
0
0
1
0
0
0
6
(Гимназия №261)
2
0
0
0
5
1
0
0
40) Выход
0
0
0
0
0
0
0
0
0
(Школа №521)
1
1
0
0
5
1
0
0
40) Мыслители
1
0
0
0
1
0
0
0
0
(Школа №139)
3
0
0
0
5
0
0
2
40) Инфоманы
0
0
0
0
0
0
0
0
0
(Школа №139)
0
6
0
0
0
4
0
0
40) Веб-дизайн ИКЦ
0
0
0
0
0
0
0
0
0
(Израильский Культурный Центр)
0
0
0
0
0
0
0
0
40) 335
0
0
0
0
0
0
0
0
0
(Школа №335)
0
0
0
0
2
4
6
0
40) 570
0
0
0
0
0
0
0
0
0
(Школа №570)
0
0
0
0
0
0
0
0
40) Гига
0
0
0
0
0
0
0
0
0
(Гимназия №470)
0
0
0
1
0
0
0
0
40) 10-Л-Юн
0
0
0
0
0
0
0
0
0
(Гимназия №470)
0
1
0
0
0
0
1
0
Результаты олимпиады 2004 г.
Победители Олимпиады.
Место 1. Команда А 239 КМ 30 RUS:
Зыкова Александра Борисовна (ФМЛ 30), Иванов Михаил Анатольевич (ФМЛ 239), Чихачев Кирилл Борисович (ФМЛ 239).
Место 2. Команда ЦП СПбГДТЮ:
Губаненков Глеб Сергеевич (ФМЛ 239), Левченко Виталий Андреевич (ФМЛ 239), Мальков Виктор Владимирович (ФМЛ 239).
Место 3. Команда Н83:
Подхалюзин Александр Викторович (ФМЛ 239), Стрюк Леонид Евгеньевич (ФМЛ 239), Шмаков Кирилл Игоревич (ФМЛ 239).
Номер задачи:
1
2
3
4
Б
в
7
8
9
Вес задачи:
2
4
3
3
2
3
3
4
2
1) А 239 КМ 30 RUS
20
0
20
9
20
20
20
0
20
317
(Ф.-м. лицеи №239, №30)
4
0
1
2
1
1
2
0
1
2) ЦП СП6ГДТЮ
20
2
20
20
20
20
0
0
20
296
(Дворец творчества юных)
1
2
1
3
2
3
1
0
1
3) Команда №3
20
20
0
8
4
2
0
0
20
193
(Физ.-мат. лицей №239)
2
1
0
3
1
1
1
0
1
4) KLK-261
20
0
0
4
20
3
20
0
20
191
(Гимназия №261)
2
1
0
1
2
2
2
0
1
5) Команда №1
20
0
20
8
0
3
9
0
20
189
(Физ.-мат. лицей №239)
2
0
2
1
0
3
3
1
1
6) ФМЛ 30-6
20
2
1
20
20
0
1
0
20
186
(Физ.-мат. лицей №30)
1
1
1
3
1
1
2
3
3
7) Carpenters
20
0
0
5
20
20
0
0
20
184
(Лицей "ФТШ")
1
0
0
5
1
3
1
1
2
8) DSP
20
2
1
20
9
3
2
0
20
177
(Лицей "ФТШ")
1
1
1
1
3
3
1
1
2
9) Wx4
20
0
0
8
20
20
0
0
0
162
(Ун.л. №37 Петрозаводск)
1
0
0
1
2
1
1
0
5
10) Команда №2
20
0
0
20
0
2
6
0
20
143
(Физ.-мат. лицей №239)
1
0
0
4
0
5
3
1
9
11) Users
20
0
3
8
5
0
20
0
0
135
(Лицей "ФТШ")
1
0
1
4
2
1
1
1
2
12) АГ СПбГУ
0
0
0
20
9
0
9
0
20
133
(СУНЦ АГ СПбГУ)
2
0
0
4
1
0
5
0
1
13) Гатчина 2
20
0
0
5
9
0
20
0
0
128
(МОУ "Лицей №3"Гатчина)
2
0
0
2
1
0
1
0
1
14) Нейромозг
20
0
0
0
8
20
1
0
0
111
(Дворец творчества юных)
1
0
0
0
2
2
2
1
0
15) ФМЛ 30-2
2
0
0
0
20
20
2
0
0
108
(Физ.-мат. лицей №30)
2
0
0
1
1
1
1
0
0
16) ROOTS
20
0
0
20
0
0
0
0
0
97
(Лицей "ФТШ")
1
0
0
3
0
2
0
0
0
17) Команда №5
20
0
0
0
0
0
20
0
0
93
(Физ.-мат. лицей №239)
4
0
0
0
0
0
3
0
1
18) Петергоф, гимназисты
20
0
0
4
0
0
0
0
20
87
(Гимн. №415 Петродворец)
1
0
0
2
2
0
0
0
2
19) FIL-261
20
0
0
0
0
2
0
0
20
81
(Гимназия №261)
2
0
0
0
0
2
0
0
1
20) c2h5oh
20
0
0
8
4
3
1
0
0
80
(Лицей "ФТШ")
2
0
0
1
2
1
1
0
2
21) ФМЛ 30-5
20
2
3
5
6
0
0
0
0
77
(Физ.-мат. лицей №30)
2
1
2
1
2
0
0
3
2
22) Команда лицея 229
20
0
0
6
9
0
0
0
0
74
(Лицей №229)
1
0
0
1
2
0
0
0
1
23) Patients
20
0
0
0
0
0
0
0
20
72
(Физ.-мат. лицей №366)
1
0
3
0
0
2
0
2
11
Номер задачи:
1
2
3
4
Б
в
7
8
9
Вес задачи:
2
4
3
3
2
3
3
4
2
24) MIF-261
0
0
0
0
5
20
0
0
0
70
(Гимназия №261)
4
0
0
0
1
1
4
0
1
25) Rex
20
0
0
0
7
3
7
0
0
66
(Дворец творчества юных)
7
0
0
0
1
7
3
2
2
26) Del * *
20
0
0
8
0
0
0
0
0
61
(Лицей "ФТШ")
1
0
0
3
0
2
1
0
1
27) 570
20
0
1
3
1
0
0
0
0
51
(Школа №570)
1
2
1
3
1
1
0
0
1
28) POSITRON
20
0
0
0
0
3
0
0
0
42
(Лицей №13 Петрозаводск)
6
0
0
0
0
3
0
0
1
29) Команда №4
20
0
0
0
0
2
0
0
0
41
(Физ.-мат. лицей №239)
2
0
0
0
3
3
0
0
1
30) Гатчина 1
20
0
0
0
0
0
0
0
0
40
(МОУ "Лицей №3"Гатчина)
1
0
0
0
0
2
0
0
0
30) Инкогнито
20
0
0
0
0
0
0
0
0
40
(Дворец творчества юных)
1
0
0
0
0
0
0
0
3
30) Команда №6
2
0
0
0
2
0
0
0
20
40
(Физ.-мат. лицей №239)
4
0
0
0
3
0
2
0
3
33) PumBaleo
20
0
0
0
0
0
0
0
0
36
(Школа № 489)
6
0
0
0
0
0
0
0
2
34) TSB-261
20
0
0
1
0
2
0
0
0
34
(Гимназия №261)
7
0
0
2
1
4
1
0
1
35) ФМЛ 30-T-CGSG
0
0
0
8
4
0
0
0
0
30
(Физ.-мат. лицей №30)
2
0
0
1
2
0
0
0
0
36) 519
8
0
3
0
1
0
1
0
0
23
(Школа №519)
5
1
2
1
1
2
1
0
2
37) ФМЛ 30-4
0
0
0
0
9
0
0
0
0
16
(Физ.-мат. лицей №30)
1
0
0
0
2
0
0
0
0
38) DICH
2
0
1
4
1
0
0
0
0
11
(Гимназия №261)
5
2
2
2
1
0
1
0
3
39) Школьнички
2
0
0
0
5
0
0
0
0
8
(Гимназия №406 Пушкин)
4
0
0
0
2
0
0
0
0
40) LMT-261
1
0
0
0
0
3
0
0
0
6
(Гимназия №261)
2
0
0
0
0
3
0
0
5
41) ЮМШ(1)
4
0
0
0
0
0
0
0
0
6
(Лицей №533)
2
0
0
2
0
0
0
0
0
42) СТО-261
0
0
0
0
0
0
0
0
0
0
(Гимназия №261)
2
0
0
0
0
0
0
0
0
42) Brain emulations
0
0
0
0
0
0
0
0
0
0
(Школа №242)
1
0
0
0
0
0
0
0
0
42) WAP
0
0
0
0
0
0
0
0
0
0
(Школа №242)
2
0
0
0
0
0
0
0
0
42) Гатчина 3
0
0
0
0
0
0
0
0
0
0
(МОУ "Лицей №3"Гатчина)
0
0
0
0
0
0
0
0
7
42) Команда-528
0
0
0
0
0
0
0
0
0
0
(Гимназия №528)
0
1
0
1
0
0
0
0
0
Результаты олимпиады 2005 г.
Победители Олимпиады.
Место 1. Команда team ФМЛ 239:
Никитин Павел Антонович (ФМЛ 239),
Подхалюзин Александр Викторович (ФМЛ 239), Чеботаев Антон Платонович (ФМЛ 239).
Место 2. Команда Lazy Team:
Дорохов Вадим Александрович (ФМЛ 239),
Федотов Павел Валерьевич (ФМЛ 239),
Шмаков Кирилл Игоревич (ФМЛ 239).
Место 3. Команда ФМЛ 30 10-1-Т:
Воронин Павел Владимирович (ФМЛ 30), Тимофеев Антон Александрович (ФМЛ 30), Фомин Алексей Дмитриевич (ФМЛ 30).
Номер задачи:
1
2
3
4
Б
6
7
8
9
Вес задачи:
4
4
2
3
3
2
3
3
2
1) team ФМЛ 239
9
7
20
20
20
20
8
20
20
372
(Физ.-мат. лицеи №239)
4
4
1
1
1
1
1
1
1
2) Lazy Team
9
7
20
20
20
20
3
20
20
359
(Физ.-мат. лицеи №239)
3
3
1
1
1
1
2
3
1
3) ФМЛ 30 10-1-Т
0
7
20
20
20
20
0
20
20
324
(Физ.-мат. лицей №30)
2
2
1
1
1
1
0
1
1
4) КСК
0
7
20
20
0
20
20
20
20
323
(Физ.-мат. лицеи №239)
2
1
2
1
0
1
1
3
1
5) MZTR Revenges
6
7
20
0
20
20
8
20
20
314
(Школа №308)
1
1
2
0
1
1
1
1
1
6) Perfect Strangers
9
7
20
8
20
20
3
20
20
313
(Физ.-мат. лицеи №239)
2
2
1
4
3
4
1
2
1
7) ФТШ-1
0
7
20
0
20
20
5
20
20
275
(Лицей "ФТШ")
3
4
1
2
1
1
1
1
1
8) sch239.1
9
0
20
20
2
20
1
20
20
264
(Физ.-мат. лицеи №239)
6
3
1
1
5
3
3
1
3
9) ФТШ-2
0
0
20
0
7
20
8
20
20
223
(Лицей "ФТШ")
0
5
1
0
1
1
1
1
3
10) ЦИТ-1
0
0
20
0
6
20
8
20
20
216
(Школа №20 (ЛНМО))
0
3
1
0
2
1
2
1
1
11) Petrozavodsk!
0
7
20
0
20
20
2
3
20
211
(УЛ. №37 Петрозаводск)
2
1
1
1
2
1
1
13
1
12) ФМЛ 30 9-12-S
0
0
20
0
4
20
20
20
0
198
(Физ.-мат. лицей №30)
0
0
2
2
2
1
3
6
0
13) SMS
9
0
20
0
4
20
0
20
0
168
(Лицей "ФТШ")
6
3
1
0
3
1
1
9
1
14) LMC-261
0
0
0
0
8
20
8
1
20
125
(Гимназия №261)
4
4
1
2
1
1
2
3
1
14) Smart.drv
0
0
0
0
2
20
8
20
2
125
(Лицей №13 Петрозаводск)
1
1
0
1
1
1
2
4
1
16) ДТЮ 1
0
0
20
0
0
20
0
0
20
118
(Дворец творчества юных)
0
0
2
2
0
1
0
0
1
17) Каранедла
0
0
0
20
0
20
0
0
3
103
(Гимназии №410 и №261)
1
1
0
2
0
1
0
0
3
18) FIL-261
0
0
0
20
0
20
0
0
0
98
(Гимназия №261)
1
0
0
1
0
2
1
0
0
19) АВВ-261
0
0
20
0
8
0
0
0
0
59
(Гимназия №261)
0
0
3
0
3
0
0
. 0
0
20) Комавда 1-470
0
0
20
0
0
0
0
0
0
54
(Гимназия №470)
1
0
2
4
0
0
0
0
0
21) Команда 3
0
0
0
0
0
3
0
1
20
46
(Физ.-мат. лицей №239)
4
1
1
0
0
1
0
5
1
22) Совсем не ламеры
0
0
0
0
0
20
0
1
0
38
(Школа №139)
0
0
0
0
0
2
0
3
0
2 4 0 4 0 0 0
1 0 1 о 1 о о о о о
1 о о о о о о о
5 о о о о
Номер задачи: 1 Вес задачи: 2 22) ФМЛ 30 10-1-В 0 (Физ.-мат. лицей №30) О 24) ДТЮ 2 О (Дворец творчества юных) 3 25) 570-1 0 (Школа №570) 2 26) Гатчина 3-2 0 (МОУ "Лицей №3"1Ътчина) 0 27) 570-11 0 (Школа №570) 0 27) ДТЮ-344 0 (Дворец творчества юных) 0 27) MMS 0 (Школа №242) 0 27) Гатчина 3-2 0 (МОУ "Лицей №3 "Гатчина) 2 27) ДТЮ 3 0 (Дворец творчества юных) 0 27) Команда 2-470 0 (Гимназия №470) 0 27) ЛНМО 0 (Школа №20 (ЛНМО)) 0 27) ФМЛ 30 8-1-G 0 (Физ.-мат. лицей №30) 0 27) Ботаники 0 (Школа №210) 0 27) 346 0 (Школа № 346) 0
3
4
6
6
7
8
9
3
3
2
3
3
4
2
0
0
о"
20
0
2
0
38
0
0
0
2
1
9
0
0
0
2
0
8
0
0
30
0
0
1
1
1
0
0
0
0
2
0
0
1
2
7
2
1
3
2
2
2
1
0
0
0
0
0
0
1
2
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
2
2
2
0
0
0
0
0
1
0
0
0
0
0
0
0
7
0
0
0
0
0
0
0
0
0
0
0
0
1
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
5
0
0
0
0
0
0
0
0
0
0
0
0
1
0
2
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Правила проведения олимпиады (редакция 2005 г.)
Каждая команда получает идентификатор и пароль для входа в систему. Эта информация находится в заклеенном конверте в наборе для команды, полученном при регистрации. В том же конверте указана аудитория, в которой будет соревноваться команда. На компьютерах установлены таблички с именем команды.
Олимпиадные задания выдаются одновременно во всех аудиториях.
Во время соревнований участники могут задавать вопросы по условиям задач. Вопрос должен быть составлен в форме, предполагающей ответы ДА или НЕТ. В случае, если вопрос поставлен некорректно или ответ прямо следует из условия задачи, то жюри отвечает БЕЗ КОММЕНТАРИЕВ.
Для запуска компиляторов Pascal и С можно использовать ярлыки “BorlandPascal70” и “BorlandC31” соответственно. Исходные файлы программ, посылаемые на проверку, должны иметь расширения PAS, СРР или С и не превышать размер 25 Кб.
При составлении программ предполагается, что входные данные для каждой задачи расположены в одном входном файле, имя которого задано в тексте задачи. Программа должна формировать выходной файл с заданным именем. Предполагается, что входные и выходные файлы расположены в текущей директории DOS (не требуется указывать путь к файлу). Тестирование производится автоматически, поэтому программы должны в точности соответствовать форма-
там входных и выходных файлов.
Для работы с системой (отправка программ на проверку, просмотр результатов и рейтинга, обмен сообщениями с жюри) используется Internet Explorer. В качестве начального адреса следует ввести http: //online. cyber-net. spb. ru. Ha главной странице размещена ссылка на сайт Офиса, войдя на который следует зарегистрироваться согласно выданным идентификатору и паролю. Офис предназначен для отсылки программ на проверку, просмотра результатов команды и отправки сообщений. На странице 11 Рейтинг11 можно просмотреть текущий рейтинг всех команд.
В решениях задач запрещено использовать:
вывод какой-либо информации на экран и ввод данных с клавиатуры;
Проверяющие программы используют различные средства контроля за соблюдением данных требований. Команды, нарушившие эти требования, будут штрафоваться.
Жюри обладает исключительным правом определения правильности присланных решений, определения победителей и дисквалификации команд. Решения жюри окончательны и обжалованию не подлежат.
Как определяются победители.
Время. На выполнение заданий отводится 3.5 часа.
Валлы (В). Каждая задача проверяется на 10 тестах. За каждый пройденный тест команда получает 1 балл. В случае прохождения всех тестов сумма баллов удваивается (20 баллов).•
Штраф (Ш). Штраф начисляется для каждой задачи за количество посылок на проверку. Одна попытка — 0 штрафных баллов, 2 или 3 — 1 балл, 4, 5, 6 — 2 балла, 7, 8, 9, 10 — 3 балла, 11 и более попыток — 4 балла.
Коэффициенты (К). Баллы за каждую задачу умножаются на коэффициент сложности, который зависит от суммарного количества баллов, полученных всеми командами за данную задачу. Коэффициент 2 получают задачи, за которые в сумме набрано наибольшее количество баллов. Следующая группа задач получает коэффициент 3, и задачи, за которые набрано наименьшее количество баллов, — коэффициент 4.
Баллы за каждую задачу определяются по формуле
БЗ=К*(Б-Ш), ВЗ>=0.
Глава II.
Задачи
Задачи 1999 г.
РАВНОВЕСИЕ
Груз массой mi подвешен к нити, намотанной на барабан радиуса ri, который жестко соединен с барабаном радиуса г2. На этот барабан также намотана нить, которая через блок соединена с грузом массой ma.
Задание. Определить максимально возможное значение mi, ПРИ котором второй груз останется на месте, если предельная сила трения равняется Гт-
Примечание. При расчетах положить ускорение свободного падения равным р — 9.2 м/с2, атмосферное давление р = 1.013 • 105 Па.
INPUT.TXT Входной файл содержит т^ п, т^ Ft — вещественные числа.
OUTPUT.TXT Выходной файл должен содержать значение ттгх (точность — два десятичных знака).
ПРИМЕР.
Входной файл: 5 0.2 1 50
Выходной файл:
27.17
(А. В. Лямин)
АВТОБУС
Автобусы выходят с кольца на маршрут, проходят его со всеми необходимыми остановками и возвращаются на кольцо. Время нахождения автобуса на каждой остановке — 3 мин., в парке — не менее 5 мин. Скорость автобуса в пути — 40 км/ч.
Задание. Какое количество автобусов нужно поставить на обслуживание этого маршрута, если длина маршрута равна S км, количество остановок равно N и требуется, чтобы
интервал времени между автобусами равнялся t мин.?
INPUT.TXT Входной файл содержит вещественное число
S, целые N и t."
OUTPUT.TXT Выходной файл должен содержать требуемое количество автобусов.
ПРИМЕР.
Входной файл:
425 Выходной файл:
4
(Г. И. Болтунов)
ПОСЛЕДОВАТЕЛЬНОСТЬ
Ниже приведены одинаковые фрагменты программ на Паскале и Си:
{На Паскале:}
i: =01
While ( (x[i]<>xf) Or (y[i]<>yf) ) Do Begin
<[i+l] :=x[i]+y[i] ;
y[i+l] :=x[i]-y[i]+u[i] ;
inc(i);
End;
//На Си:
i=0;
while (x[i]!=xf II y[i]!=yf)< x[i+l]=x[i]+y[i];
у [i+1] =x [i] -y [i] +u [i] ;
i++;}
Здесь x, у и и — целочисленные массивы, xf нуf — целые переменные.
Задание. Для заданных ж[0], у[0], ж/, и yf найти значения элементов массива и (гДО], и[1],...), которые обеспечат выход из цикла через минимальное число итераций. Случай, при котором тело цикла не выполнится ни разу, не рассматривать.
INPUT.TXT Входной файл содержит ж[0], ж/, g/[0], yf — целые числа.
OUTPUT.TXT Выходной файл должен содержать последовательность целых чисел: u[0], и[1],...
ПРИМЕР.
Входной файл:
10-10
Выходной файл:
-2
(А. В. Лямин, В. В. Шиегин)
ПОМЕХОУСТОЙЧИВЫЙ КОД (7,4)
Я передавал себя азбукой Морзе и наткнулся на статическое электричество...
Роджер Желязны
Ни один способ передачи информации не гарантирует ее защиты от искажения. Но можно повысить надежность путем добавления избыточной информации, которая в случае искажения может помочь восстановить исходные данные. '
Рассмотрим код, используемый для передачи четырех двоичных разрядов. Обозначим информационные разряды через ky k2 k^ k4. Добавим к ним еще три разряда, вычисляемые по следующим формулам (сложение выполняется по модулю 2):
И = ку + к2 + ^3)г2 = к2 + к3 + к4,г3 = ку+ к2 + к4.
Передающая сторона посылает 7 разрядов: ку, к2, к3, к4, Гу, т2, т3. Если на приемное устройство один из разрядов придет измененным, то зная приведенные формулы, можно обнаружить и исправить эту ошибку.
Задание. Ваша задача восстановить информацию.
INPUT.TXT Входной файл в первой строке содержит целое число (от 1 до 50) — количество принятых последовательностей, в последующих строках — сами эти последовательности.
OUTPUT.TXT Выходной файл должен содержать четырехразрядные последовательности, получившиеся после исправления входных данных.
ПРИМЕР.
Входной файл: 3 1011111 1000101 0101111
Выходной файл:
1111
1000 0100
(И. П. Салмыгин, В. В. Шиегин)
МАРШРУТ ТЕЛЕЖКИ
Кто шцет, тому назначено блуэюдатъ Иоганн Вольфганг Гете
Для обслуживания четырех станков, находящихся в цехе, используется автоматический транспортный робот. В режиме ожидания он находится возле главного контейнера. По
R(4,l)
команде он должен обойти все станки, собрать обработанные детали, вернуться с ними к главному контейнеру и разгрузиться. Нельзя дважды за обход подходить к одному и тому же станку. Известны попарные расстояния между всеми станками, а также между станками и контейнером. Если обозначить местоположения станков как AiА4, а местоположение Контейнера через Aq, то все расстояния можно записать в матрицу R размера 5x5: Щг,Г) определяет расстояние между г-й и j-й точками (J-Цг, j) может быть не равно RU-^Y
Задание. Требуется определить самый короткий путь обхода станков.
Замечание. Входные данные всегда таковы, что существует единственный минимальный путь.
INPUT.TXT Входной файл содержит 5x5 матрицу целых чисел (71).
OUTPUT.TXT Выходной файл должен содержать длину самого короткого пути, на следующей строке номера пунктов, разделенные символом “-”. Первый и последний пункты всегда имеют номер 0.
ПРИМЕР.
Входной файл:
О 17 10 5 17
18 0 6 12 20
12 5 0 14 19
12 11 15 0 7
16 21 18 6 0
Выходной файл:
50
0-2-1-3-4-0
(А. В. Лямин, В. В. Шиегин)
ЛЕГЕНДА
Oh, East is East, and West is West, and never the twain shall meet, Till Earth and Sky stand presently at God’s great Judgment Seat...
Rudyard Kipling
...Согласно древней индийской легенде, при сотворении мира, в том месте, где находится середина Земли бог Брама - поставил на бронзовой площадке вертикально три алмазные палочки. На одну из палочек надел он 50 золотых кружков разного диаметра так, что они образовали конус. И построил он город Бенарес, и поставил храм, и повелел жрецам перенести все диски с первой палочки на третью, при этом соблюдая условия: переносить за один раз только один кружок и снятый кружок класть или на свободную палочку или на кружок только большего диаметра. И жрецы составили алгоритм переноса кружков и следуют ему неукоснительно. И хотя этот алгоритм оптимален, это самый длинный в мире алгоритм — ведь работает он от сотворения мира до самого его конца потому, что, как только последний из дисков будет положен... .
Стоп! Что это за город Бенарес, если всем известно, что название этой задачи: “Ханойские башни”? И кружков на самом деле не 50, а 64. Также общеизвестно, что для решения
этой задачи применяется рекурсивный алгоритм, а для переноса N кружков необходимо 2^ — 1 раз переложить по одному кружку!
Да, это так. Но последние находки сотрудников кафедры истории кибернетики Калькуттского государственного университета (КГУ) заставляют нас взглянуть по-новому на эту задачу. Оказывается, что жрецы для перекладывания кружков использовали наемную рабочую силу. При этом для защиты трудящихся от инфляции и девальвации применялась прогрессивная система оплаты: за первый переложенный кружок заплатили одну рупию, за второй — три, за третий — пять, за четвертый — семь... За каждый следующий кружок — на две рупии больше предыдущего. Ученые попытались подсчитать расходы на оплату рабочих, но по причине недостаточной осведомленности в вопросах программирования не справились с этой задачей. А вы справитесь?
Задание. Требуется написать программу, которая по заданному числу дисков N определит число рупий, израсходованных на оплату труда.
INPUT.TXT Входной файл содержит число N в диапазоне от 2 до 100.
OUTPUT.TXT Выходной файл должен содержать число рупий (в десятичной системе счисления).
ПРИМЕР.
Входной файл:
25
Выходной файл:
1125899839733761
(В. В. Шиегин)
Задачи 2000 г.
КРУГОВОЙ МАРШРУТ
Автобус начинает движение от парка, имея в салоне п пассажиров и выезжает на круговой маршрут. Количество остановок на маршруте равно М (не более 1000). Количество пассажиров, выходящих и входящих на каждой из остановок, известно. Вместимость салона — N пассажиров.
Задание. Требуется найти номер остановки К1 на которой в салон автобуса не смогут войти все пассажиры. Если такое не случается, то вывести 0. Нумерация остановок начинается с единицы.
INPUT.TXT Входной файл содержит числа М, n, N. Далее идут М пар w[i], v[i] — числа выходящих и входящих на г-й остановке пассажиров соответственно.
OUTPUT.TXT Выходной файл должен содержать число К.
ПРИМЕР.
Входной файл:
5 10 30
2525252543
Выходной файл:
9
(Г. И. Болтунов)
ЛАЗЕРНАЯ ПУШКА
На полигоне проводятся испытания новой лазерной пушки. Суть эксперимента, состоит в следующем. В обоих концах коридора, который по форме напоминает букву “Г”, расположены лазерная пушка S и точечная мишень Е. Все стены коридора выполнены из зеркал. Пушка устроена так, что перед каждым выстрелом она выбирает направление луча таким образом, чтобы луч попал в мишень и при этом количество его отражений от стен коридора было бы минимальным.
Задание. Требуется определить возможно или нет выбрать направление луча для того, чтобы он попал в мишень и если возможно, то требуется найти количество минимально необходимых отражений луча от стен коридора для того, чтобы луч попал в мишень.
INPUT.TXT Входной файл содержит координаты углов коридора ®i, ®2, 2/1» 2/2*, координаты пушки хя, уя и координаты цели хе1 ус.
OUTPUT.TXT Выходной файл должен содержать число К — количество отражений, или —1, если попасть в мишень невозможно или необходимое количество отражений больше 8.
ПРИМЕР.
Входной файл: 02131062
Выходной файл: 2
(А. В. Лямин)
НОВЫЙ МЕТОД КРИПТОГРАФИИ
Задана последовательность пяти целых чисел «о, «1, а^ аз и 6, где а0, ai, аг, о-з — коэффициенты полинома третьей степени — ао®3 + ai®2 + аг® + а3, который имеет три действительных различных корня: ®i < а?2 < Жз- Известно также, что эта последовательность может соответствовать одному из чисел 0,1,2 или 3. Она соответствует: числу 0, если b < Ж1; числу 1, если Xi <Ь < х2\ числу 2, если х2 < Ь < ж3; числу 3, если хз < Ъ.
Задание. Требуется по заданной последовательности чисел ао, аь «2, аз и b восстановить число, которое соответствует ей.
INPUT.TXT Входной файл содержит вещественные числа Оо, di, 02) Оз и Ь.
OUTPUT.TXT Выходной файл должен содержать искомое число.
(А. В. Лямин)
ПОКОРЕНИЕ КОСМОСА
... Человечество не останется вечно на Земле, но в погоне за светом и пространством сначала робко проникнет за пределы атмосферы, а затем завоюет себе все околосолнечное пространство.
К.Э. Циолковский
... Прошло 150 лет. На Венере был образован крупный научный центр. Для выполнения точных астрономических наблюдений на орбиту планеты выведено несколько спутников (mi: от 1 до 9). Высота орбиты — 40 тыс. км. Поскольку в венерианской атмосфере очень сильные помехи, для приема информации на низкой орбите (высота орбиты 1000 км.) расположено также несколько спутников (т2: от 1 до 12). Между Венерой и низкоорбитными спутниками постоянно курсирует космический челнок, забирающий поступившую информацию.
Каждый низкоорбитный спутник может принимать информацию только от одного высокоорбитного, и наоборот: каждый высокоорбитный может передавать данные только одному низкоорбитному. Следовательно образуются пары спутников. Для системы критичной является скорость передачи информации между спутниками, которая зависит от их
взаимного расположения и некоторых других параметров. В целях улучшения этого показателя путем компьютерного моделирования, для всех возможных пар оценивают (по десятибальной шкале) качество связи между ними и затем формируют пары спутников так, чтобы сумма показателей выбранных пар S была максимальной.
Задание. Для заданных параметров найдите S.
INPUT.TXT Входной файл содержит числа т^т^и таблицу целочисленных оценок всех возможных пар — матрица R из ту строк и m2 столбцов.
OUTPUT.TXT Выходной файл должен содержать одно целое число S.
ПРИМЕР.
Входной файл:
33
298
78
96 5
Выходной файл:
26
(В. В. Шиегин)
ТАЙНА ВЛАДЫКИ МО
Давно нет на свете владыки Мо, правившего в Китае три тысячи лет назад, но до сих пор стоит пирамида, которая
р&ла ему власть над Поднебесной. Тот, кто не побоится трудного пути в безводной пустыне, может ее увидеть. Легенда говорит: Мо узнал от чернокнижника, что тот, кто сможет взойти на вершину пирамиды, станет императором. Но задача эта нелегкая. Пирамида имеет квадратное основание, и грани ее выложены плитами, образующими ступени (см. рисунок — вид сверху).
Задание. На плитах лежат лепестки священного цветка Лу. Требуется взойти на вершину пирамиды, повредив при этом как можно меньше лепестков. Тот, кто ошибется — погибнет. Если восходящий наступит на плиту, то все лежащие на ней лепестки будут повреждены. Каждый шаг должен приводить на следующий уровень. Количество лепестков, лежащих на каждой плите, известно. Сколько лепестков повредил владыка Мо при восхождении?
INPUT.TXT Входной файл содержит число к — количество ярусов пирамиды. Далее следует квадратная таблица, задающая количество лепестков на соответствующих плитах.
OUTPUT.TXT Выходной файл должен содержать искомое число.
ПРИМЕР.
Входной файл:
2
14
2 5
3 2
Выходной файл:
3
(В. В. Шиегин)
РОБОТ-ХОККЕИСТ
После поражения на чемпионате мира робот Гоша упорно тренируется у хоккейной стенки. Клюшка в руке робота параллельна стене и движется перпендикулярно ей периодически, по гармоническому закону со скоростью v(t) = Asin(27r^/T). Через некоторое время робот заметил, что шайба совершает странное непериодическое движение: промежутки между последовательными ударами клюшки по шайбе Т[п] (п = 1,2,...) могут приближаться к любому значению между Т/2 и 2Т.
Чтобы добиться периодического движения шайбы, робот решил ввести поправку в закон изменения скорости клюшки, учитывая показания датчика времени между ударами.
Помогите роботу!
Выведите уравнения для величин Т[п] и V[n], где V[n] — скорость шайбы в момент n-го удара, считая, что: удар шайбы о клюшку и об стенку абсолютно упругий; размах движения клюшки мал по сравнению с расстоянием от клюшки до стенки; трением шайбы об лед можно пренебречь. В начальный момент шайба находится в покое между стенкой и клюшкой.
Найдите амплитуду и период изменения скорости гармонического движения клюшки, при которых наблюдается странное непериодическое движение шайбы. Составьте программу для построения графика Т[п] и зарисуйте результаты ее работы.
Найдите поправку к закону движения клюшки, обеспечивающую периодическое движение шайбы. Составьте программу для построения графика Т[п] и зарисуйте результаты ее работы.
(А. Л. Фрадков)
ШИФР
“Хорошее стекло в доме епископа на чертовом стуле — двадцать один градус и тринадцать минут — север- северо-восток — главный сук седьмая ветвь восточная сторона — стреляй из левого глаза мертвой головы — прямая от дерева через выстрел на пятьдесят футов”.
Э. Л. По То, что изобретено одним человеком, мансет быть понято другим, — сказал Холмс.
Л. Конан Дойль
Ниже приведен зашифрованный текст:
Гр гэёо нщё чпГёфтК еркюй
Ёп эбопх тхуф.
Г тбмпфё, н ррйэлвц ыффй, Н тжспёщоък уняуж.
Еъ тхыцпууф ртпюёмщфц ёорк,
Ёп фц ссфшкоЖ,
Ер пэорглоюА, пп мпьожк, Пп уёьешёнйпь.
Задание. Расшифруйте его, а главное — найдите алгоритм шифрования и ключ. В этом вам поможет следующий пример расшифровки:
ИвщфхтпнбпоЖк фёцтф.
Зашифрованный текст.
Задачи 2002 г.
АГЕНТУРНАЯ СЕТЬ
Трудна и опасна профессия разведчика. Далеко не любой человек подойдет для такой работы. Спецслужбы всегда очень тщательно производят отбор кандидатов. Изучаются биографии, составляются психологические портреты.
Перед службой внешней разведки некоторого государства L руководство поставило задачу: в кратчайшие сроки развернуть агентурную сеть на территории государства М.
Уже выполнена работа по внедрению на территорию враждебного государства М необходимого количества резидентов, произведена вербовка агентов-оперативников. Осталось установить связи между резидентами и агентами. На этом этапе было решено произвести оптимальный подбор агентов для резидентов. Был проведен анализ личностных качеств каждого человека и для всех возможных пар резидент—агент выставлены оценки их совместимости.
Задание. Требуется, используя имеющуюся таблицу оценок, для каждого резидента выбрать нескольких агентов (их количество определяется числом п) таким образом, чтобы суммарная оценка всех составленных пар (определяющая надежность всей сети в целом) была бы максимальной. Каждый из агентов может работать только на одного резидента.
Примечание. Количество резидентов задается числом mi, количество агентов — числом тп2. После отбора пар могут оставаться “лишние” агенты.
INPUT.TXT Входной файл содержит в первой строке целые числа п (1 < п < 4), 7П1 (1 < ml < 6), 7п2 (717711 < 7Т12 < 2717711), а В каждой ИЗ 7711 следующих
строк — т2 целых чисел, определяющих оценки соответствующих пар.
OUTPUT.TXT Выходной файл должен содержать ту строк, в каждой из них — по п чисел (таблица порядковых номеров агентов). Номера в каждой строке отсортированы в порядке убывания оценок (на первом месте указывается агент, наиболее подходящий для данного резидента).
ПРИМЕР.
Входной файл:
1 3 3
8 5
19
2 1
Выходной файл:
2
3
1
(В. В. Шиегин)
СКУЧАЮЩИЙ АВТОПИЛОТ
Грузовой корабль под управлением автопилота летит в направлении Альфа Центавра. Путь неблизкий, и в свободное время автопилот развлекается тем, что придумывает и сам решает различные задачи.
Следует заметить, что между Солнечной системой и системой Альфа Центавра постоянно функционирует двусто-
ронний канал информационного обмена, по которому передаются информационные пакеты.
Настроившись на частоту этого канала, автопилоту удалось 11 поймать "эти пакеты. Причем пакеты, идущие в направлении Солнца ему попадаются чаще, чем пакеты, идущие в направлении Альфа Центавра, хотя известно, что отправляются они через равные интервалы времени в обоих направлениях.
Прочитать эти передаваемые данные автопилоту не удалось (разработчики не заложили в него способностей, необходимых для взлома шифров), и он занялся решением задачи, которая была ему по силам. Измерив интервалы времени mi и т2 для обгоняющих и встречных пакетов соответственно, автопилот определил интервал п отправления пакетов. Также он составил и занес в свою долговременную память программу, позволяющую определить такой интервал для любых значений mi и т2 (на случай, если похожая ситуация повторится при полете к другим звездам). При этом он сделал допущение, что интервал отправления пакетов является целым числом. Скорость корабля он счел не слишком большой, что упростило ему работу. Кроме того, он пренебрег разбеганием галактик (расстояние между звездами считается постоянным).
Задание. Что представляет собой программа, составленная автопилотом? Попробуйте составить такую же.
INPUT.TXT Входной файл содержит положительные вещественные числа mt и т2, не превосходящие 30000.
OUTPUT.TXT Выходной файл должен содержать целое значение п.
ПРИМЕР.
Входной файл:
6
Выходной файл:
8
(В. В. Шиегин, Ю. Е. Зайцев)
СОРЕВНОВАНИЕ СКАЛОЛАЗОВ
Администрация города Незнаменска с целью пополнения городского бюджета задумала провести международный турнир по скалолазанию. Поскольку гор в окрестностях Незнаменска нет, решено было возвести специальные спортивные сооружения.
Каждое из сооружений представляет собой цилиндрическую стену, поверхность которой поделена на квадраты. В каждом квадрате имеются трещины, выступы и т.п. — одним словом, неровности, которые и позволяют спортсменам взбираться наверх. В зависимости от качества этих неровностей квадратам назначены некоторые оценки, зависящие от сложности их прохождения. Спортсмены сами должны выбрать маршрут передвижения по стене, оценив его сложность и соотнеся со своими силами. Из спортсменов, справившихся с препятствием, побеждает тот, который набрал максимальную суммарную оценку за сложность. В соответствии с правилами спортсменам запрещено перемещаться вниз или в сторону. Из одного квадрата в другой можно переходить только в направлении вверх, вправо—вверх или влево—вверх. Размер и конфигурация препятствий могут различаться.
Задание. По имеющейся информации о препятствии попробуйте определить, какую максимальную оценку можно набрать, преодолев его.
Примечание. Информация задается в виде прямоугольной таблицы, количество строк которой определяется высотой стены (количеством уровней), а количество столбцов — количеством квадратов на уровне. Поскольку стена замкнутая, следует учесть, что последний столбец в таблице соседствует с первым.
INPUT.TXT Входной файл содержит в первой строке т ип — количество строк и столбцов таблицы (каждое из чисел находится в диапазоне от 1 до 50). Следующие т строк содержат по п целых чисел — оценок.
OUTPUT.TXT Выходной файл должен содержать искомое значение.
ПРИМЕР.
Входной файл:
34
10 73 1
2 138
5 43 2
Выходной файл: 23
АННА ПЕТРОВНА И СЛОЖНЫЕ ПРОЦЕНТЫ
Анна Петровна выиграла в лотерею достаточно крупную сумму денег и положила их в надежный банк. Банк оказался действительно надежным, и через несколько лет Анна Петровна сняла со своего счета хорошие проценты. Доход в банке начисляется раз в год, исходя из установленной процентной ставки. Начисленный доход добавляется к размещенной сумме. Процентная ставка Р определяется целым числом (не превышающим 30) и является неизменной.
Задание. Определите процентную ставку, если известна начальная сумма 8 ^8 < 100000), начисленный доход D и количество лет, за которые насчитан доход (N < 30).
INPUT.TXT Входной файл содержит вещественные числа S, D и целое число N.
OUTPUT.TXT Выходной файл должен содержать одно целое число Р.
ПРИМЕР.
Входной файл:
100 21 2
Выходной файл:
10
(Оргкомитет)
КРИПТОАНАЛИЗ
Школьник Вася с большим увлечением занимается в кибернетическом кружке. Однажды в журнале ему попалась статья, посвященная вопросам криптографии. В частности, в ней рассказывалось про шифрование с открытым ключом. Вася пришел в восторг от такой замечательной идеи: ключ, которым зашифровали данные, не годится для расшифровки, а расшифровка делается другим ключом. Он понял, какие могут быть интересные варианты применения этих методов. Например, можешь раздать первый ключ своим друзьям, чтобы они шифровали им свои письма тебе. При этом только ты сможешь их прочитать, поскольку секретный ключ для расшифровки другим неизвестен.
Вася решил так и сделать. Для начала он стал шифровать просто целые числа. Когда ему не удалось реализовать один из известных методов (слишком сложно), он придумал похожий, но более простой.
Вот его метод: алгоритм, шифрующая и расшифровывающий — один и тот же, различаются только используемые ключи. Этот алгоритм Вася реализовал в виде отдельной функции. Параметры функции: п — число, которое нужно зашифровать или расшифровать, к — ключ. Поскольку одни Васины друзья используют язык Си, а другие — Паскаль, он описал эту функцию на обоих языках. Вот результаты его работы:
myint encode (my int n, myint k)
myint nn=O;
for (myint i=0; i<k; i++)
nn = ( nn + п ) У. MODULO;
return nn;
}
Function encode(n, к : myint) : myint;
Var nn, i : myint;
Begin
nn := 0;
For i:=l To к Do
nn := ( nn + n ) Mod MODULO;
encode := nn;
End;
Задание. Известно, что теоретически любой шифр может быть взломан, но иногда для этого требуется недопустимо много времени. Вам предлагается взломать шифр, придуманный Васей, и восстановить зашифрованные данные. При этом программа, выполняющая данные действия, должна уложиться в отведенный интервал времени (даже при достаточно большом объеме данных).
INPUT.TXT Входной файл содержит следующие целые числа: MODULO — число, между 1 и 1024, необходимое для работы алгоритма; ку — ключ, которым были зашифрованы данные (1 < ki < MODULO); п — количество зашифрованных чисел (1 < п < 400000) и далее — сами зашифрованные числа.
OUTPUT.TXT Выходной файл должен содержать все расшифрованные числа.
ПРИМЕР.
Входной файл:
123 7 2 20 67
Выходной файл:
38 115
(В. В. Шиегин)
КВАДРАТЫ
Имеется бумажный прямоугольник с длинами сторон а и b (целые числа). Его можно разрезать таким образом, что получится N квадратов с целочисленными сторонами. Ясно, что максимально возможное количество квадратов, которое может быть получено из прямоугольника, равно ab.
Задание. Установите наименьшее количество квадратов, которое можно получить разрезанием? При этом никаких “лишних” обрезков оставаться не должно.
INPUT.TXT Входной файл содержит числа а и b (а < 30000; b < 30000).
OUTPUT.TXT Выходной файл должен содержать искомое число.
ПРИМЕР.
Входной файл:
333 555
Выходной файл:
4
(Г. И. Болтунов, В. В. Шиегин)
ВОЛК В ЛОВУШКЕ
В центре прямоугольного поля со сторонами а и b сидит волк. В каждом углу поля находится по одной собаке. Собаки могут перемещаться по периметру поля и их задача — не дать волку уйти. При этом каждая собака по отдельности слабее волка и проигрывает ему в схватке один на один. Две же собаки задирают волка.
Задание. Для собак и волка существуют некоторые максимально возможные скорости их перемещения (Vj и Vw соответственно). Найдите такое минимально возможное соотношение скоростей (К = VajV^Y при котором собаки гарантированно не дадут волку уйти (если не совершат ошибки).
INPUT.TXT Входной файл содержит а и b — вещественные числа.
OUTPUT.TXT Выходной файл должен содержать искомое число К с точностью до двух знаков после запятой.
(А. С. Матвеев)
КОЛЕСО
Колесо расположено в вертикальной плоскости, его радиус и расстояние от центра до пола заданы (см. рис.). Также задана и его угловая скорость. На обод колеса от центра постоянно и равномерно на всю поверхность поступает вода. Поэтому при вращении с обода срываются капельки воды, которые попадают на пол.
Задание. .Очевидно, при фиксированной* скорости вращения, на полу образуется мокрая зона, за пределы которой
капли не вылетают. Требуется найти длину L этой зоны. Если мокрого участка нет, его длину считать равной нулю.
Примечание. Ускорение свободного падения считать равным 10.
INPUT.TXT Входной файл содержит вещественные числа w, R и Н.
OUTPUT.TXT Выходной файл должен содержать искомое число L с точностью до двух знаков после запятой.
ПРИМЕР.
Входной файл:
022
Выходной файл:
4.00
(Ю. Е. Зайцев)
ИНКРЕМЕНТНАЯ ИНВЕРСИЯ
Введем преобразование над целыми числами, которое назовем инверсией. Инверсия, примененная к некоторому числу А, изменяет последовательность цифр в десятичной записи числа на противоположную. Обозначим инверсию А как "А##”. Например, 123## = 321.
Введем теперь преобразование, которое назовем инкрементной инверсией. Пусть заданы некоторое целое число А (аргумент) и целое число п, которое будем называть порядком. Обозначим вводимое преобразование знаком "@@". Преобразование порядка 0 дает в результате исходное число: А@@0 = А. Преобразование порядка 1 увеличивает число на "I": А@@1 = А + 1. Преобразование порядка 2 дает следующий результат: А@@2 = (А@@1)##. Для более высоких порядков операция определяется рекуррентно: если п — нечетное, то А@@п — (А@@(п — 1))@@1; если п — четное, то А@@п = (АМ(п - 2))@@2.
Задание. Составьте программу для вычисления инкрементной инверсии заданного порядка.
INPUT.TXT Входной файл содержит два целых числа: п (О < п < 20) и А (0 < А < 1030).
OUTPUT.TXT Выходной файл должен содержать результат преобразования.
ПРИМЕР.
Входной файл:
3 987654321
Выходной файл:
223456790
(В. В. Шиегин)
Задачи 2003 г.
ШАЙБА
Лента горизонтального транспортера движется с постоянной скоростью VtT. На ленту в поперечном направлении влетает шайба со скоростью V8h м/с. Ширина ленты L м, коэффициент трения шайбы о ленту равен К.
Задание. При какой скорости шайба, проскользнув по ленте, упадет с нее на максимально возможном расстоянии от точки вылета?
Примечание. Ускорение свободного падения принять равным 9.81 м/с2.
INPUT.TXT Входной файл содержит К, L, Vtr — вещественные числа.
OUTPUT.TXT Выходной файл должен содержать искомое число V8h с точностью до двух знаков после запятой.
(Ю. Е. Зайцев)
ВОДИТЕЛЬ БЕЗ ШЛАГБАУМА
Водитель с математическим образованием, возвращаясь с вечеринки, хочет добраться до дома, находящегося на расстоянии А км, двигаясь с постоянной скоростью, не превышающей 60 км/ч. Через каждый км шоссе пересекают железные дороги, по каждой из которых приближается поезд длиной L км со скоростью V км/ч.
Задание. За какое минимальное время водитель может добраться домой живым, если в начальный момент времени г-й (считая от водителя) поезд находится на расстоянии Ri км от переезда?
INPUT.TXT Входной файл содержит в первой строке вещественные числа A, L, V, во второй — числа, задающие расстояния Ri. Значение А не превышает 10 км.
OUTPUT.TXT Выходной файл должен содержать время в минутах с точностью до двух знаков после запятой.
ПРИМЕР.
Входной файл:
3 1 50
2 11
Выходной файл:
3.60
(A. JI. Фрадков)
ИГРЫ РАЗУМА
Управляемая эволюция величины х описывается уравнением
Аз + 1) = ах^ + bu^Y j = 0,1,...
Здесь х^ и иУ) — значение х и величина управляющего воздействия в момент времени t = jT. Коэффициенты а > 1, 6 j4 0 и Т > 0 постоянны. По какому алгоритму следует вырабатывать управление u(j), j = 0,1,2,..., чтобы обратить величину х в нуль?
Примечание. Ответ очень прост, если текущее состояние t(j) измеряется и результат измерения доступен управляющему органу. Тогда он может формировать управление u^j) по формуле
Цз) = -WbWY
Следовательно, хУ + 1) = 0 и значит, и(г) = 0, х^ = 0 для всех г > J + 1.
Дело усложняется, если результат измерения передается через цифровой канал связи. За время Т он передает лишь определенное число бит с (называемое емкостью канала). Другими словами, он способен передавать лишь цепочки х фиксированной длины с из нулей и единиц:
х = 0111010100001010100001010.
Тогда точная передача результата измерения уже невозможна. Действительно, имеется лишь конечное число цепочек х. Поэтому нет такого алгоритма кодирования, преобразующего измерение х в передаваемую по каналу цепочку х, что по этой цепочке можно абсолютно точно восстановить х. Всегда будут присутствовать такие пары 24 ^ ж2, которые при кодировании преобразуются в одну и ту же цепочку х. Получив сообщение х^ разобраться, что было на самом деле — Ху или ж2, нельзя.
В такой ситуации работать по предложенной формуле уже невозможно, а цель х^з + 1) = 0 уже нереализуема. Ее естественно заменить более слабым, зато реализуемым требованием:
Ига х^ = 0,
J-Hoo
т.е. х^ становится сколь угодно малым, если подождать достаточно много времени.
Если с = О (канал ничего не передает), достичь поставленной; цели невозможно. Напротив, если его емкость велика — с » 1, цель, скорее всего, достижима: измерения можно передавать почти без искажений, и ситуация близка к той, когда первый закон управления обеспечивает требуемую цель.
Задание. Какова минимальная емкость с канала, при которой достижение поставленной цели возможно?
Примечание. Вы можете сами выбирать алгоритмы как управления, так и кодирования. При этом имейте в виду, что будущего вы не знаете. Поэтому, например в момент t = jT, управление и должно Определяться только по тем данным г(0), г(1), ..., z^j^ которые были получены к этому моменту (но никак не после). Задачу разрешено решать при упрощающем предположении: |®(0)| < Д, а число Д > 0 известно разработчику алгоритмов кодирования и управления (то есть вам).
Подсказка. Предлагаемые данные избыточны.
INPUT.TXT Входной файл содержит содержит вещественные числа а, 6, Д, Т.
OUTPUT.TXT Выходной файл должен содержать целое значение с.
ПРИМЕР.
Входной файл:
2.3 1.2 1000 1
Выходной файл:
2
(А. С. Матвеев)
ПЛАНИРОВАНИЕ ПРОИЗВОДСТВА
Вы руководите провинциальным филиалом фирмы, производящей безалкогольные и слабоалкогольные напитки. Ваш филиал выпускает слабоалкогольный напиток Стамеска крепостью 9° и газированный напиток Манта. Оба напитка производятся на основе апельсинового концентрата и разливаются в алюминиевые банки.
Одним из ключевых моментов предвыборной кампании действующего губернатора области, где оперирует ваш филиал, была борьба за трезвый образ жизни. В результате ваша лицензия ограничивает выпуск слабоалкогольных напитков величиной S л/мес. в пересчете на чистый (100%-ный) спирт. Для производства 1 л. Стамески и Манты требуется С8 и С$ граммов апельсинового концентрата соответственно. Условия поставки и хранения этого концентрата ограничивают его потребление величиной С кг/мес. Первичные растворы для производства обоих напитков готовятся на одной и той же установке, хотя эти растворы и отличаются друг от друга по составу. С учетом санитарных мероприятий, выходных дней, технической профилактики и т.п. эта установка может работать 384 ч/мес. Она готовит 100 л раствора для Стамески и Манты Т8 и Ту мин соответственно. Мощность имеющейся газировальной установки не позволяет вам поднять производство Манты выше F л/мес. Продажа 100 л Стамески и Манты приносит Рв и Ру рублей прибыли соответственно.
Задание. Предположив, что ваша единственная цель — получение максимальной прибыли, определите, какое месячное производство Стамески и Манты следует планировать.
Примечание. Опыт показал, что рынок потребляет все,
что производится в рамках перечисленных ограничений. Временем пёреключения установки с одного напитка на другой можно пренебречь.
INPUT.TXT Входной файл содержит числа 8, F, Т^Т^
Сь С8) С, Р8, Pf.
OUTPUT.TXT Выходной файл должен содержать количество продукта (в литрах) для Стамески и Манты соответственно.
ПРИМЕР.
Входной файл:-
1000 10000 384 384 80 160 10 10 10
Выходной файл:
0 125
(А. С. Матвеев)
КИВЕРВОУЛИНГ
Робот с искусственным интеллектом играет в кибербоулинг. Поле — коридор, расстояние между стенками которого 20 м. По центру коридора стоят кегли (40 шт.), расстояние между центрами кегль 10 м, их радиус равен R. Робот бросает шар радиуса R с начальной скоростью 2 м/с, под углом а (от стенки коридора).
Задание. В какую кеглю попадет шар? Кегли пронумерованы натуральными числами.
INPUT.TXT Входной файл содержит вещественные числа — а (в радианах) и R.
OUTPUT.TXT Выходной файл должен содержать одно целое число, равное номеру сбитой кегли. Если шар не попадает ни в одну кеглю — вывести число 0.
ПРИМЕР.
Входной файл: 0.785 0.1
Выходной файл:
1
(М. С. Ананьевский, А. С. Матвеев)
СВЕТОФОРЫ
Вы — водитель, и вам нужно добраться из пункта А, в пункт Б за минимальное время. Карта автодорог представляет собой сетку размера 39 на 39 ячеек. Двигаться можно
только по ребрам этой сетки. Длина каждого ребра 1 км. В узлах сетки могут располагаться светофоры. Чтобы преодолеть перекресток, на него надо сначала выехать. Нельзя выезжать на красный свет. Если вы выехали на перекресток, то покинуть его можно только в том направлении, в котором горит зеленый свет. Однако на перекрестке можно стоять сколь угодно долго. Ваша скорость 60 км/ч. Считаем, что разгоняетесь и останавливаетесь вы мгновенно.
Светофоры бывают двух типов: тип 0 — в нулевой момент времени горит зеленый свет для вертикального пересечения перекрестка, красный — для горизонтального пересечения; тип 1 — в нулевой момент времени горит красный свет для вертикального пересечения перекрестка, зеленый — для горизонтального пересечения. Каждую минуту светофор меняет свой цвет на противоположный.
Задание. Сколько вам потребуется времени, чтобы добраться из пункта А в пункт Б?
INPUT.TXT Входной файл содержит матрицу размера 40 х 40 (40 строк по 40 элементов), состоящую из чисел 0,1,2. Она соответствует узлам сетки; первый элемент — узел с координатами (0,0), последний — (39,39). Число 0 означает что в узле находится светофор типа 0, число 1 — типа 1, 2 — светофора нет. Пункт А — это перекресток (0,0), пункт Б — перекресток (39,39). Вы достигли пункта Б только тогда, когда выехали на перекресток (39,39).
OUTPUT.TXT Выходной файл должен содержать одно целое число, равное минимальному количеству минут, необходимому для того, чтобы добраться из пункта А в пункт Б.
ПРИМЕР (УМЕНЬШЕННЫЙ РАЗМЕР).
Входной файл:
20
02
Выходной файл:
3
(М. С. Ананьевский)
ЯЩИК
Задание. Под каким углом к горизонту нужно тянуть за веревку тяжелый ящик массы т кг, чтобы передвигать его волоком по горизонтальной поверхности под действием постоянной по модулю силы F для получения максимального ускорения? Коэффициент трения равен К.
Примечание. При расчетах ускорение свободного падения положить равным 9.81 м/с2.
INPUT.TXT Входной файл содержит т, F, К - вещественные числа.
OUTPUT.TXT Выходной файл должен содержать значение угла в градусах с точностью не менее двух знаков после запятой.
ПРИМЕР.
Входной файл:
10 300 0.2
Выходной файл:
11.31
(Ю. Е. Зайцев)
СТРАННЫЙ ВЕЗДЕХОД
Вездеход совершает сложные перемещения в пространстве. Управление движением вездехода по координатам X и У осуществляется независимо, путем задания скоростей Vx и Vy (м/с) соответственно. На рисунке приведен вид графика скорости. А — амплитуда изменения скорости, F — фаза, Т — период (в секундах).
Все параметры — целые числа, F лежит в диапазоне от О до 10, А — в диапазоне от 1 до 10, Т — четное, в диапазоне от 2 до 20.
Задание. В какой точке окажется вездеход в конечный момент времени t (t — целое число, от 0 до 1Q8)? В начальный момент времени он находится в точке с координатами (0,0).
INPUT.TXT Входной файл содержит числа A*, FX1Тх, Ay, F Т t
OUTPUT.TXT Выходной файл должен содержать значения X и У, определяющие положение вездехода в за-
данный момент времени.
ПРИМЕР.
Входной файл:
2022025
Выходной файл:
2 2
(Ю. Е. Зайцев, В. В. Шиегин)
Задачи 2004 г.
ИДЕНТИФИКАЦИЯ
Источник сигнала осуществляет передачу сообщения на приемник. Однако, при трансляции неизбежны помехи и сообщение, записанное приемником, может существенно отличаться от того, которое синтезировал источник.
Сообщение состоит из одного целого числа, взятого из отрезка [100,200]. Источник передаст его 1024 раза. При каждой передаче к сообщению прибавляется случайное целое число из отрезка [—range, +ranye], где “range” тоже случайное целое число от 1 до 5; любое число из выбранного отрезка может появиться с одинаковой вероятностью. Значения range также выбираются с одинаковой вероятностью.
Задание. Какое сообщение передал источник сигнала?
INPUT.TXT Входной файл содержит 1024 целых числа.
OUTPUT.TXT Выходной файл должен содержать одно целое число, соответствующее исходному сообщению.
ПРИМЕР.
Входной файл:
100 100 100 ... (1024 раза)
Выходной файл:
100
(М. С. Ананьевский)
С НОВЫМ годом
Перед Новым годом власти города Козюпинска обнаружили, что главная площадь, на которой будут проходить все торжества, завалена снегом. В городе есть N бригад работников, состоящих из ki человек, каждый из которых получает за свою работу pi рублей в час, убирая при этом ^ квадратных метров в час. Поскольку недавно избранный мэр ввел в городе режим строгой экономии бюджетных средств, надо так составить команду уборщиков, чтобы стоимость их услуг была минимальной. Так как в предпраздничные дни работать никто не хочет, то, для полученной минимальной стоимости число рабочих должно также быть минимальным. До праздника осталось Т часов, в которые и надо уложиться. Из каждой бригады можно нанять произвольное число человек, не превышающее к^
Задание. Какова будет минимальная стоимость уборочных работ и сколько потребуется рабочих?
INPUT.TXT Входной файл содержит площадь S, время Т, число бригад N и матрицу размером N х 3, в которой заданы к^ р^ Vi — положительные вещественные числа, не превосходящие значение 30000.
OUTPUT.TXT Выходной файл должен содержать общую стоимость работ С и количество необходимых для уборки территории человек К — вещественные числа. Если решения не существует (например, недостаточно рабочих), то в выходном файле должны быть нулевые значения. Проверка решения осуществляется с точностью до двух знаков после запятой.
ПРИМЕР.
Входной файл:
ПО 10 3 (S Т N)
2 1 2 (&i pi vO
2 2 1 (fc2 Р2 Уг)
1 3 6 (fc3 рз v3)
Выходной файл:
70.0 4.0 (С К)
(С. В. Арановский, Г. И. Болтунов)
БИОТЕХНОЛОГИЯ И КИБЕРНЕТИКА
В биореакторе ценный материал производится с помощью популяции бактерий. Для успеха ее размер должен удерживаться в заданном интервале. Этому мешает, во-первых, склонность бактерий к интенсивному размножению и, во- вторых, влияние случайных факторов, например колебаний фонового излучения, температуры атмосферы, магнитного поля, неидеальностей протекания процесса в реакторе и т.п. Это влияние оценивается известной верхней границей. Вместе с тем эти факторы непрогнозируемы. В каждый момент времени их влияние в принципе может быть любым в пределах данной границы.
К счастью, реактор управляем. Если текущий размер популяции известен, то, подобрав управление, можно привести популяцию к любому наперед заданному размеру единицу времени спустя, если конечно пренебречь случайными факторами. Проблема, однако, в том, что измерить этот размер трудно. Имеющиеся здесь возможности сводятся к тому, что
в любой момент можно поставить вопрос “больше ли текущий размер заданного числа” z, и получить на него ответ. Число z при этом можно брать, как угодно. Следующий такой тест можно произвести только спустя единицу времени.
Задание. Какова минимальная ширина коридора, в котором можно удержать размер популяции с помощью надлежащей стратегии управления?
Примечание. Математическая модель. Чтобы избежать очень больших чисел, размер популяции задаем числом ж = ^. Здесь N — общее число бактерий, а К — разумно подобранная “большая” константа. Фактически х принимает только значения вида (целое)/К. Они, однако, чередуются со столь малым шагом ^, что мы им пренебрегаем и считаем ж просто вещественным числом.
Процесс развития популяции бактерий описывается уравнением
ж(£ + 1) = аж(4) + и^Д + w(t),
где
\w^\ <W,t = 0M..., (а е (1,2), W > 0).
Здесь t — время, u(t) — управление, слагаемое w(t) отражает влияние случайных факторов, а ах^ — естественную рождаемость и смертность бактерий. Задача — удержать размер популяции бактерий в интервале xl < х^ < жд, (0 < Xl < жд) при любых меняющихся во времени возмущениях w(t) с |w(t)| < W. Начальный размер находится в указанном интервале, но неизвестен. Отрицательное значение ж(t + 1) означает, что популяция погибла.
Стратегия управления — это правило, которое однозначно определяет текущие действия управляющего органа (т.е. выбор управления и^ и очередной “вопрос” z = z(£)) исходя
из того (и только того), что известно к данному моменту. В момент выбора первого вопроса z(0) известны только величины a, W\ Xl, xr\ к моменту выбора первого управления а(0) к ним присоединяется ответ на этот вопрос. Те же данные используются при выборе второго вопроса z(l) уже в следующий момент времени t = 1. К моменту выбора второго управления эти данные дополняются ответом на второй вопрос, и так далее.
INPUT.TXT Входной файл содержит a, W — вещественные числа.
OUTPUT.TXT Выходной файл должен содержать (жд — Xl) с точностью до двух десятичных знаков (если ограничить популяцию невозможно, то вывести 0).
ПРИМЕР.
Входной файл:
20 Выходной файл:
200
(А. С. Матвеев)
СТРЕЛЬБА ИЗ ПУШКИ ПО ВОРОБЬЯМ
Безраздельно властвовавший над тридесятым государством царь Горох услышал однажды идиому про стрельбу из пушки по воробьям и решил проверить, как оно на самом деле.. Приказал он установить на столбе макет воробья
и поставить недалеко от этого столба пушку. Подумали подданные, да и решили, что катать пушку им лень (царство тридесятое, колеса квадратные), так что лучше поставить ее на подъемную платформу и в случае промаха просто менять высоту.
В общем, установили они все требуемое и стали Гороха звать, стрельбу устраивать. Пришел Горох, посмотрел на пушку, порадовался, да и стал целиться. Так как физику он не знает, о баллистике не слышал, то прицелился просто по прямой линии в макет воробья. Разумеется, снаряд упал на землю через t секунд, даже не долетев до столба с воробьем. Расстроился царь и велел поднять платформу. Трудились подданные, трудились, да и подняли пушку так, что разница высот пушки и столба стала составлять dh. Не меняя прицела пушки, Горох снова выстрелил, и, о чудо, снаряд попал прямо в макет воробья, доказав, что пушка для стрельбы по воробьям очень даже годится.
Задание. Какова высота столба, на котором стоит макет?
Примечание. Масса пушки много больше массы снаряда, так что отдачей можно пренебречь. Можно пренебречь сопротивлением воздуха. Масса пороха при обоих выстрелах одинаковая, так что скорости снаряда в момент выстрела — тоже. При расчетах полагать g = 10 м/с2.
INPUT.TXT Входной файл содержит tndh вещественные числа.
OUTPUT.TXT Выходной файл должен содержать одно вещественное число h — высоту столба с воробьем, или О, если решение не существует. Проверка осуществляется с точностью до двух знаков после запятой.
ПРИМЕР.
Входной файл:
1 10
Выходной файл:"
10.00
(С. В. Арановский, Ю. Е. Зайцев)
ПУТЕШЕСТВИЕ ИЗ ПЕТЕРБУРГА В МОСКВУ
Некий любитель вояжа задумал повторить путь А. Н. Радищева “Из Петербурга в Москву”. Путешествовать “на перекладных”, как его предшественник, он побоялся и решил воспользоваться личным автомобилем. К сожалению, спонсировать это мероприятие никто не захотел, и платить за бензин пришлось из своего кармана.
Естественно путешественник решил так спланировать свой маршрут, чтобы минимизировать затраты. Для этого ему нужно было знать, сколько на его пути встретится заправочных станций, на каком расстоянии друг от друга они наг ходятся и сколько стоит литр бензина на каждой из них. Помимо всего прочего приходилось учитывать, что емкость бензобака машины ограничена, и на каждой заправочной станции заливается бензин особого состава, так что смешивать топливо с разных станций крайне не рекомендуется.
Задание. Какая минимальная сумма денег должна находится в кармане путешественника при выезде из гаража?
Примечание. Считать, что первая АЗС находится в Петербурге.
- ПО-
INPUT.TXT Входной файл:
О < N < 16 — общее число АЗС на пути следования, целое.
О < R < 1 — расход бензина в литрах на 1 км пути, вещественное.
В — емкость бензобака машины в литрах, целое.
Далее — N пар целых чисел, S и С, где Si — расстояние в километрах от i-й до (г 4- 1)-й АЗС ^Sn — расстояние от последней АЗС до Москвы), Ci — цена литра бензина на г-й АЗС.
OUTPUT.TXT Минимально возможная стоимость путешествия в рублях, целое. Вывести ноль, если при заданных условиях путешествие невозможно.
ПРИМЕР.
Входной файл:
3 0.1 40
300 9
300 10
100 10
Выходной файл:
670
(С. В. Арановский, М. А. Коршунов)
МЫШЕЛОВКИ
В вашем доме поселилась мышь и прогрызла целое множество ходов под полом. После тщательного обследования вы нашли 11 входов-выходов. Также с помощью рентгеновских
очков вы составили карту мышиного лабиринта. И вдруг, совершенно случайно вы заметили мышь, прыгнувшую в одну из 11 норок. Карта лабиринта — лист клетчатой бумаги. Если в клетке стоит 1 — значит там стена, если 0 — значит проход. По диагонали двигаться нельзя. Мышь умеет поворачивать только на прямые углы.
Задание. Вам требуется определить все норки, из которых она может появиться, чтобы поставить там мышеловки.
INPUT.TXT Входной файл:
двумерный массив чисел 0,1 размером 100 на 100 — это карта лабиринта. Если в ячейке записана единица — значит это стена, если 0 — то проход. Во всех крайних клетках, кроме 11, стоит число 1 (стена). Нули записаны в клетках с координатами (ж, у) (ж и у меняются от 0 до 99):
(01.99) - норка №0, в нее юркнула мышь:
(01,0).- норка №1;
(03,0) - норка №2;
(05,0) - норка №3;
(07,0) - норка №4;
(09,0) - норка №5;
(11,0) - норка №6;
(13,0) - норка №7;
(15,0) - норка №8;
(17,0) - норка №9;
(19,0) - норка №10.
OUTPUT.TXT Одномерный массив чисел 0,1 размером 11. Если на г-м месте стоит 0, значит, через этот ход мышь выбраться не может и мышеловку там ставить
не имеет смысла; если 1 — то мышеловку необходимо поставить.
ПРИМЕР (УМЕНЬШЕННЫЙ РАЗМЕР).
Входной файл:.
1010101
1 000 1 1 1 1110 111 1100111
1 0000 1 1
10 11111
10 11111
Выходной файл:
1110
(М. С. Ананьевский)
ЕСТЬ ЛИ ЖИЗНЬ НА МАРСЕ?
На берегу марсианского моря примарсился марсоход с запасом энергии Et. Его цель — исследовать поверхность Мар-
са. Установленное на нем оборудование последнего поколения позволяет'исследовать поверхность планеты, находящуюся между ним "и марсианским морем. Собранную информацию марсоход накапливает и сможет передать, только если он находится на береговой линии марсианского моря, т.е., исследовав планету, он должен вернуться к морю. Но на прохождение одного метра по Марсу он тратит Ет энергии, а на один поворот (на любое число градусов) — Ег энергии.
Задание. Какую наибольшую площадь может исследовать марсоход, если с Земли ему разрешили сделать не больше N поворотов?
INPUT.TXT Et — полный запас энергии марсохода; Ет — энергия, затрачиваемая на преодоление одного метра поверхности; ЕТ — энергия, затрачиваемая на один поворот; N — максимальное разрешенное число поворотов.
OUTPUT.TXT Выходной файл должен содержать одно вещественное число с точностью до 2-го знака после запятой — максимальная площадь, которую возможно исследовать.
ПРИМЕР.
Входной файл:
9.0 2.0 1.0 3
Выходной файл:
1.533
(М. С. Ананьевский, А. Л. Фрадков)
ЖАЖДА БУБЛОВ
На бирже работают 1000 брокеров. Одни из них покупают, а другие продают бублы за боллары. Известно, что каждый брокер готов продать (купить) а бублов центробанку и получить (заплатить) за них не меньше чем bi болларов (если Ь^ положительно — получает, отрицательно — платит). С другой стороны, он знает, что честный покупатель не даст ему больше (не возьмет с него меньше) чем 62 болларов (а брокер заключает сделки только с честными партнерами).
Задание. Какой обменный курс должен установить центробанк и сколько должно стоить оформление сделки, чтобы они все состоялись? Известно, что такой обменный курс и такая стоимость сделки существуют.
INPUT.TXT Входной файл содержит 1000 строчек, каждая состоит из трех вещественных чисел: bi, 62, а. Если число а меньше нуля, значит этот брокер хочет купить |а| бублов; если больше нуля, значит — продать. Если bi или 62 меньше нуля, значит, столько он готов отдать болларов.
OUTPUT.TXT Выходной файл должен содержать два вещественных числа: первое — стоимость одного бубла в болларах, второе — стоимость сделки в болларах (точность — один знак после запятой).
(М. С. Ананьевский)
ДИАТЛОН
На соревновании по диатлону диатлонист должен пробежать некоторое расстояние по прямой дороге, а затем выстрелить под случайным углом. '
Задание. Какое расстояние должен пробежать диатлонист, чтобы поразить цель с наибольшей вероятностью, если цель представляет собой сплошной прямолинейный забор длиной а, расположенный на другой прямолинейной дороге, которая выходит из точки старта, и начинающийся на расстоянии b от старта?
Примечание. При стрельбе под случайным углом вероятность попадания в цель пропорциональна величине угла, под которым видна цель.
INPUT.TXT Входной файл содержит два вещественных числа: а, Ь.
OUTPUT.TXT Выходной файл должен содержать одно вещественное число, с точностью до одной сотой.
(А. Л. Фрадков)
Задачи 2005 г.
НАСОСЫ, СОСУДЫ, ГОРЕЛКИ И ГЕЛИЙ
В химическую лабораторию, занимающуюся исследованием свойств одноатомного гелия, завезли новое оборудование: 1000 насосов, 1000 сосудов и 1000 горелок. Для сборки одной экспериментальной установки требуются ровно одна горелка, один насос и один сосуд. Подключив к сосуду к-ю горелку, ученый может установить в нем температуру в пределах от тгпТк до тахТк по Кельвину, k-ый насос, путем откачки или накачки запасенного гелия, может установить давление в пределах от тгпРк до тахРк Па, а k-й сосуд обладает объемом Vk. Утечек гелия нет. По завершении эксперимента весь гелий из установки выкачивается в запас лаборатории для дальнейшего использования. Если вдруг окажется, что запасенного лабораторией гелия нехватит для того, чтобы во всех работающих установках одновременно создать требуемые коллективом ученых условия (в пределах, допустимых установками), то учейые сильно обидятся и уедут за границу.
Дополнительные данные. Гелий считать идеальным газом. Молярная масса гелия 0.004 кг/моль. Универсальная газовая постоянная R = 8.314 дж/(моль-К).
Задание. Какое количество гелия в килограммах надо запасти лаборатории, чтобы обеспечить бесперебойную работу ученого коллектива?
INPUT.TXT Во входном файле последовательно дано пять массивов вещественных чисел длины 1000: 14, тгпТк, тахТ^ тгпРк, тахРк.
OUTPUT.TXT Выходной файл должен содержать одно вещественное число — масса гелия в килограммах, необходимого лаборатории (точность — два знака после запятой).
ПРИМЕР.
Входной файл:
1.00 0.00 0.00 0.00 ...
(999 нулей)
- vk
1.00 1.00 1.00 1.00 ...
(1000 единиц)
— ттТк
1.00 1.00 1.00 1.00 ...
(1000 единиц)
— тахТк
1.00 0.00 0.00 0.00 ...
(999 нулей)
— minPk
100000.00 0.00 0.00 ...
(999 нулей)
— тахРк
Выходной файл: 48.11
(М. С. Ананьевский)
ЭЛЕКТРИК НА ДАЧЕ И ЕГО ПОМИДОРЫ
Понадобилось дачнику Феде обезопасить свои помидоры от посягательств соседских животных. А поскольку он был электриком, то решил возвести забор с колючей проволокой вокруг участка и пустить по ней ток. Вкопал Федя 100 деревянных столбов (см. рисунок), набил в каждый какое-то количество гвоздей и соединил колючей проволокой все гвозди соседних столбцов (гвозди, вбитые в один столб, напрямую не соединены). При этом он постарался сделать так, чтобы два разных куска проволоки друг с другом не контактировали, кроме как на гвозде, заизолировав пересечения изоляционной лентой. Каждый кусок колючей проволоки обладает
сопротивлением 40 Ом. Гвозди на крайних столба он подключил к розетке постоянного тока, т.е. все гвозди одного к ”4-”, а другого к ”—”. Розетка дает разность потенциалов 125 В. В каждом столбе есть хотя бы один гвоздь.
Задание. Сколько дачник Федя должен будет платить в неделю за охрану своих грядок, если один киловатт-час стоит 1 р (неделя = 7 дней, день = 24 ч)?
INPUT.TXT Во входном файле INPUT.TXT задан массив целых чисел длины 100, k-е число — это количество гвоздей в k-м столбе.
OUTPUT.TXT Выходной файл OUTPUT.TXT должен содержать одно вещественное число, с точностью два знака после запятой.
ПРИМЕР.
Входной файл:
1111... (100 единиц)
Выходной файл:
0.66
(М. С. Ананьевский)
ПОКОРЕНИЕ АМАЛЬТЕИ
При посадке космического аппарата КА-10 на Амальтею (самый близкий к Юпитеру естественный спутник) была произведена фотосъемка участка приземления — квадрат размера 100 х 100 м. По снимку было установлено, что в этом участке присутствуют 7 интереснейших месторождений метана.
Дополнительные данные. На прохождение одного метра поверхности Амальтеи КА-10 тратит единицу топлива. Координаты ’’приземления” КА-10 — центр квадрата, т.е. точка (0,0).
Задание. Какое минимальное количество топлива потребуется потратить КА-10, чтобы посетить все месторождения?
INPUT.TXT Во входном файле задано семь пар вещественных чисел: з^, у^ k = 1,..., 7. Координаты (ж*, Ук) — координаты месторождений метана (значения лежат в пределах от —50 до +50).
OUTPUT.TXT Выходной файл должен содержать одно вещественное число, с точностью два знака после запятой.
ПРИМЕР.
Входной файл:
36.067
-25.571
—(^1,3/1)
7.938
30.465
-(^2,^)
8.242
2.327
— (а^З/з)
29.257
6.789
-(^4,^)
23.253
12.118
-(^5,^)
-7.556
35.713
- (®6,Уб)
-23.448
2.906
— (ж?,^)
Выходной файл:
158.06
(М. С. Ананьевский)
ЛУКУЛЛОВСКИЙ ПИР
В биологическом кружке ребята изучают жизнь бактерий-хищников. Для их пропитания ребята разводят другой тип бактерий — бактерии-жертвы. Масса хищников в момент времени t равна yt грамм, масса жертв — xt грамм. Бактерии-хищники и бактерии-жертвы размножаются пропорционально своей массе, но жертв поедают хищники с коэффициентом прожорливости ЪТ
Г Ш+г = & + cTyt
[ xt+i = xt + axt - VT-yt.
Здесь T — температура по шкале Кельвина в сосуде с бактериями. Коэффициенты а^Ъ, с — входные данные. В начальный момент времени х0 = Уо = 1 г.
Задание. Какую максимальную температуру Т должны поддерживать ребята, чтобы бактериям-хищникам всегда хватало еды?
INPUT.TXT Входной файл содержит три вещественных числа: а >0, Ъ > 0, с > 0.
OUTPUT.TXT Выходной файл должен содержать одновещественное число с точностью до второго знака.
ПРИМЕР.
Входной файл:
4943.880 7.397 8.590
Выходной файл:
309.24
(М. С. Ананьевский)
ЖИРНАЯ МУХА И ПАУК
В квадратную комнату размером 3 х 3 х 3 м, где на одной из ее граней сидит голодный паук-тарантул, залетела жирная муха це-це. Немного полетав, она села в то место, до которого пауку бежать дольше всего.
Задание. Какое расстояние должен пробежать паук, чтобы съесть эту вкусную муху? Паук бегает только по стенам, потолку и полу с постоянной скоростью.
INPUT.TXT Входной файл содержит три вещественных числа в пределах от 0.0 до 3.0 — координаты местоположения паука.
OUTPUT.TXT Выходной файл должен содержать одно вещественное число, с точностью 0.1.
ПРИМЕР.
Входной файл:
2.799 0.000 1.935
Выходной файл:
6.1
(М. С. Ананьевский)
ПРЕВЫШЕНИЕ СКОРОСТИ
По прямой дороге Москва—Санкт-Петербург движется машина. Ее скорость составляет 198 км/ч (55 м/с). Так как максимально допустимая правилами скорость движения равна всего 90 км/ч, машина привлекает внимание работников ГИБДД. Через А секунд милиционеры выезжают за нарушителем. Машина ГИБДД, оснащенная экспериментальным двигателем, через t секунд после старта оказывается на расстоянии 2* мот точки начала движения.
Задание. Через сколько секунд после старта милиционеры догонят нарушителя?
INPUT.TXT Входной файл содержит вещественное число А в пределах от 1.0 до 10.0.
OUTPUT.TXT Выходной файл должен содержать одно вещественное число, с точностью 0.01.
ПРИМЕР.
Входной файл:
3.600
Выходной файл:
9.49
(М. С. Ананьевский)
КУБОК УЕФА 2005
В отборочном турнире по футболу участвует т команд. В финальный турнир выходит п команд (1 < п < т). Турнир проводится в один круг, за победу начисляется 3 очка, за ничью — 1 очко, и поэтому в двух играх команда не может набрать 5 очков. Каждая команда проводит по одной игре с каждой участвующей в турнире. •
Задание. Найти минимальное количество очков, набрав которое, команда гарантированно попадает в финальный' турнир (без учета забитых и пропущенных мячей).
INPUT.TXT Входной файл содержит два целых числа — тип.
OUTPUT.TXT Выходной файл должен содержать одно • целое число.
ПРИМЕР.
Входной файл:
53
Выходной файл:
8
(Г. И. Болтунов)
ИГРАЛЬНЫЕ АППАРАТЫ
У метро стоит игральный автомат очень простой конструкции: игрок бросает жетончик стоимостью К рублей, и в окошечке автомата выпадает одна цифра. Если цифра четная (включая 0), то игрок теряет свою ставку. Если же цифра нечетная, то из автомата выпадает М рублей. Однажды автомат сломался. Приехавший мастер обнаружил, что в памяти пропали настройки процентов выпадения для цифр 9 и 0.
Примечание. Проценты выпадения цифр: предположим, для наглядности, что у нас всего три цифры: 1, 2, 3. Тогда, если проценты выпадения этих цифр составляют 1 — 20, 2 — 52, 3 — 28, то в среднем из 100 запусков цифра 1 выпадет 20 раз, цифра 2 — 52, а цифра 3 — 28 раза.
Задание. Требуется восстановить эти значения так, чтобы клиенты выигрывали максимально часто, но при этом владельцы аппарата не оставались в убытке.
INPUT.TXT Входной файл содержит целые положительные числа:
К, М и проценты выпадения цифр 18 Pi, Р2, ^з,
Pi, Рб) Рб> Ph Ре соответственно.
OUTPUT.TXT Выходной файл должен содержать два целых числа — проценты выпадения цифр 0 и 9: Ро, Pg соответственно. Если задача не имеет решения, то в выходном файле вместо процентов должны стоять нули: 0, 0.
ПРИМЕР.
Входной файл:
1 1
10 10 10 10 10 10 10 10
Выходной файл:
10 10
(С. В. Арановский)
БРОНЕПОЕЗД
Шериф и бандит скачут навстречу друг другу вдоль железнодорожных путей. Между ними навстречу бацциту идет бронепоезд, вагоны которого заслоняют всодииков друг от друга. Скорости поезда, шерифа и бандита равны U м/с. Шериф, заметив бандита, стреляет без промаха через t секунд.
Дополнительные данные. Примечание: скорость пули равна 450 м/с.
Задание. Каково максимальное время реакции шерифа t, достаточное для поражения преступника, если ширина вагонов и расстояние от вагонов до всадников равны по L м., а расстояние между вагонами равно I м.
INPUT.TXT Входной файл содержит три вещественных числа: U1 L^ I.
OUTPUT.TXT Выходной файл должен содержать вещественное число i, с точностью до двух знаков после запятой.
ПРИМЕР.
Входной файл:
5.0 3.0 1.0
Выходной файл: 0.13
(Ю. Е. Зайцев)(Ю. Е. Зайцев)
(Ю. Е. Зайцев)
(Ю. Е. Зайцев)
Глава Ш.
Решения
. Решения задач 1999 г.
РАВНОВЕСИЕ
Итак, с одной стороны к барабану приложена сила т^д^ длина плеча равна Tv С другой стороны действует сила Ft и плечо — 72- Требуется определить значение mi, при котором система будет находиться в равновесии.
Запишем уравнение равновесия: т^дтх = FTr2. Отсюда получим mi = Ртт^дту.
Информация об атмосферном давлении и массе m2 предназначается только тем, у кого возникают определенные трудности при решении подобных задач.
Ниже приведен полный текст программы, вычисляющей искомое значение:
#include <stdio.h>
#define g 9.2
float ml, m2, rl, r2, ftr; int main() {
FILE *fl, *f2;
fl = fopen("input.txt", "rt");
fscanf(fl, "%f%f%f%f", &m2, &rl, &r2, &ftr);
fclose(f1);
ml = ftr*r2/(rl*g);
f2 = fopen("output.txt", "wt");
fprintf(f2, "X10.2f", ml);
fclose(f2): return 0;
ПОСЛЕДОВАТЕЛЬНОСТЬ
Приведенные фрагменты програмы могут вызвать соблазн использовать их в своей программе. Этого категорически не следует делать, чтобы избежать неприятностей вроде бесконечного цикла и выхода за пределы массива (на олимпиаде такая беда приключилась с несколькими командами).
Итак, заданы следующие рекуррентные соотношения:
®t+l ®i “Ь Vil
3/i+i ®i Ui + ^*i(^ = 0) I» 2, ...);
ж0 и Уо — известны. Также известны финальные значения ж/ и у/, которых надо достичь.
Требуется найти такую последовательность и0, Ui, и^^..., которая позволит достичь финальных значений за минимальное число шагов.
Возникает резонный вопрос: а как много шагов может нам понадобиться? Ответ на него мы скоро узнаем.
Сначала выясним, возможно ли достичь результата за один шаг. Предположим, что возможно. Тогда для первого шага приведенные выше уравнения будут выглядеть так:
ж/ = Жд + Уо, 2// = жо - 2/о + u0.
Нетрудно видеть, что результат может быть достигнут за один шаг, если выполняется условие жу = жд + Уо- При этом надо выбрать щ = yj - (ж0 - у0У
Теперь выпишем уравнения, считая, что финальные значения достигаются за два шага:
Ж1 = Ж0 + Уо, 2/1 = Жо - 2/0 + Но, ж/ = Ж1 + x/i, 2// = si - уг + иг.
Выполним подстановку...
Жу = (ж0 + 5/0J + (ж0 - 2/0 + Пд) = 2ж0 + Мд,
2// = (ж0 + 2/о) - (ж0 - 2/0 + Пд) + Ui = 2уд - Ug + UX.
Отсюда следует, что
Uq — Жу 2жд, Пт = 2// - 2j/g + Uo = Ж/ + У/ - 2(ж0 + у0\
т.е. финальные значения достигаются не более чем за два шага.
Ниже приведен полный текст программы для этой задачи:
#include <stdio.h> int х[3] , у[3], u[2];
int xf, yf, dl, d2;
int mainO {
FILE *fl, *f2;
fl = fopen("input.txt", "rt");
fscanf(fl, "%d7.d7.d7.d", &x[0], &xf, &y[0] , &yf);
fclose(f1);
f2 = fopen("output.txt", "wt");
dl = xf - (x[0] + y[0]);
d2 = yf - (x[0] - y[0] );
if ( dl != 0 ) {
u [0] = xf - 2 * x [0] ;
u[l] = xf + yf - 2 * (x[0] + у [0] );
fprintf(f2, "7.d 7.d", u[0] , u[l]);
} else {
u[0] = d2;
fprintf(f2, "%d", u[0]);
fclose(f2);
return 0;
ЛЕГЕНДА .
Условия задачи не так сложны, как может показаться при первом прочтении. Соскоблив сюжетную “шелуху”, можно обнаружить такую постановку: для заданного целого N (от 2 до 100) требуется найти сумму К положительных нечетных чисел, где К = 2N — 1; т.е. S = 1 + 3 + 5 + ... (всего К слагаемых).
Решение “в лоб”.
1) возвести 2 в степень N,
вычесть единицу,
в цикле до К складывать нечетные числа.
Недостатки:
при больших значениях N стандартные типы данных (ни целые, ни вещественные) неспособны вместить результат;
цикл суммирования будет выполняться невообразимо долго (компьютер считает быстро, но не до такой же степени!).
Хорошее решение.
Сумма представляет собой арифметическую прогрессию, которая сворачивается в более красивую форму: S = К2. Окончательная формула: S = (2N — I)2.
Для работы с большими числами лучше всего представить их с помощью массивов, в которых каждый элемент хранит один десятичный разряд.
Для нахождения результата нам потребуется реализовать следующие операции с длинными числами:
сложение двух длинных чисел,
умножение длинного числа на скаляр,
умножение двух длинных чисел (выполняется с использованием двух предыдущих операций),
вычитание единицы из длинного числа.
Наилучшее решение.
Воспользуемся тем, что число К, которое нужно возвести в квадрат, не произвольно, а имеет вполне определенный вид. Для начала вспомним некоторые свойства. Двоичное представление числа 2м содержит единицу в разряде с номером М и ноль в младших разрядах (с 0 по М — 1). Число 2м — 1 содержит 1 в разрядах с 0 по М — 1 (всего М единиц).
Перепишем результирующую формулу в виде
S = (2^ - I)2 = А - В + 1,
где
А = 22N - 1, В = 2 • 2N - 1 = г^1 - Г.
Двоичное представление числа А — это 2N единиц, числа В — N +1 единица. Их разность содержит единицы в разрядах с номерами с N 4-1 по 2N — 1. Прибавление 1 изменяет только нулевой разряд.
Окончательно число S состоит (слева от старших разрядов) из N — 1 единицы, N нулей и одной единицы.
Итак, зная число N, мы можем СРАЗУ сказать, как будет выглядеть результат в двоичном представлении.
Пример (N = 3): 23 - 1 = 0000111, (23 - 1)2=0110001.
Осталось только перевести результат в десятичное представление. Для этого найдем последовательно степени двойки с нулевой по 2N — 1 и степени с N 4-1 по 2N — 1, сложим между собой, не забыв прибавить еще единицу.
Нам потребуются следующие операции:
умножение длинного числа на 2;
сложение нескольких длинных чисел (прибавление дополнительной единицы можно реализовать здесь же, имитируя перенос единицы в нулевой разряд).
Ниже приведен листинг программы, в которой реализован описанный алгоритм.
#include <stdio.h>
#define maxN 100
#define maxL l-b(int)2*maxN/3
char M[2*maxN] [maxL] ;'
int N,L,K,s,p,v;
char R[maxL] ;
int main(){
int i,j;
FILE *fl,*f2;
f l=f Open (11 input. txt11, "rt" ) ;
fscanf (fl/'Xd" ,&N);
fclose(fl);
K=2*N;
L=l+2*N/3;
// Заполняем массив M[i][] строками, // содержащими поразрядное десятичное // представление i-й степени двойки М[0] [L-l]=l;
for (i=l; i<K; i++){
// p - перенос при умножении p=Q;
// число в i-й строке получаем умножением
// на 2 числа в предвдущей строке,
// двигаясь справа налево
for (j=L-l; j>=0; j—){
v=2*M[i-l] [j]+p;
M[i] [j]=v%10;
p=v/10;
}
}
// К результату добавляется единица (2*0)
// Складываем К-1 старших степеней двойки
// и результат заносим в R
for (j=L-l; j>=0; j —){
s=p;
for (i=N+l; i<=(2*K-l); i++)
s+=M[i] [j];
R[j]=s%10;
p=s/10;
f2=fopen("output.txt", "wt") ;
j=0; while (R[j]==O) j++;
for (; j<L; j++){
fprintf(f2,"%d",(int)R[j]);
fclose(f2);
return 0;
Решения задач 2000 г.
ШИФР
Условия задачи снабжены сразу двумя эпиграфами, призванными внушить решающему уверенность в собственных силах. Однако не следует пытаться воспроизвести действия героев упомянутых рассказов. Шифры “Золотого жука” и “Пляшущих человечков” — это шифры типа “простая замена”. В них каждая буква исходного текста заменяется другой буквой, причем соответствие букв является однозначным и не зависит от положения буквы в тексте.
Вот пример такого шифра:
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧППЦЬЫЬЭЮЯ ЗФШТКЯЖИХЧЫДЮЁОЩЪЭУВНЙЛГЦАСЕБМЬРП
Буква А во всем тексте заменяется на 3, Б на Ф и т.д.
Очевидно, что в нашем случае такая схема не работает. Зато у нас есть подсказка, благодаря которой задача значительно упрощается. Заметим, что расстояния (в алфавитном порядке) между буквами исходного и зашифрованного текста зачастую достаточно малы. Также отметим, что регистр букв имеет значение при преобразовании. Для удобства выпишем все буквы алфавита и пронумеруем их.
а6егде6жеж1жжжвеврстуфхцчжжж*ьэжж
1 2 3 4 6 в 7 8 » 10 11 12 13 14 16 18 17 18 1» 20 21 22 23 24 26 28 27 28 2» 30 31 32 33 дввгдвйжзийклииоирстуехцчедъиьэея 34 ЗБ 36 37 38 30 40 41 42 43 44 46 46 47 48 4» 60 61 62 62 64 66 66 67 68 60 80 81 82 63 64 86 86
Определив расстояния между буквами исходного и зашифрованного текста, заметим, что их значения повторяются с длиной периода 4. Логично будет предположить, что, если при добавлении смещения к номеру получившееся значение превышает общее количество букв, номер приводится по соответствующему модулю (т.е. выполняется переход
к началу цепочки букв). Заменим числа на буквы с соответствующими порядковыми номерами:
ИвщфхтпнбпоЖкфёцтф Зашифрованныйтекст 12 1 12 1 2 1 12 1 2 1 12 1 2 1 12 1 2 а бакабакабакабакаб
Мы получили слово, являющееся ключом шифра — "абак”. Это название вычислительного приспособления древних греков. Запишем буквы ключа под буквами зашифрованного текста:
Гр гэёо нщё чпГёфтК еркюй аб акаб ака бакабак абака Ёп эбопх тхуф. ба кабак абак и т.д...
... и восстановим начало известного стихотворения Б.Л. Пастернака:
Во всем мне хочется дойти До самой сути.
В работе, в поисках пути, В сердечной смуте.
До сущности протекших дней,
До их причины,
До основанья, до корней, До сердцевины.
Если бы авторы не привели пример, пришлось бы затратить больше усилий, но, анализируя имеющиеся данные и выдвигая предположения, справиться с задачей было бы возможно. В частности, с самого начала можно было догадаться, что зашифрованный текст — стихотворение.
Приведенный шифр называют шифром Виженера.
Решения задач 2002 г.
СКУЧАЮЩИЙ АВТОПИЛОТ
Возможно, некоторых сбили с толку “астрономические” масштабы сюжета, хотя авторы и упоминают о слабых умственных способностях автопилота и сделанных им предположениях. Надо понять, что, хотя скорость пакетов известна (это скорость света), она для решения задачи не имеет принципиального значения. Для удобства предлагаем спуститься на землю и заменить космический корабль вместе с автопилотом пешеходом, идущим вдоль трамвайных путей, а информационные пакеты — трамваями, движущимися в обоих направлениях. Именно в такой постановке эта задача приведена в книге “Занимательная алгебра” Я. И. Перельмана. Интересующимся рекомендуем ознакомиться с предложенным там решением, здесь же приведем собственные рассуждения.
Сначала относительно трамваев, которые обгоняют пешехода. Представим себе, что трамвайные пути достаточно длинные и на них находится несколько трамваев, вышедших из парка в разное время. Скорость их постоянна, интервал отправления постоянен, следовательно, расстояние между соседними трамваями (обозначим его через L) также постоянно. Пусть скорость трамвая — Vp, скорость пешехода — Vp (они неизвестны, но это нас пока не должно беспокоить).
Очевидно, что L = Утти Представим теперь момент, в который один из трамваев нагнал пешехода. Следующий за ним трамвай находится сзади на расстоянии L. Если бы пешеход был неподвижен, этот трамвай поравнялся бы с ним через п минут. Но они встретятся только через Ш\ минут, поскольку за это время пешеход успеет пройти расстояние Ry = Vpmi.
Трамвай за т^ минут проедет расстояние УтШ1 = L + Ri. Подставив записанные ранее выражения, получим:
УТ7П1 = Утп + ypmi.
Поделим обе части этого равенства на Ут*.
m\ = n + Kmit
здесь К = Ур/Ут- Выразим К*.
К = (mi — п)/тЬ
Выполнив аналогичные выкладки для встречных трамваев, получим:
К = (п — т2)/т2-
Приравняем правые части обоих выражений и выразим п:
п = (2mim2)/(m1 -Vm2\
При составлении программы следует помнить, что тп^ и m2 — вещественные (и могли быть заданы с некоторой погрешностью), а п должно быть целым. Наиболее надежный выход — округлить результат до ближайшего целого:
п := Tound(2mim2/(mi + m2));
АННА ПЕТРОВНА И СЛОЖНЫЕ ПРОЦЕНТЫ
“Сложные проценты” оказались не такими уж сложными, но все-таки посмотрим, как можно решать эту задачу. Начнем с примера. Пусть процентная ставка равна Р = 1. Это значит, что через год будет начислен доход в 1% (0.01) от исходной суммы (Pi = S • 0.01). Общая сумма при этом составит Si = S-VDi = 5(1+0.01). Для произвольного значения процентной ставки это выражение примет вид:
' Si = 5(1 + Р/100).
Через два года сумма будет такой:
8г - Si(l + Р/100) = 5(1 + Р/100)2.
Через N лет наберется сумма
SN = 5(1 + Р/100)"
Выделим в этой сумме значение дохода D:
S + D = 5(1 + Р/100)",
преобразуем:
D/S + 1 = (1 + Р/100)",Р = 100((D/S +I)1/" - 1).
Результат в соответствии с условием следует округлить до ближайшего целого. Здесь мы сталкиваемся с маленькой проблемой: в Паскале нет функции для возведения в произвольную степень (или извлечения корня произвольной степени).
Но это поправимо, поскольку есть функция вычисления экспоненты (возведения в заданную степень числа е = 2.718...) и есть функция для вычисления натурального логарифма. Если надо возвести некоторое число X в степень V, следует сделать замену: X = е1п^х\ Тогда Xv = eWnW.'
Если теперь нагромоздить все это в одно выражение, получится такой фрагмент программы:
Р := тоипд^ехрЦп(О/8 + 1)/W) — 1) • 100);
Есть и другие способы решения этой задачи (хотя и более длинные). Например, поскольку процентная ставка по условию является целым числом и не превышает 30, можно подобрать ее значение, перебирая целые числа, вычисляя для них доход и сравнивая его с заданным значением дохода. При этом удается обойтись без “хитрых” математических функций:
For Р := 1 То 30 Do Begin
mult := 1 + 0.01 ♦ Р;
К := 1;
For i := 1 То Н Do
К := К * mult;
К := К - 1;
DN := S * К;
If ( Abs(DN-D) < Epsilon ) Then Break;
End;
Была также зафиксирована одна успешная попытка использовать вместо подбора процентной ставки ее дихотомический поиск (методом половинного деления).
КРИПТОАНАЛИЗ
У самых опытных из участников эта задача не вызвала больших затруднений. Но каждая из полностью решивших ее команд предложила собственное решение. В условии задачи приведена функция для шифрования. Не повезло тому, кто решил включить ее в свою программу без изменений. Функция содержит цикл, в котором N (шифруемое число) К раз складывается с накопителем по модулю М. Значение К может почти достигать значения М (максимально — 1023), а количество чисел для расшифровки во входном файле может достигать 400000. Если перемножить два числа, то получится достаточно много. В общем, в отведенные 10 с на компьютере с частотой 1.6 ГГц при некоторых наборах данных такая программа не уложится.
Если взгянуть повнимательнее на функцию encode, можно догадаться, что она выполняет модульное умножение. Цикл суммирования
пп := 0;
For i:=l То k Do
пп := ( пп + п ) Mod М;
encode :- пп;
можно заменить на:
encode := ( п ♦ к ) Mod М;
При этом было использовано свойство
(... ((tti + аг) Mod М) + ... + ojk) Mod М =
= (oi + а2 + ... + Ok) Mod М,
которое можно легко проверить. При сложении набора чисел операцию приведения по модулю не обязательно применять после каждого суммирования. Можно сначала найти всю сумму^ затем привести по модулю полученное значение — результат будет тот же.
Пусть Р — исходное число, которое надо зашифровать, Ку — шифрующий ключ, К2 — ключ для расшифровки, V — зашифрованное число. Тогда операция шифрования
V = ^P-K^ModM.
Обратное действие:
Р = (V * К^ ModM = ^Р * К^ ModM * К^ ModM = = (Р*К!*К2) ModM.
Из этого равенства следует, что ключ К2 должен удовлетворять следующему условию:
(K^K2)ModM = 1.
Самый простой в реализации алгоритм — это перебор чисел- кандидатов с проверкой указанного условия. Достаточно провести поиск среди чисел, не превосходящих значения модуля — дальше начинается повтор (нетрудно видеть, что, например, значение К2 + М также годится для расшифровки):
For k2:=l То М-1 Do
If (( kl*k2 ) Mod M) == 1 Then break;
Теперь, когда ключ найден, осталось только расшифровать данные:
For i:=l To n Do Begin Прочитать( V );
P := (V * K2) Mod M; Записать( P );
End;
Вот, собственно, и вся программа.
Впрочем, только одна команда (из решивших задачу пол- ностыб) использовала приведенный алгоритм. Другая команда сократила среднее время поиска ключа (на самом деле, это практически не повлияло на время работы программы в целом), отказавшись от перебора. Как? Можно воспользоваться уже известной нам формулой, чтобы получить уравнение в целых числах и без операции приведения по модулю:
(Ki * K^ModM = 1 -> Ki * К2 =
= L * М + 1 —> Ку * К2 — L * М = 1, здесь L — некоторое целое число. Для решения этого уравнения используется обобщенный алгоритм Евклида.
Как оказалось сам ключ искать необязательно. Одна из команд обратила внимание на следующие свойства: этот шифр является подстановочным, т.е. каждое из шифруемых чисел заменяется на другое; диапазон возможных значений достаточно мал (число должно быть меньше значения М\ Следовательно, можно действовать так: составить таблицу пар чисел (Р,, Ц), шифруя все числа от 0 до М — 1; отсортировать эту таблицу по возрастанию элементов Ц; при расшифровке использовать входное значение в качестве индекса в таблице пар; из пары, стоящей на соответствующем месте, значение Р^ считать результатом расшифровки. Можно
обойтись без сортировки, если строить таблицу, сразу упорядоченной по Vt- Еще один,более трудоёмкий способ — “взламывать” код для каждого значения заново. Для этого можно воспользоваться уже знакомой формулой:
V = (P^Kl)ModM-^P*Kl = V + J*M,
где J — некоторое целое число. Надо для каждого У подбирать такое J, чтобы правая часть этого выражения делилась нацело (без остатка) на Ki. Тогда частное и будет искомым числом Р,:
Р = (V + J * М)/К1.
Читателю предлагается самостоятельно оценить трудоемкость приведенных здесь решений.
КВАДРАТЫ
Приведем сначала алгоритм, который прост в реализации, но не всегда дает правильный ответ (впрочем, на олимпиаде такого решения для этой задачи было достаточно). Возьмем прямоугольный листок бумаги в клеточку и ножницы (можно мысленно). Действительно, если разрезать листок по каждой из линий, получим максимально возможное количество квадратов — Л * В (столько, сколько всего клеточек в прямоугольнике). Квадраты получились маленькие. Если квадраты будут покрупнее, то их количество будет меньше. Пожалуй, стоит резать так, чтобы размеры квадратов были как можно больше.
Как это сделать? Предлагается сначала отрезать от исходного прямоуольника самый большой квадрат, какой только возможен. Очевидно, что сторона этого квадрата равна
MIN(AtB). Пусть, например, А > В. Отрежем этот квадрат и отложим в сторону. Теперь у нас остался прямоугольник со сторонами (А — В) и В. Поступим с ним так же — отрежем от него наибольший квадрат. Резать надо до тех пор, пока оставшийся прямоугольник не окажется квадратом. Если А = В, значит пора остановиться. Требуется подсчитать, сколько квадратов у нас получилось при этих манипуляциях.
Получается вот такой цикл:
ent : = 1; {Меньше одного квадрата не монет быть!} While а <> b Do Begin
If а > b Then
a := a-b
Else-
b := b-a;
ent := ent + 1;
End;
По завершении цикла переменная ent содержит искомое число. Можно заметить, что этот цикл реализует (попутно) алгоритм Евклида для нахождения наибольшего общего делителя чисел А и В.
Можно попытаться сократить временные затраты (хотя в нашем случае нет такой необходимости), используя вместо вычитания целочисленное деление:
ent := 1;
While а <> b Do
If а > b Then Begin ent := ent + (a Div b); a := a Mod b;
End.
Else Begin
ent := ent + (b Div a);
:= b Mod a;
End;
Приведенный выше алгоритм использует “жадную” стратегию, однако жадность иногда мешает достичь желаемого результата. В частности, для прямоугольника 5x6 решение не оптимально. Этот контрпример привел Г.Н. Гутман, он же предложил идею — решать задачу методом динамического программирования.
Предположим, мы уже решили задачу для всех полосок, более узких, чем наша. Тогда разбивая исходную полоску на две разными способами и складывая результаты для каждой из них, получаем набор решений, среди которых выбераем лучшее. .
Рассмотрим возможную реализацию этого алгоритма: для получения ответа на основной вопрос — каково минимальное количество квадратов в прямоугольнике размера т х п — следует сначала найти ответы на промежуточные вопросы о прямоугольниках меньшего размера:
Rmjn ~ т,1П'^Птд 4" Rm,n-h Rm,2 "Г Rm^n—2) • • •
• • Rm,п-1 + R-m,li Rl,n + Rm-1,n> -^2,п "Г Rm—2,n> • * •
• • Rm— l,n 4" -Rl,n}«
Будем искать решения с помощью таблицы (на примере 5x6 — прямоугольника). Значение таблицы в ячейке с индексами (г, j) показывает каково минимальное число квадратов для прямоугольника размера г х j. При этом значения элементов первого столбца, первой строки и главной диагонали
1 2 3 4 5 6
2 1
таблицы очевидны. 31
1
1
Для заполнения (г, j) ячейки таблицы требуется просмотреть значения элементов г-й строки с 1-го до j — 1-го и j-ro столбца с 1-го дог—1-го. (Аналогичную таблицу можно составить и на основе приведенного ранее алгоритма; тогда будет видно, что предыдущий алгоритм для каждой заполняемой ячейки проверяет или только строку, или только столбец.) После заполнения таблица будет выглядеть так:
123456
213243
331442
424153
544515
Таблица решений обладает симметрией относительно главной диагонали, что позволяет сократить число выполняемых при ее заполнении операций. В правом нижнем углу таблицы помещено искомое значение.
ВОЛК В ЛОВУШКЕ
ОТВЕТ:ОТВЕТ:Va Уа2 + №Vw — min^byVa Уа2 + №Vw — min^by(1)(1)
ОТВЕТ:
ОТВЕТ:
Va Уа2 + №
Vw — min^by
Va Уа2 + №
Vw — min^by
(1)
(1)
Необходимость. Для определенности пусть а < Ь. Допустим, что неравенство (1) неверно, т.е.
VwVwVdVdаа(2)(2)
Vw
Vw
Vd
Vd
а
а
(2)
(2)
Тогда волк уходит, двигаясь с максимальной скоростью по отрезку, перпендикулярному диагонали прямоугольника (см рисунок).
Действительно, исходя из подобия треугольников находим имеющие отношение к делу расстояния.
bbаЧ£ 2Ь »аЧ£ 2Ь »
b
b
аЧ£ 2Ь »
аЧ£ 2Ь »
Здесь с = Va2 + Ь2, d = |Vo^4-^, е = ^^"^, / =
Следовательно, волк добирается до границы поля за время
ах/а? + Ь2
w = 2bVw 1
Собака 1 способна достичь точки пересечения волком границы поля за время
. а^ь2
d- 2bVd ‘
Из неравенства (2) легко следует, что собака 1 опаздывает на перехват волка t^ > tw. Отсюда также вытекает, что остальные собаки тоже не успеют перехватить волка, если побегут по часовой стрелке. Не исключено, что в требуемую точку успевает собака 2. Однако ее одной недостаточно. Поэтому даже в этом случае перехват возможен только, если в эту точку успевает собака 3, двигаясь кратчайшим путем: сначала по короткой стороне поля и затем налево. Для этого ей требуется время
Однако из (2) с учетом неравенства Ь > а следует что t^>tW) т.е. собака 3 на перехват не успевает. Таким образом, если неравенство (1) нарушается, то волк уходит. Значит (1) — необходимое условие того, что собаки не дают волку уйти.
Достаточность. Пусть (1) выполнено. Две прямые линии, параллельные диагоналям прямоугольника и проходящие через текущую позицию волка, пересекают границу поля в четырех точках.
С приближением волка к границе как минимум две из этих четырех точек слипаются в одну. Отсюда следует, что собакам достаточно все время находиться на указанных пересечениях и волк не уйдет. Это, однако, возможно только, если скорости, с которыми перемещаются точки пересечения,
не превышают максимальной скорости собаки Уд. Справедливость данного условия как раз и гарантирует неравенство (1). Убедимся в этом.
Скорости, с которыми перемещаются точки пересечения, определяются величиной и направлением скорости волка. Очевидно, что проекция его скорости на саму перемещаемую прямую роли не играет: важна только составляющая, перпендикулярная этой прямой.
Поэтому точки пересечения движутся с максимальными скоростями, когда волк с максимальной скоростью Vw движется перпендикулярно перемещаемой прямой. Допустим, что он таким образом движется из центра поля до его края (см. второй рисунок). Тогда за одно и то же время волк и точка пересечения пунктирной линии с “верхней” границей поля перемещяются на расстояния е = • и / = ^^ соответственно. Отсюда легко находим максимально возможную
скорость перемещения указанной точки пересечения:
К =К =Va2 + Ь2
К =
К =
*wа
Легко убедиться, что при рассмотренном движении точка пересечения пунктирной линии с “правой” границей поля смещается на расстояние ^^7-^. Отсюда находим максимально возможную скорость перемещения этой точки:
Vo2 + Ь2
у = - . - -V
Для “левой” и “нижней” границ поля скорости те же. В итоге убеждаемся: неравенство (1) действительно гарантирует, что скорости, с которыми перемещаются точки пересечения, не превышают максимальной скорости собаки Уд. Это, как уже отмечалось, завершает доказательство.
КОЛЕСО
Представим сначала, что сила тяжести отсутствует. В момент отрыва капли двигаются по касательной к окружности со скоростью, равной произведению угловой скорости колеса на его радиус. В отсутствие силы тяжести капли продолжат свое движение с теми же направлением и скоростью. Рассмотрим все капли, оторвавшиеся от колеса в некоторый определенный момент времени. Все они находятся на окружности с радиусом r(t), который со временем увеличивается (см. рисунок). Радиус определяется следующим выражением:
r(t)2 = Д2 + (Vtf.
При этом уравнение окружности выглядит так:
ж2 + (1/ - Hf = r(tf.
Теперь пора вспомнить про силу тяжести. Под ее действи-
ем окружность падает вниз с ускорением^. Внесем поправки в уравнение окружности:*
ж2 + (у - Н + д^У = r(t)2.
Падая, капли окружности достигают пола (?/ = 0) в разные моменты времени. Координата х точки падения капли будет определяться выражением
ж2 = r^2 - (gt2/2 - Hf = Я2 + (Vty - ^(2 - Я)2.
Нас интересуют капли, наиболее удалившиеся от колеса вдоль оси X. Для решения этой задачи, глядя на приведенное выше уравнение, сформулируем вопрос следующим образом: капли, достигшие пола, в КАКОЙ момент времени t улетят на максимальное расстояние? Чтобы получить ответ, следует найти экстремум приведенной функции. Продифференцируем ж2 по t2 (так удобнее) и приравняем полученное выражение нулю. Выразим отсюда t2
и подставим его в исходное уравнение:
ж2 = Я2 + V4^ + W^H/g.
Искомая ширина мокрого участка равна удвоенному квадратному корню из этого выражения.
К сожалению, ни одна из команд не смогла решить задачу точно таким способом, хотя некоторые были очень близки к этому. Наиболее же удачное решение (полностью прошедшее все тесты) заключалось в переборе с достаточно мелким шагом всевозможных парабол (траекторий движения капель) и выборе из них тех, которые дают максимальную дальность. А, собственно, почему бы и нет...
Решения задач 2003 г.
ИГРЫ РАЗУМА
Ответ: емкость канала с > logaM-
Необходимость. Допустим, что цель достижима. Другими словами, существуют алгоритм кодирования информации и алгоритм управления, для которых состояние становится сколь угодно маленьким, если подождать достаточно долго. Данное свойство имеет место для всех начальных состояний к(0)| < △•
По условиям задачи последовательность управлений U = {п(0),п(1),..., ы^)} полностью определяется последовательностью сообщений Z = {^(0), z(l),..., z(j)}, переданных через канал связи к моменту t = jT. Каждый член z(i) этой последовательности может принимать 2е различных значений. Поэтому имеется только (2c)j+1 = 2^+1)с вариантов последовательности Z. Следовательно, если мы переберем все допустимые начальные состояния ж(0), нам встретится не более 2^+1>с вариантов последовательности управлений U. Это означает, что начальные состояния разобьются на N < 2^+1^с групп: в пределах одной группы последовательность управлений общая. Тогда по крайней мере в одной группе найдутся два начальных состояния, отстоящие друг от друга на расстоянии не меньше 2Д2~^+1^С. Действительно, иначе каждая группа накрывалась бы интервалом длины < 2Д2~^+1)С, не содержащим как минимум одной из своих крайних точек. Так как в совокупности группы покрывают весь отрезок [—△,△], то N < 2^+1)с упомянутых интервалов также должны покрыть этот отрезок, что очевидно невозможно.
Итак, мы убедились, что существует два начальных состо-
яния |т? — ж2| > 2Д2-^+1)с, которым соответствует одна и та же последовательность управлений U = {u(0),u(l),.^u^j^ до момента t = jT. Из этих двух состояний начинаются две траектории: ж? —> Zi(0), Ж1(1),..., Zi(j) и z2 —> ж2(0),Ж2(1),. - .^(JY Убедимся, что
(1)(1)|®i(i) - x2(i)| > гДЫ^"0^
(1)
(1)
для г = 1,2,... J. Рассуждаем по индукции. Для г = О неравенство очевидно. Допустим ,что оно верно для некоторого г < 3. Тогда
|Ж1 (г +1) — ®2^ + 1)1 = la®i(0 + Ьи^ — ажг(г) — 6и(г)| =
= |а||Ж1(г) - ж2(г)| > 2A|a|i+12^+1)c,
что доказывает индукционный переход. Итак, (1) верно для всех г = 1,2,..., 3. При i = 3 неравенство (1) принимает вид
I^O) - ®2(j)| > 22-сД|ар2^с = 22--Д (^ Y .(2)
Однако здесь каждое из состояний, а значит, и их разность можно сделать сколь угодно малыми, если взять j достаточно большим. Соответственно, член геометрической прогрессии в правой части (2) также сколь угодно мал для больших j. Значит, знаменатель этой прогрессии меньше единицы:
откуда вытекает требуемое неравенство с > log2 |а|.
Достаточность. Пусть с > log2 |а|. Требуется построить алгоритмы (системы) кодирования и управления, обеспечивающие цель управления.
Система управления, которую мы построим, будет вырабатывать не только управление и^У но и оценку A(j) текущего состояния |x(j)| < A(j). Эта оценка не имеет самостоятельного значения и нужна только для производства и^У
Заметим, что действия любой системы управления полностью определены ее алгоритмом и сообщениями, посылаемыми системой кодирования через канал связи. Это означает, что система кодирования имеет возможность продублировать действия системы управления. Более того, так как передача сообщения требует Т единиц времени, система кодирования может даже предвосхитить действия системы управления: вычислить управление u(j) и оценку A(j) на такте j — 1 (в момент t = У — 1)Т). Система кодирования, которую мы построим, будет производить такое дублирование.
Оценку будем рассчитывать по очень простому правилу. В качестве начального значения А(0) принимаем известную верхнюю границу абсолютной величины начального состояния (см. уточнение вопроса из условий задачи). На первом шаге оценку увеличиваем
△(1) = |а|А(0),
а затем последовательно уменьшаем (здесь уместно вспомнить, что с > log2 |а| и поэтому 2е > |а|)
(3)(3)△(i + 1) = Нд(0> ,= 1,2,...
(3)
(3)
За исключением г = О, пока совершенно неясно, будут ли построенные таким образом величины на самом деле оценивать состояние. После того как системы кодирования и управления будут полностью построены, мы увидим, что ответ утвердительный.
Так как в начальный момент t = 0 <=> j = О система управления не успевает получить ни одного сообщения, трудно предложить какой-либо разумный выбор управления и(0). Но поскольку какое-то управление все таки выбрать надо, возьмем для определенности и(0) = 0. Тогда
ж(1) = ая(0),
к(1)1 < |«||х(0)| < |«|Д = |а|Д(0) = Д(1),
т.е. оценка А(1), как и А(0), верна.
Рассмотрим систему кодирования, которая на каждом такте j = 0,1,... выполняет следующие действия:
делит интервал [—A(j+1), A(j+1)] на 2е подынтервалов равной длины 22-cA(j +1);
находит подынтервал, содержащий прогноз состояния на один такт вперед, который находится по формуле $U +1) = ах^ + Mj);
передает через канал связи номер этого подынтервала, предварительно закодированный в бинарной форме, т.е. в виде цепочки z(j) из с нулей и единиц, (так как число подынтервалов равно числу цепочек, такое кодирование, причем взаимно однозначное, возможно);
вычисляет следующее значение оценки A(j + 2) и, дублируя действия системы управления (см. далее), - управление u^j +1).
Рассмотрим также систему управления, которая на каждом такте j = 1,2,... выполняет следующие действия:
декодируя полученное сообщение zy — 1), узнает интервал длины 22“СДУ), содержащий текущее состояние ДзУ
находит центр хс^ этого интервала и далее относится к нему, как к оценочному (т.е., возможно, неточному, но зато известному) значению текущего состояния;
генерирует управление, которое переводит систему из оценочного состояния хс^ в нуль
«U) = -£==b);(4)
вычисляет следующее значение оценки Ду + 1).
Важное свойство предложенных алгоритмов состоит в том, что
на любом такте j величина ДУ) действительно является оценкой текущего состояния |®У)| < ДУ). *
Для j = 0,1 этот факт был установлен ранее. Допустим, что |®У)| < ДУ) для некоторого j > 1. Тогда, учитывая (4), имеем
|жУ + 1)| = |ажУ) + МЯ1 = |ажУ)-ажсУ)| = |а||жУ)-жсУ)|.
Теперь следует вспомнить, что жсУ) — это центр интервала длины 22-сДУ), содержащего состояние «У). Поэтому |«У) — жсУ)| < 2-сДУ) и, используя (3), получаем
kb + 1)1 < ^Ь) = ^3 + 1)
Таким образом рассуждая по индукции, мы установили справедливость свойства (*).
В то же время из (3) и (*) следует требуемое в условии задачи свойство: так как знаменатель геометрической прогрессии А(1), А(2),... меньше единицы, то член A(j) прогрессии, а значит и оцениваемое им состояние ®(j), становятся сколь угодно маленькими для больших j.
Решения задач 2004 г.
ИДЕНТИФИКАЦИЯ
Сообщением источника можно считать округленное среднее арифметическое сообщений приемника.
Пусть помехи — целые числа —1 и +1; интуитивно должно быть ясно, что количество сообщений, у которых мы отняли 1, не должно сильно отличаться от количества тех, к которым мы прибавили. Ведь шансы прибавить и отнять равны. Точно так же, как если бы вы бросали монетку: если бросать много, то число выпадений герба не сильно отличается от числа выпадений решки. Аналогичные рассуждения применимы и для произвольного симметричного отрезка.
Для любителей более строгих рассуждений сделаю следующее замечание. В теории вероятностей (с которой можно познакомиться, например, по книжке А.Н.Ширяев “Вероятность”. М.: Наука, 1980) этот факт носит название закона больших чисел, из которого следует, что шансы ошибиться при таком ответе на вопрос стремятся к нулю при увеличении количества передач сообщения источником. А поскольку 1024 — число очень большое по сравнению с максимальной величиной помехи — 5, то можно считать их равными нулю.
БИОТЕХНОЛОГИЯ И КИБЕРНЕТИКА
Стратегия существует тогда и только тогда, когда
4W < Xr - XL.2 — а
Докажем сначала необходимость этого условия, а потом достаточность.
Необходимость. Предположим, что существует стратегия управления, которая удерживает популяцию в требуемом коридоре для любых возмущений w(t), |w(t)| < W в ситуации, когда начальный размер популяции Xl < ж(0) < xr неизвестен. Последнее означает, что стратегия должна удерживать популяцию в требуемом интервале не только для любых возмущений, но и любых начальных состояний из этого интервала [ть,£д]. Возможно много вариантов развития событий: каждый из них определяется конкретным начальным значением ж(0) из интервала [т^, Жд] и конкретной последовательностью возмущений w(t), |w(t)| < W. В каждом конкретном варианте по ним однозначно определяются и все остальные переменные x^t^ u(t), z^t^ если конечно стратегия управления выбрана. Стратегия, которую мы сейчас рассматриваем, характеризуется тем, что при любом варианте развития событий
Xl < *^(^) — ®Ri ^ — 0, 1, 2, . . .
Теперь подумаем, как "работает11 стратегия управления. Напомним, что это алгоритм, который однозначно определяет текущее управление и^ и 11 вопрос”z(t) на основании того, что известно к моменту их "производства". В любой момент нам известны a, W1 xl,xr. Этот тривиальный факт мы не будем явно отражать в дальнейших рассуждениях,
чтобы не загромождать их. Далее воспользуемся переменной £(£), которая принимает значение 1, если ответ на заданный в момент t вопрос утвердителен, и 0 — в противном случае. Для удобства £(£) далее будем называть просто ответом. В момент производства z(0) система управления (СУ) ничего, кроме а, Ж, Жц жд, не знает, а в моменты производства и(0) и z(l) она уже знает ответ £ (0). В моменты производства и(1) и z(2) к этим сведениям добавляется ответ £(1), и т.д. Следовательно, стратегия управления работает так:
z(0) — универсальная (для данной стратегии) константа; и(0) и z(l) <- однозначно определяются по £(0);
и(1) и z(2) <- однозначно определяются по £(0), ^(1);
и^ и z(t + 1) <— однозначно определяются по £(0), £(1), . •
Таким образом, для заданной стратегии управления цепочка £(0), ^(1), ..., £(£) однозначно определяет поведение СУ до момента t, а также вопрос z(t+l). Например, если нам кто-то сообщил, что в каком то из вариантов развития событий первые четыре ответа были £(0) = 0, £(1) = 1, ^(2) = 1, £(3) = 0, то мы даже не зная, что это за вариант (т.е. не зная т(0) и w(i)), но зная стратегию управления, сможем сказать, какие применялись управления u(0), и(1), Ц2), и^З) и какие задавались вопросы z(0), z(l), z(2), z(3), z(4). Однако узнать, каким было и^ и z(5), мы уже не в состоянии.
Очевидно, что произвольно выбранная цепочка ответов ^01 ^ь ^2, • • •, ^ (любое т^ равно либо 0, либо 1), например цепочка 110010101001010010, совсем не обязательно реализу-
ется на практике £(0) = т/о, ^(1) = т/i,..., £(£) = т/t хотя бы для одного возможного варианта развития событий. Если такой вариант все же существует, цепочку ?Д), т/i, »/2, • • •, T)t назовем реализуемо^ а любой порождающий ее вариант совместимым с этой цепочкой. Аналогично значение какой- либо из участвующих в задаче переменных, например, ж^ или uty — 2), назовем — совместимым с цепочкой, если оно наблюдается для хотя бы одного совместимого варианта развития событий.
Для заданного t число реализуемых (как, впрочем, и число любых, т.е. необязательно реализуемых) цепочек конечно. А вот число всех возможных вариантов развития событий бесконечно. (Напомним, что вариант — это по существу ж(0) и последовательность возмущений w(£)). Поэтому неизбежно найдется реализуемая цепочка ответов заданной длины t, с которой совместимо бесконечно много вариантов развития событий. Тогда, скорее всего будет и бесконечно много значений х переменной x^ty совместимых с этой цепочкой. Вспомним теперь, что мы рассматриваем стратегию управления, удерживающую популяцию в требуемом коридоре независимо от варианта развития событий. Значит, все совместимые с цепочкой значения х должны принадлежать интервалу [ЖЬ,Жд].
Давайте теперь повнимательней присмотримся к множеству упомянутых значений х. Точнее, докажем, что оно обязательно содержит некоторый интервал положительной длины. Как следует из изложенного, этот интервал должен накрываться отрезком [®L)®fl] при любом t. Однако по ходу доказательства нам также станет ясно, как этот интервал меняется с течением времени t; мы увидим, что при нарушении условия, справедливость которого мы хотим установить,
длина этого интервала обязательно станет больше ширины xr — $l накрывающего его отрезка [®ь,жд]- Это противоречие в итоге и докажет верность нашего условия.
Начнем с обоснования следующего утверждения. Для удобства договоримся, что единственной цепочкой нулевой длины является пустая цепочка и что с такой цепочкой (разумеется) совместим любой вариант развития событий.
Для любого момента времени t = 0,1,2,... существует реализуемая цепочка ответов длины I, с которой совместимы, все значения х переменной ж(<) из некоторого интервала ^lW^rWY xlW < xrW- (Индекс с в честь compatible — совместимый).
Рассуждаем по индукции. При t = 0 утверждение тривиально, так как цепочка имеет нулевую длину. Значит, это пустая цепочка, с которой совместимы все состояния из интервала (хц Xr).
Теперь допустим, что доказываемое утверждение верно для некоторой длины t. Рассмотрим соответствующую цепочку ответов т/о, >71, >72, • •, >7t—1 (при t = 0 цепочка пустая) и интервал ^xcL(t\ xcR(t)) совместных с ней значений x(t\ В любом из совместных с данной цепочкой варианте развития событий задается один и тот же вопрос z^t). (Напомним, что он однозначно определен этой цепочкой. Если ^ = 0, то z(0) — универсальная константа). Всем значениям х = x(t^ удовлетворяющим паре неравенств xcL^t) < х < z^t), соответствует один и тот же ответ: Нет £(t) = 0. Аналогично всем значениям х = ж(<), удовлетворяющим паре неравенств z^t) < х < xR^t)t соответствует: Да £(£) = 1. Заметим однако, что на самом деле значений ж, удовлетворяющих первой паре неравенств, может и не быть (если z^t) < x^t)). Аналогично может не быть ж, удовлетворяющих второй паре (если
zlt) > xcR^\ Однако ясно, что хотя бы одна из этих двух пар неравенств совместна и имеет целый интервал решений; более того, — его длина не меньше половины длины отрезка tA^Y ^rWY Введем обозначение (уь^Ууп^) этого интервала, возьмем в качестве в качестве ?% связанный с ним ответ, т.е. дополним им исходную цепочку. По построению любое значение состояния х^ из интервала (уь^Уун^) совместимо с дополненной цепочкой. Вместе с тем с ней совместимо и любое значение возмущения w = w(tY |w| < W (так как оно никак не влияет на все, что происходит с популяцией и в СУ до момента t включительно), в то время как управление u(t) определено этой цепочкой однозначно. Значит, если мысленно пробежим по всем вариантам развития событий, совместимых с этой цепочкой, то увидим, что для них u^t) одно и то же, а вот ж = ж(<) пробегает по меньшей мере интервал tob^Y yn^Y в то время как w = w(t) — интервал [—W, W], причем совершенно независимо от x^tY Отсюда следует, что с этой цепочкой совместимо любое состояние ж(4 + 1), — которое можно получить в соответствии с уравнением задачи x(t + 1) = аж + a(t) + w, при фиксированном и^ и любых х € (.'yiXtY'yR^tY) и w е [—И7, И7]. Ясно, что такие состояния ж(£ + 1) образуют интервал
(ауь№ + и№ ~ w^ аУп№ + и№ + Ю,
что и требовалось показать. При этом
ж^(<+1) := ayL^t^u^-W; Жд(<4-1) := ayR^^-ult^W.
Из доказательство следует важная формула для длины △(f) интервала (®1(0,Жя(0)’ Действительно, вспомним, что длина отрезка ^y^tY UrW) не меньше половины длины этого
интервала:интервала:Уя(<) - toW >Уя(<) - toW >Д(02 'Д(02 '
интервала:
интервала:
Уя(<) - toW >
Уя(<) - toW >
Д(0
2 '
Д(0
2 '
Следовательно,
Д(( + 1) = z^t + 1) - zcL(t + 1) =
= в[»я(О - yt(t)l + 2W > ^Д(0 + 2Ж
Вместе с тем так как стратегия управления удерживает популяцию в нужном коридоре,
А(<)<®я-жь, t = 0,1,2,....
Переходим к анализу двух последних соотношений. Подставив в неравенство
△(2) > §А(1) + 2W
неравенство
д(1) > ^д(о) + ги' получим
Д(2) > (|)2 Д(0) + 2W [1+|].
Подставив полученное неравенство в
Д(3)> ^Д(2) + 2Ж
устанавливаем, что
Д(3)>@3Д(0) + 2^ 1 + ^+g)2
Продолжая аналогично, находим, что для произвольного t
Д(0 > (f)' Д(0) + 21V [1 + | + (I)2 + ■.. + (I)'"1] =
= (|)‘д(0) + 21У^ =
Так как | < 1 по условиям задачи первые два слагаемые при больших t становятся исчезающе малыми. Значит A(t) с ростом t неограниченно приближается к третьему слагаемому
—> 2W-ч—гf —> ос.
1-U)
Отсюда получаем
2Ж SCR -1 - (i)
что равносильно проверяемому условию.
Достаточность. Рассмотрим систему управления (СУ), которая в момент t производит следующие действия.
Задает вопрос: “превышает ли истинный размер ж(4) середину требуемого интервала”
и получает ответ.
На основе этого ответа строит оценку x(f) (скорее всего, неверную) этого размера, следуя достаточно естественным эвристическим соображениям. Именно СУ считает (возможно, неверно), что текущий размер лежит в требуемом интервале [а?£,, жд]. Если это на самом деле так, то на основании
полученного ответа интервал, содержащий ж(<), можно было бы уточнить:
xlW < ж^ < xr^Y
xLto :=
z(£), если получен ответ Да;
$lUY если получен ответ Нет;
xr^ :=
XR^t^ если получен ответ Да;
z(t), если получен ответ Нет.
СУ не вдаваясь в рассуждение, лежит ли x^t) в [ж^, жд] на самом деле или нет, просто вычисляет интервал [ж£,(£),жд(£)] и за оценочное значение x(t) текущего размера популяции СУ принимает его середину:
• $LW + ^^XW ■= 2
Замечание. Произвести в том же духе повторное уточнение интервала в данный момент t нельзя, так как еще один вопрос можно задать лишь в следующий момент времени.
В качестве u(t) берет управление, которое при отсутствии возмущения w(t) = 0 перевело бы за единичное время популяцию с оценочного размера х^ в середину Хо требуемого интервала [жь,жд]. Это требование выражается равенством Жо = ах^ + Ц1\ откуда управление легко определяется:
и^ = жо — ax^ty
Put t := t + 1 and go to 1.
Покажем теперь, что данный алгоритм управления удерживает популяцию в требуемом коридоре: xl < ®(t) < xr
для всех t = 0,1,2,.... Используем индукцию по t. При t — О популяция находится в этом коридоре по условиям задачи. Допустим, что она находится там в некоторый момент t, и покажем, что тогда она остается в нем и в следующий момент времени t + 1. Управление и^ выбрано так, что популяция оказалась бы в центре требуемого коридора, если бы ее размер х^ в момент t был равен оценочному ж(£), а возмущение отсутствовало бы: w(t) = 0. Однако на самом деле все это не так (точнее, не обязательно так): x(t^ ^ ж(<), w(t) ^ 0. Таким образом, скорее всего, ж(< + 1) / жд. Вместе с тем легко найти оценки для x(t + 1):
ж(£ + 1) = ах^ + и^ + w^ < аж(£) + и(^ + W < < ахн^ + м(4) + И^ = ахк(С) + [ж0 — аж(<)] + W = = х0 + а[яд(0 - ж(£)] + W.
Аналогично
x(t + 1) > ж0 + а[жь(<) — х^\ - W.
По построению х^ — середина отрезка [жь(4),жд(<)]. В свою очередь, длина этого отрезка равна половине длины отрезка [ж^жд]. Значит,
xrW - ж(<) = ж(«) - XlW = |[жд(«) - XlW\ = i[жд - XlV
Подставим эти соотношения в оценки ж(£ + 1):
ж(£ + 1) < ж0 + а[жд(4) - ж(£)] + W = ж0 + |[жд - жь] + W, x(t + 1) > ж0 - |[жд - xL\ - Ж
Теперь пришло время воспользоваться основным условием. Оно гарантирует, что W < ^^[жд — жь]. Вспомнив, что жо —
середина отрезка [жь, жд], получаем
ж(< + 1) < ж0 + Цяд - жь] + W <
< ^^ + а^ _ ^j + 2^а[Жд _ Zl] = lR) ж(< + 1) > Жо - 5 [жн - Жь] - W >
> ^^^ ~ 4^ - Zb] - ^[^Д - XL\ = XLl
что и требовалось доказать.
МЫШЕЛОВКИ
Отметим сначала, что около норы с номером 0 мышеловку поставить необходимо. С остальными поступим следующим образом. Поместим в нору с номером 0 управляемую мышь и будем ее двигать все время вдоль левой стены. Если однажды она придет в какую-нибудь норку, то в этой норе надо поставить мышеловку. Тогда мы заделаем эту нору (поставим в карту лабиринта число 1) и будем двигать мышь дальше. Когда она вернется в норку 0, тогда все закончится. Мышеловки надо поставить в тех норках, в которых она побывала. Зациклиться этот алгоритм, очевидно, не может.
Пример программы для решения задачи:
#include<stdio.h>
#include<stdlib.h>
#include<math. h>
const R=100;
int L[R] [R] ;
int Н[11] ;
int i,j;
int x,y,n;
/*
n -
0 up
right
down
left
*/
void moveXYO;
void mainO {
FILE *f;
char name[10]="INPUT.TXT"; f=fopen(name,"r");
int gh=O;
for(i=0; i<R; i++)
for(j=0; j<R; j++) { f scanf (f, "%d" ,&gh) ; L[j] [i]=gh;
}
fclose(f);
for(i=0; i<R; i++) {
L[i][0]=l; L[i][R-l]=l; L[0][i]=l; L[R-l][i]=l;
for(i=l; i<ll; i++)
H[i]=O;
Н[0]=1;
х=1; y=R-l; n=0;
L[x] [y]=0;
moveXYO;
while( !((x==l)&&(y==(R-l))) ) { moveXYO;
if(y==l) if(x<20) if(x%2==l)
H[int((x-l)/2)+l]=l; }
char outname [11] ="0UTPUT. TXT" ;
f=fopen(outname,"w");
for(i=0; i<ll; i++)
fprintf(f,"%d ",H[i]); fclose(f);
}
void moveXYO { switch(n) { case 0: { //up
if( L[x-l][y]==0 ){ x—; n=3;
} else if( L[x][у-1]==0 ) { у—; n=0;
} else if( L[x+l][y]==0 ) {
х++; п=1;
} else if( L[x][y+l]==O ) { у++; n=2;
} break;
case 1: { //right if( L[x] [y-l]==O ) {
У—; n=0;
} else if( L[x+1] [y]==0 ) { x++; n=l;
} else if( L[x][y+1]==0 ) { y++; n=2;
} else if( L[x-1] [y]==0 ) { X—; n=3;
break;
case 2: { //down
if( L[x+l][y]==0 ) { x++; n=l;
} else if( L[x][y+l]==0 ) { y++; n=2;
} else if( L[x-l][y]==0 ) { x—; n=3;
} else if( L[x][y-l]==0 ) { y—; n=0;
} break;
case 3: { //left
if( L[x] [у+1]==0 ) { y++; n=2;
} else if( L[x-l][y]==O ) { x—; n=3;
} else if( L[x][y-l]==O ) { У—; n=0;
} else if ( L[x+1][y]==0 ) { x++; n=l;
break;
ЕСТЬ ЛИ ЖИЗНЬ НА МАРСЕ?
Задача решается по следующей схеме. Показывается, что наибольшей площадью при фиксированном числе углов и фиксированной длине обладает фигура, являющаяся половинкой правильного многогранника. А затем производится перебор по всему возможному количеству поворотов.
Докажем, что среди всех треугольников с одинаковым основанием и одинаковым периметром максимальной площадью обладает равнобедренный. Это так, поскольку у него наибольшая высота. В этом легко убедиться, построив эллипс на основании треугольника, фокусы — границы основания, а вершина на эллипсе. Сумма расстояний до фокусов — одинаковая, а максимальная высота — малый радиус. Теперь, рас- смотривая два соседних отрезка пути, видим, что если они неодинаковы, мы можем увеличить исследованную площадь,
не затрачивая дополнительной энергии, просто сделав эти отрезки равными. Таким образом, любую траекторию, у которой есть неравные кусочки пути, можно улучшить. Невозможно улучшить только, если все звенья пути равны. Теперь, если мы отобразим путь симметрично относительно береговой линии, то получим замкнутую фигуру, площадь которой надо максимизировать: при этом все стороны у нее равны. Значит, это должен быть правильный многогранник.
Все эти рассуждения и приводят нас к формулам: максимальная возможная длина X пройденного пути при п поворотах вычисляется из уравнения: XEm + nEr = Et, а площадь — по формуле 8 = X2cty(360/4/n)/(2n).
Теперь осталось только взять максимум по п от 1 до N, это и будет правильный ответ. Но надо предварительно проверить корректность данных. Если у марсохода не хватит энергии на два поворота, выводим 0.
ЖАЖДА БУБЛОВ
Для каждого брокера допустимые значения стоимости одного бубла (ж) и стоимости сделки (у) лежат в некоторой полоске (области, ограниченной двумя параллельными прямыми). Требуется найти точку пересечения всех полосок. Для этого берется некоторая, произвольная начальная точка (например, (ж, у) = (10,10)). Далее эта точка проецируется на прямую, являющуюся центром первой полоски; затем новая точка проецируется на соответствующую прямую второй полоски и т.д. Поскольку полосок довольно много, то и приближение будет достаточно хорошим.
Пример программы для решения задачи:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main() {
FILE *f=fopen(“INPUT.TXT",“r");
float a[1000][3];
int k;
for(k=0;k<1000;k++) {
fscanf(f,"%f '/.f %f“,&a[k][0],&a[k][1],&a[k][2]);
a[k] [0]=~a[k] [0] ;
a[k] [l]=-a[k] [1] ;
fclose(f);
float x=10.;
float y=10.;
float aa,b,bb;
for(k=0;k<1000;k++) {
аа=а[к] [2];
b=(a[k] [О]+а[к] [1])/2.;
bb=x+aa*y;
у= (aa*bb+b.) / (1+аа*аа);
х=ЪЪ-аа*у;
f=fopen("OUTPUT.TXT","w"); fprintf(f,"%f %f", x, y) ;
fclose(f);
ДИАТЛОН
В задаче требуется найти точку на прямой, из которой отрезок мишени виден под максимальным углом. Через границы забора и через точку стрельбы проведем окружность. Предположим, что дорога, по которой бежит диатлонист, пересекает окружность. Тогда угол, под которым видна мишень, в любой точке отрезка дороги, лежащей внутри окружности, будет больше, чем в точке стрельбы. Следовательно, дорога должна касаться окружности. А тогда расстояние с, которое должен пробежать диатлонист, равняется корню из а(а + Ь).
Пример программы для решения задачи:
#include<stdio.h>
#include<stdlib.h>
#include<math. h>
void main() {
FILE *f=fopen("INPUT.TXT","r"); float a,b;
f scanf(f,"Xf %f",&a,&b);
fclose(f) ;
f=fopen("OUTPUT.TXT","w");
fprintf (f,"%. 3f ", sqrt (b* (a+b) ) ); fclose(f);}
Рещения задач 2005 г.
НАСОСЫ, СОСУДЫ, ГОРЕЛКИ И ГЕЛИЙ
Рассмотрим одну собранную установку с закаченным в нее гелием. Воспользуемся уравнением Клапейрона- Менделеева для определения количества газа в установке:
PV = vRT,
здесь Р — давление в установке; V — объем сосуда; Т — температура, создаваемая горелкой; R — универсальная газовая постоянная, и — количество идеального газа (гелия), находящегося в установке. Масса гелия М равна его количеству, умноженному на его молярную массу:
М = v * 0.004кг/молль.
Тогда максимальная масса гелия, которую можно закачать в установку, равна:
М = 0.004 *М = 0.004 *PmaxV RTmtnPmaxV RTmtn
М = 0.004 *
М = 0.004 *
PmaxV RTmtn
PmaxV RTmtn
где Ртах — максимальное давление, a Ттт — минимальная температура, на которые рассчитана установка. Следовательно, массивами Pmin и Ттах можно пренебречь — это избыточные данные. Тогда искомая масса гелия равна
ММ0.0040.00410001000= max—— R= max—— R£fc=l£fc=lPkVkTk ’PkVkTk ’
М
М
0.004
0.004
1000
1000
= max—— R
= max—— R
£fc=l
£fc=l
PkVkTk ’
PkVkTk ’
где максимум берется по всем возможным перестановкам массивов {Pfc}^ = Р^, №}^ = Т^, {Vfc}^ = V. Ока. зывается, что максимум достигается когда Ртах и V упорядочены по возрастанию, a Tmin — по убыванию.
Пример программы для решения задачи:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float V[1000];
float mini[1000];
float maxT[1000] ;
float minP[1000];
float maxP[1000] ;
ReadData(FILE *f){ int k;
for(k=0;k<1000;k++)fscanf(f,"%f",&V[k]);
f or (k=0;k<1000; k++)f scanf (f, "*/,f11, feminT [k] ) ; for(k=0;k<1000;k++)fscanf (f, "%f " ,&maxT[k] ) ; for(k=O;k<1000;k++)fscanf(f,"%f",&minP[k]); for(k=0;k<1000;k++)fscanf (f, *%f11,femaxP[k] ) ; return 0;};
Swap(float &a, float &b){
float buf;
buf=a;
a=b;
b=buf;
return 0;};
SolveIt(FILE *f){
//Sort int n,k;
for(n=0;n<1000;n++)
for(k=0;k<(999-n);k++){
if(V[k]<V[k+1])Swap(V[к],V[k+1]);
if(maxP[k]<maxP[k+1])Swap(maxP[k],maxP[k+1]);
if (minT[k] >minT[k+l] )Swap(minT[k] ,minT[k+l] ) ;
float Result=O;
f or(n=0;n<1000;n++)
Result+=V[n]*maxP[n]/minT[n]*0.004/8.314;
fprintf (f, "7.. 3f " .Result) ;
return 0;};
main О {
char* file_write="OUTPUT.TXT";
char* file_read="INPUT.TXT";
FILE *f;
f=fopen(f ile_read, !'r");
ReadData(f);
fclose(f);
f=fopen(file„write,"w");
Solvelt(f);
fclose(f);
return 0;};
ПОКОРЕНИЕ АМАЛЬТЕИ
Эта задача на перебор. Надо просто перебрать все возможные пути: все последовательности из 7 точек. Число 7! не очень большое, поэтому программа уложится в отведенное ей время.
Пример программы для решения задачи:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float x[7];
float у [7] ;
int num[7];
ReadData(FILE *f){
for(int k=0;k<7;k++)fscanf(f,"%f %f",&x[k],&y[k]);
return 0;};
float Length(float xl, float yl, float x2, float y2){ return sqrt((x2-xl)*(x2-xl)+(y2-yl)*(y2-yl));};
SolveIt(FILE *f){
int k;
float Result=100*100*100*100*100*100*100;
float R;
for(int k0=0;k0<7;k0++)
{num[0]=k0;
for(int kl=0;kl<7;kl++)
{if(kl!=k0){num[l]=kl;
for(int k2=0;k2<7;k2++)
{if((k2»=kl)&(k2!=k0)){num[2]=k2;
for(int кЗ=0;кЗ<7;кЗ++)
{if((кЗ!=k2)&(k3!=kl)&(k3!=k0)){num[3]=k3;
for(int k4=0;k4<7;k4++)
{if((k4!=k3)&(k4!=k2)&(k4!=kl)fe(k4!=kO)){num[4]=k4;
for(int k5=0;k5<7;k5++)
{if((k5!=k4)&(k5!=k3)&(k5!=k2)&(k5!=kl)&(k5!=k0))
{num[5]=k5;
f6r(int кб=О;кб<7;кб++)
{if((кб!=к5)&(кб!=к4)&(кб!=кЗ)&(кб•=к2)&(кб!=к!)
&(кб!=кО)){num[6] =кб;
R=Length(O., 0., х[num[0] ] , у[num[0] ] );
for(к=0;к<6;к++)R+=Length(х[num[к] ] , у[num[к]], х [num[к+1]],у[num[к+1]]);
if(Result>R)Result=R;
};};};};};};};};};};};};};
fprintf(f,"%f".Result);
return 0;};
main(){
FILE *f;
f=fopen("INPUT.TXT","r");
ReadData(f);
fclose(f);
f=fopen("OUTPUT.TXT","w");
Solvelt(f);
fclose(f);
};
return 0;};
ПРЕВЫШЕНИЕ СКОРОСТИ
Милиционеры догонят нарушителей в тот момент времени, когда их машины окажутся на одинаковом расстоянии от поста ДПС; следовательно, нужно решить уравнение 55(A + t) = 2£. Поскольку явно это уравнение не решается, то предлагается воспользоваться каким-нибудь численным методом. Самое простое — это перебирать все t, начиная с t = О и с шагом, например, 0.001, пока (55(А +t) — 2£) не станет меньше 0.01.
Пример программы для решения задачи:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float a;
ReadData(FILE *f){fscanf(f,"%f",&a);return 0;};
SoIveIt(FILE *f){float t=9.;
while(((a+t)*55)>exp(t*log(2))){t+=0.001;};
fprintf(f,"X.3f",t);return 0;};
main(){
FILE *f;
f=fopen("INPUT.TXT","r ");
ReadData(f);
fclose(f);
f=fopen("OUTPUT.TXT","w");
Solvelt(f);
fclose(f);
return 0;};
БРОНЕПОЕЗД
Наиболее* выгодной для выстрела является позиция 1 шерифа, когда бандит находится в точке 2, а пуля летит по кратчайшему пути и попадает в бандита в точке 3. Удобнее рассматривать движение в системе отсчета связанной с поездом. Пройденные пути бандита и пули до точки 3 записываются: Z23 = 2u(t — т); 3L = vt, где t — время полета пули, т — время реакции ковбоя. Из рисунка видно, что Z23 — ^Ltg1 а = Тогда т = |^ — —.
2v
Глава IV.
Кибернетика
Что такое управление?
А. Л. Фрадков
С проблемами управления мы сталкиваемся в повседневной жизни: сидя за рулем велосипеда или автомобиля, пытаясь регулировать температуру воды в душе или уговаривая утром кого-нибудь из домашних принести в постель кофе. Независимо от результата каждая задача управления включает четыре компонента:
Управляемую систему (или как говорят специалисты, объект управления) — то, чем мы хотим управлять.
Цели управления — то, чего мы хотим достичь при помощи управления, т.е. желаемое поведение объекта управления.
Список измеряемых переменных (или выходов) — то, что мы можем измерять.
Список управляющих переменных (или входов) — то, что мы можем менять для того, чтобы воздействовать на объект управления.
Еще один важный компонент — регулятор — устройство, вырабатывающее входные величины, необходимые для достижения заданной цели. Однако этот пятый элемент не присутствует на стадии постановки проблемы управления; он появляется после «того, как теоретическое решение найдено. Под решением проблемы управления (проблемы синтеза управления) будем понимать нахождение закона управления (алгоритма управления), обеспечивающего достижение цели. Как только искомый закон найден, он может быть использован для вычисления управляющих входов по измеренным значениям выходов объекта управления. Система, состоящая из объекта и регулятора, называется системой управления, или замкнутой системой управления.
Даже очень простые правила могут дать решение задачи управления, если она достаточно проста. Однако в более сложных случаях эвристики не работают и для управления необходимо иметь математическую модель объекта управления.
Модели объекта управления
Еще Р. Декарт в XVII в. осознал, что одна и та же реальная физическая система может иметь много математических
моделей. Эту идею можно проиллюстрировать следующим примером..
Пример. Модели водопроводного крана. Обычно для управления выбирают как можно более простую модель объекта управления. Рассмотрим, например, систему, в которой входом является угловое положение крана с горячей водой, а выходом — температура вытекающей из крана веды. Назовем эту систему “кран”. Пусть u^t) - угловое положение крана в момент времени t, а у^ — температура воды. Когда отклонение входного угла и^ от некоторого базового значения й мало, мы можем предположить что соответствующее отклонение y^t) от соответствующего равновесного значения у пропорционально величине u(f) — й и составить уравнение
у№ ~У = №ОТ -й),(1)
где Р — постоянный коэффициент. Уравнение (1) и есть в данном случае простейшая модель объекта управления “кран”. Ее можно переписать еще и так:
з№ = a-VPW)-u\(2)
где а = у — Эй.,
Модели (1) и (2) принадлежат к классу линейных статических (безынерционных) моделей. Действительно, в каждый момент времени t значение выхода y(t) зависит от значения входа u^ty измеренного в тот же момент t. В этом уже присутствует идеализация: на самом деле материальная система всегда имеет некоторую инерцию (задержку, память), поскольку ее состояние не может измениться мгновенно. В более точных моделях текущее значение выхода может зависеть от значений входов и выходов (а возможно, и их произ-
водных) в прошлые моменты времени. Такие более сложные модели называются динамическими моделями.
В случае крана учет того, что температура потока после смешения не может измениться мгновенно с изменением скорости движения (расхода) составляющих потока, приводит к модели в виде дифференциального уравнения первого порядка
T^+Wha + N),(3)
at
где Т > 0 - постоянная времени, характеризующая инерционность объекта. Далее, если кусок трубы между краном и смесителем достаточно длинный, то следует учесть запаздывание
T^ + y(t) = a + ^«(t-r),(4)
где т > 0 - время задержки.
Наконец, если мы хотим, чтобы модель работала не только в области малых отклонений от равновесия, необходимо учесть ее нелинейность. В соответствии с законами теплопередачи нелинейная статическая модель имеет вид
у^=a^PfluW),(5)
,, чkiuyi + k2u2y2
=кщ + к2и2 -(6)
где у 1^ y2 - температуры горячей и холодной воды; куи>к2и2 - расходы горячей и холодной воды; к^к^- масштабные коэффициенты.
Цели управления
После построения моделей объекта управления мы переходим к следующему компоненту задачи: цеди управления. Для классической теории управления характерны две основных цели: регулирование и слеэюение.
Цель 1: Регулирование. Регулирование ^стабилизация, позиционирование) понимается как приведение вектора переменных состояния объекта x(t) к некоторому равновесию х*
Иногда имеет значение регулирование не всех переменных состояния, а только некоторых выходных переменных yit). Хотя время, за которое цель достигается, на практике существенно, определить его теоретически обычно весьма затруднительно. Поэтому часто от времени достижения цели при постановке задачи абстрагируются и задают идеализированную формальную цель управления типа 1 в виде предельного соотношения
lim x(t) — х*(7)
I—кю
ИЛИ lim у it) = у*.(8)
t—>оо
Иногда используют более реалистические приближенные соотношения, например
илиилиlim^oola:^) - ж*| < А,lim^oola:^) - ж*| < А,Km|y(t)-y.| < А, t—>ооKm|y(t)-y.| < А, t—>оо(9)(Ю)(9)(Ю)
или
или
lim^oola:^) - ж*| < А,
lim^oola:^) - ж*| < А,
Km|y(t)-y.| < А, t—>оо
Km|y(t)-y.| < А, t—>оо
(9)
(Ю)
(9)
(Ю)
где limt_>oo/(t) означает верхний предел — наибольший из пределов подпоследовательностей fit к) при t^ —> оо; А - параметр допустимой погрешности.
Цель 2: Слежение. Термин “слежение” означает приведение вектора переменных состояния х^ к эгселаемой траектории ж*(<), т.е.
lim [®(t) — ж*(<)1 = 0, (11) t—>оо
или приведение выхода y(t) к желаемой функции времени y.(t), т.е.
Um|y(t)-y.(t)] = 0. (12)
t—>оо
Отметим, что цели 1 и 2 могут быть выполнены и без воздействия управления, если желаемое равновесие или соответственно желаемая траектория системы обладает свойством устойчивости - малые начальные отклонения от равновесия (от желаемой траектории) остаются малыми во все моменты времени. Стабилизировать и без того устойчивое движение нет необходимости, но в этом случае могут потребоваться более тонкие цели, например, приближение к равновесию за заданное время.
В последние годы новые задачи управления сложным, в том числе колебательным, движением привело к необходимости рассматривать новые классы целей управления. Мы кратко остановимся на двух из них: синхронизация и модификация аттракторов.
Цель 3: Синхронизация. Под синхронизацией будем понимать совпадение или сближение переменных состояния двух или нескольких систем или согласованное изменение некоторых количественных характеристик систем. Задача синхронизации отличается от задачи управления с эталонной моделью, поскольку в ней допускается совпадение различных переменных, взятых в различные моменты времени. Временные сдвиги могут быть либо постоянными, либо стремиться
к постоянным (асимптотические фазы). Кроме того, во многих задачах синхронизации связи между системами являются двусторонними (двунаправленными). Это значит, что предельный режим в системе (синхронное решение) заранее не известен.
Еще X. Гюйгенс в XVII в. обнаружил, что явление синхронизации может возникать в системах без управления (саг мосинхронизация). Самосинхронизация хорошо изучена и применяется в вибрационной механике, связи и энергетике [2, 3, 4]. Задачи управляемой синхронизации стали систематически изучаться лишь недавно [5, 6, 7], хотя отдельные работы появлялись и ранее [8]. Общее понимание задач самосинхронизации и управляемой синхронизации оформилось в работах [9, 10].
Цель 4: Модификация предельных множеств систем
Этот класс целей включает такие частные виды целей, как
изменение типа равновесия (например, преобразование неустойчивого положения равновесия в устойчивое или наоборот);
изменение вида предельного множества (например, преобразование предельного цикла в хаотический аттрактор или наоборот, изменение фрактальной размерности предельного множества и т.д.);
изменение положения и типа точки бифуркации в пространстве параметров системы;
создание (генерация) колебаний с заданными свойствами (например, возбуждение колебаний с заданной частотой, амплитудой, энергией и т.д.).
Кроме основной цели управления могут быть заданы дополнительные цели или ограничения. Например, требуется обеспечить достижение цели при малой мощности управления или малых затратах на управление.
“Наивное” управление
Предположим теперь, что задача управления поставлена (формализована). Как ее решать? На первый взгляд кажется, что при простой модели объекта и решение должно быть простым. Иногда это действительно так, но могут возникнуть и сложности.
Рассмотрим, например, объект, описываемый дифференциальным уравнением первого порядка (3). Для удобства перепишем уравнение объекта в форме, разрешенной относительно производной выхода (так называемой форме Коши):
^^^ = ау + Ъи + Оо, (13)
где постоянные коэффициенты а, Ь, ад зависят от параметров (3): а = —1/Т, Ь = ^/T^oq — а)Т. Заметим, что в (13) нам не нужно предполагать, что Т > 0, т.е. уравнение (13) может описывать и системы с неустойчивой (а > 0) или нейтрально устойчивой (а = 0) собственной динамикой.
Пусть цель управления — регулирование выхода у^ к желаемому значению у*. Напрашивается следующий очевидный способ решения задачи: определить положение равновесия у = —а^/а — buja системы (3) при постоянном входе и^ = а, а затем выбрать значение й так, чтобы выполня-
лось равенство у = у*, т.е. выбрать u(t) = и*, где
и* = -(ау* + ао)/Ь.(14)
Тогда цель управления y(f) = у* будет выполнена для всех t > 0 при условии, что она выполнена в начальный момент времени t = 0, т.е. если у(0) = у*. Кроме того, цель будет достигаться асимптотически, в пределе при t —> оо для любых начальных условий 3/(0), если только уравнение объекта (13) асимптотически устойчиво (а < 0). Задача слежения за заданной выходной функцией у*^) может быть решена аналогично, т.е. простой подстановкой y*(t) в (13) и разрешением (13) относительно u*(ty
у at/
Например, чтобы заставить систему (13) колебаться гармонически, можно выбрать 3/*(t) = A-VB sin cut, а затем приложить к системе управление
iz*(t) = (Bw cos cut — a A — aB sin cut — qq) /6.
Однако этот простой подход к решению задачи имеет ряд недостатков.
Если объект управления неустойчив, то постоянный вход (14) оставит его неустойчивым и, значит, даже небольшая погрешность выбора начальных условий приведет к неограниченному росту ошибки и самой выходной переменной.
Пусть объект (3) устойчив, но его параметры известны неточно (т.е. используемые для расчета регулятора
значения а, 6 отличаются от истинных). Тогда ошибка вычисления и* может оказаться значительной и желаемая цель достигнута не будет.
Внезапные изменения значений параметров из-за изменения внешних условий приводят к необратимому нарушению цели.
Обратная связь
Многолетний опыт специалистов по автоматизации показал, что значительно более эффективные решения могут быть получены на основе принципа обратной связи., т.е. применением алгоритмов управления, использующих доступные измерения j/(s), О < s < t для вычисления u(t\ Арсенал способов выбора обратной связи весьма широк.
Самый простой и понятный - пропорциональный закон обратной связи:
iz(t) = K(y(t) -^).(16)
Часто используется релейный (знаковый^закон обратной связи:
u(t) = Ksign(y(t) - у*).(17)
В обоих случаях коэффициент обратной связи К — параметр регулятора. Легко видеть, что при b > 0 выбор К < 0 (отрицательная обратная связь) в (16) или (17) позволяет превратить неустойчивый объект (13) (с а > 0) в устойчивый. Однако при этом может возникнуть установившаяся предельная ошибка Coo = limf_>oo[j/(t) —у*\ = Уоо—у*. Действительно, равновесие замкнутой системы (13), (16) асимптотически устойчиво, если а + ЬК < 0; при этом все решения стремятся к
величине Уоо = У* — (оу* + оо)/(а + ЬК\ а предельная ошибка равна воо = — (ау* 4- Оо)/(а + ЪК^ т.е. становится меньше, если коэффициент К возрастает. Для полного исключения установившейся ошибки можно, например, ввести поправку (смещение)
и^ = -(а^ + а^/Ъ + К^у^ - у^, (18)
Однако значения поправочных коэффициентов зависят от параметров объекта, и если они известны неточно, то такой способ может привести к дополнительным ошибкам.
Более традиционный способ состоит в том, чтобы ввести интегральную обратную связь:
«W = Kt(y(t) - у») + К2 [ (x/(s) - y^ds. (19) Jo
Пропорционально-интегральные (ПИ) регуляторы (19) широко применяются, поскольку они обеспечивают приемлемые динамические свойства замкнутой системы и не требуют для расчета полной информации о параметрах объекта. Однако если желаемый режим зависит от времени, у* = y*^tY т.е. система должна решать задачу слежения, то установившаяся ошибка не исчезнет. Можно показать, что e^ пропорциональна скорости изменения у*№ и также зависит от параметров объекта.
Заметим, что при а = «о — 0 система имеет нулевую установившуюся ошибку для всех у* и К, таких что ЪК < 0. Таким образом, в этом случае любое желаемое значение выхода у* может быть достигнуто при помощи обратной связи (16) со сколь угодно малым К, что означает ( при ограниченных начальных условиях) сколь угодно малую управляющую силу.
Описанный простой пример демонстрирует возможности обратной связи: она способна улучшить как устойчивость, так и точность замкнутой системы, но неопределенность и нестационарность условий работы препятствуют дальнейшему повышению ее качества.
На качество систем управления влияют и другие факторы, среди которых наиболее важными являются следующие:
— нелинейность,
— неполнота измерений,
— неполнота и ограничения на управления.
Неполнота измерений означает, что либо не все переменные состояния объекта доступны для измерения, либо уровень помех измерений слишком высок. Неполнота управления означает недостаточность ресурса управления для достижения цели, например, что число управлений меньше числа регулируемых переменных, или имеются ограничения на величину управлений.
Тем не менее современная теория нелинейного и адаптивного управления располагает достаточным числом методов, позволяющих во многих случаях преодолеть вышеперечисленные трудности. Рассмотрим некоторые из них.
Неопределенность
Проиллюстрируем основные идеи нелинейного и адаптивного управления на примерах. Начнем с методов адаптивного управления, служащих для преодоления неопределенности параметров объекта и внешних воздействий. Как было
показано выше, неточная информация о параметрах может существенно ухудшить качество системы. Если это не так, то система называется робастной. Однако если диапазон возможных значений параметров достаточно широк, то построение робастных систем затруднительно. В подобных случаях можно пытаться построить адаптивный регулятор.
Предположим опять, что объект описывается линейным дифференциальным уравнением 1-го порядка (13) и рассматривается задача регулирования:
lim у^ = у*.(20)
t—>оо
Как было сказано ранее, закон управления (18) способен обеспечить достижение цели (20), если точные значения параметров а, 6, По известны. Чтобы построить регулятор, хорошо работающий для произвольных значений параметров объекта, можно попытаться подстраивать параметры регулятора (18) по текущим результатам измерений. Для этого представим закон (18) в форме
ЦО = €12/* + & + €з(2/ - У*),(21)
где $i = —а/Ь, $2 = —Оо/Ь, £з = К. После этого заменим постоянные коэффициенты &, t = 1,2,3 на настраиваемые:
ЦО = бх^У* + е2^ + eaWyW ~ У*)^(22)
где 0,,г = 1,2,3 - настраиваемые параметры. Теперь нужно выбрать правило настройки величин O^t^ обеспечивающее достижение цели (20) для произвольных значений а, Ъ.
Воспользуемся так называемым методом скоростного градиента (подробнее см. [11, 12]). Для синтеза алгоритма
настройки по методу скоростного градиента переформулируем цель (20) следующим образом: '
Inn Q(y(f)) = 0, (23)
где Q^ — (у ~ Х/*)2/2 — так называемая целевая функция. Теперь вычислим производную Q = dQ/dt — скорость изменения QtoW) вдоль траекторий системы (12), (22) с фиксированными 6^ г = 1,2,3. Очевидно,
Q = to™ у*)у = to- y*)toy + ^iy* + м2 + ьо^у - у») + «о)- После этого вычислим частные производные dQ/dG^ составим из них вектор скоростного градиента VyQ = col^Q/ОД где G = со1(01,02,0з), “col” — символ вектора-столбца, и запишем алгоритм скоростного градиента
^ = -^У-У*)У*^
^ = -7(У-У.), (24) at
где 7 > 0 - коэффициент усиления. Алгоритм (24) будет изменять вектор 0(f) в направлении убывания Q1 что со временем, возможно, повлечет (при достижении неравенства Q < 0 для всех у ^ 0) убывание исходной целевой функции Qto^Y
Из известных результатов [11, 12] следует, что цель (23) в замкнутой системе будет достигаться для всех начальных условий при b > 0. То же самое будет верно и при b < 0, если изменить знак коэффициента 7 > 0 на противоположный. Таким образом, для решения задачи при помощи регулятора (22), (23) достаточно, чтобы был известен знак коэффициента Ь.
Нелинейность
Иногда алгоритмы управления нелинейными системами можно построить так же, как и в случае линейных систем. Пусть, например, в модель объекта управления (12) добавлен нелинейный член sin у следующим образом:
(25)(25)У = ау + ао + dsiny + 6и,
(25)
(25)
где а, ао, d, b — неизвестные постоянные параметры. Легко увидеть, что если систему замкнуть линейной обратной связью, то в ней может возникнуть несколько положений равновесия, причем некоторые из них могут оказаться неустойчивыми и находиться далеко от желаемых режимов. Более естественным подходом представляется введение соответствующего синусоидального члена в закон управления:
и($ = бх^у* + в2^ + 03 sin у + 04(О(з/(О -y*Y (26)
d0idtd02dtd03dtd6^dtd0idtd02dtd03dtd6^dtТогда алгоритм настройки параметров может быть выбран аналогично алгоритму (24):
d0idtd02dtd03dtd6^dt
d0idtd02dtd03dtd6^dt
(27)(27)-l^y-y^y^
(27)
(27)
т<(з/ — 3/*),
-7(3/-3/»)siny,
7(3/ - У*?-
Во многих случаях нелинейность увеличивает сложность поведения объекта, но не приводит к увеличению сложности синтеза алгоритма управления. Однако нелинейность может создать проблемы при попытке учесть дополнительные
ограничения, например требование малости управления. Для иллюстрации рассмотрим задачу о раскачивании маятника, являющегося классическим примером нелинейной динамической управляемой системы.
Пример. Маятник Капицы
В 1940-х годах академик, будущий Нобелевский лауреат по физике П.Л. Капица провел эксперимент, демонстрирующий, что верхнее, неустойчивое положение равновесия маятника становится устойчивым, если ось подвеса маятника вибрирует в вертикальном направлении с достаточно большой частотой |2, 13]. Этот эксперимент был объяснен на основе метода усреднения и положил начало новому разделу механики: вибрационной механике [2]. Аналогичные идеи легли и в основу соответствующего раздела теории управления: вибрационного регулирования [14].
Математическая модель маятника Капицы имеет вид
(28)(28)(Рф^) дф(Д 2 • l •
(28)
(28)
—7^— + е—ТГ" + Wo Sin ^ = О «81Пф, dtz ‘ at
где ф = ф^ - угол отклонения маятника от нижнего вертикального положения; и = и^ - вертикальное ускорение оси подвеса, являющееся управляющим воздействием; wo - параметр свободного движения маятника (собственная частота малых колебаний); q > 0 — коэффициент трения; b > 0 - масштабный коэффициент. П.Л.Капица рассматривал гармоническое перемещение оси подвеса с частотой ш и амплитудой А при котором и^ имеет вид
u^ = Aw2sinwi,u^ = Aw2sinwi,(29)(29)
u^ = Aw2sinwi,
u^ = Aw2sinwi,
(29)
(29)
и экспериментально обнаружил стабилизацию маятника вблизи верхнего, неустойчивого равновесия. Многочисленные теоретические исследования этого явления (проводившиеся как до, так и после экспериментов П.Л.Капицы) [2,15] показывают, что стабилизация неустойчивого равновесия наступает при достаточно большом и, т.е. если амплитуда входного воздействия в (28) достаточно велика [2,13]. При этом перемещение точки подвеса может оставаться малым, что усиливает парадоксальность эффекта. Таким образом, стабилизация неустойчивого равновесия наступает при высокочастотном гармоническом воздействии со значительной амплитудой.
Поставим вопрос: можно ли добиться аналогичного поведения маятника Капицы при меньшей амплитуде и^, если в законе вибрации оси подвеса используется обратная связь?
Традиционный для теории автоматического управления подход, основанный на линеаризации модели объекта, в данном случае не проходит. Действительно, рассмотрим модель объекта, линеаризованную вблизи положения равновесия ip = О
где wo = ^^дЩ Ь = Ч^тРу Пусть q = 0. Задавая “резонансный” гармонический входной сигнал
и^ = 7sinwo< (31)
и решая полученное дифференциальное уравнение, мы убеждаемся в существовании у системы (30), (31) неограниченного решения tp^t) = —(7t/2wo) cos wot. Таким образом, энергию линеаризованного маятника (30) можно сделать сколь угодно
большой, даже при сколь угодно малой амплитуде входного воздействия 7. Однако это не так, если гармонический сигнал (31) действует на исходную нелинейную модель (28), поскольку частота свободных колебаний системы (28) зависит от их амплитуды! Из-за нелинейности модели объекта и зависимости частоты колебаний от их амплитуды выбор w = wo приводит к сложным, нерегулярным колебаниям — так называемый нелинейный резонанс. Кроме того, линеаризация дает хорошее приближение лишь вблизи положения равновесия или некоторой траектории, а нас интересует глобальное решение, работающее во всем пространстве состояний маятника.
Поставим цель управления:
lira HU) = Н*,(32)
t—>оо
где
Н = ^"^ + тдЦ1 — cos у>)(33)
— полная энергия маятника, ф = ^^ . Цель (32) несколько отличается от традиционных для теории управления целей — регулирования и слежения. Скорее, она выглядит как цель обезьянки, раскачивающейся на лиане, чтобы перепрыгнуть с дерева на дерево. Близкие задачи возникают при запуске некоторых вибрационных установок, в маятниковых часах и Т.Д.
'Здравый смысл подсказывает, что раскачивание требует значительно меньше усилий, чем удержание маятника (или руки робота) в некоторой фиксированной позиции. Так как же помочь обезьянке решить задачу?
Обратимся к методу скоростного градиента, задав в качестве целевой функции величину Q = (Н — Н*^,^ - отклоне-
ние полной энергии маятника от некоторого желаемого значения Н*. Вычисляя скорость изменения функции Q вдоль траекторий системы (28) с фиксированным и, а затем градиент (частную производную)от скорости по управлению, мы придем к простым алгоритмам
и = — 7(Н — Н^фвтср,(34)
и = —7 sign [(Я — Я*)у>8ту>].(35)
Выберем в качестве желаемого уровня энергии энергию маятника в верхнем равновесии: Н* = 2Ц). Можно показать [7,11|, что в системе достигается уровень энергии не менее чем
и, следовательно, уровень Н* = 2о>о будет обеспечен при 7 > 2^0- В частности, при g = О стабилизация поверхности уровня энергии Н = Н* достигается при сколь угодно малой амплитуде управления 7. При малом демпфировании р амплитуда управления 7 также может быть выбрана малой.
Достижение требуемого уровня энергии еще не означает стабилизации равновесия, лежащего на этом уровне. Однако в работе [16| было показано, что если р = 0, то несколько модифицированный алгоритм (35) при Н* = 2о>о обеспечивает сходимость Я(у>(4), <£(t)) —> 2wq при t —> 00 за конечное время при почти всех начальных условиях, а сходимость ^pl^i tp(t)) —> (тг,О) имеет место при любых начальных условиях. При этом величина 7 > 0 может быть сколь угодно малой.
Дополнительные трудности могут возникнуть из-за неполноты или неточности измерений (например, если недоступна измерению угловая скорость ф^) или из-за неполноты управления (например, когда нельзя пренебречь инерционностью двигателя, вращающего маятник, и его движение описывается уравнениями
ml^d?<p^ .d
—-у2 + my/sin^ = и, Т— + u = v, (36)
2 atat
где v = v(t) - новый сигнал управления). Действительно, изменяя управляющее воздействие v(£), нельзя произвольно изменять правые части (36).
Современная теория нелинейного и адаптивного управления предлагает несколько подходов к преодолению указанных трудностей. С ними можно познакомиться по специальной литературе.
ЛИТЕРАТУРА
Fradkov A.L., Pogromsky A. Yu. Introduction to control of oscillations and chaos. Singapore: World Scientific, 1998.
Блехман И.И. Вибрационная механика. М.: Наука, 1994.
Леонов Г. А., Смирнова В.Б. Математические проблемы теории фазовой синхронизации. СПб.: Наука, 2000.
Линдсей В. Системы синхронизации в связи и управлении. М.: Мир, 1978.
Ресота, L.M. and T.L. Carroll. Synchronization in chaotic systems. //Phys. Rev. Lett. 1990. V. 64. P. 821-823.
Марков А.Ю., Симин Г.С. Фрадков А.Л. Синхронизация хаотических генераторов на туннельных диодах. Радиотехника и электроника. 1997. №12. С. 1476-1481.
Фрадков А.Л. Кибернетическая физика. СПб.: Наука, 2003. 208с.
Мирошник И.В., Ушаков А.В. Синтез алгоритма синхронного управления квазиподобными системами // Автоматика и телемеханика. 1977. №11. С. 22-29.
Blekhman, I.I., Fradkov A.L. Nijmeijer H., Pogromsky A. Yu. On self-synchronization and controlled synchronization // Systems & Control Letters. 1997. V. 31. P. 299-305.
Управление мехатронными вибрационными установками / Под ред. И.И. Блехмана, А.Л. Фрадкова. СПб.: Наука, 2001. 278 с.
Мирошник И.В., Никифоров В.О., Фрадков А.Л. Нелинейное и адаптивное управление сложными динамическими системами. СПб.: Наука, 2000.
Андриевский Б.Р., Фрадков А.Л. Избранные главы теории автоматического управленйя с примерами на языке MATLAB. СПб.: Наука, 1999. 467 с.
Капица П.Л. Динамическая устойчивость маятника при колеблющейся точке подвеса // ЖЭТФ. 1951. Т.21. N5.
Meerkov S.M. Principle of vibrational control: theory and applications // IEEE Trans. Aut. Contr. 1980. V. AC-25. P. 755-762.
Stephenson A. On a new type of dynamical stability. Mem. Proc. Manch. Lit. Phil. Soc., 1908, V. 52,1-10; On induced stability. // Phil. Mag. 1909. V. 15. P. 233-236.
Shiriaev A.S., 0. Egeland, H. Ludvigsen, A.L. Fradkov. VSS-version of energy-based control for swinging up a pendulum // Systems & Contr. Lett. 2001. V. 44 (1). P. 45-56.
Некоторые общие принципы построения адаптивных систем управления
В. Н. Фомин
Предмет теории управления
Управление в широком смысле представляет собой воздействие на эволюцию (развитие во времени) того или иного процесса с целью придания ему желаемых свойств. При этом процесс может относиться к различным явлениям окружающего мира и областям человеческой деятельности (загрязнение Мирового океана, освоение космического пространства, социально-экономическая жизнь государств и коллективов людей, дипломатия и военное дело, технология и наука, создание и использование различных технических устройств и их комплексов, жизнедеятельность конкретного организма и т.д.).
Направленные воздействия осуществляет управляющая система, в качестве которой могут выступать человек, естественный или искусственный орган (устройство) и ДР- Подчеркнем, что в любом случае определение или интерпретация цели управления (желаемых свойств управляемого процесса) являются прерогативой человека или коллектива людей.
Так, с научной точки зрения явления природы не являются целенаправленными, хотя очень многие вкладывают прямой смысл в утверждение: ’’Мир устроен целесообразно”.
С задачей управления непосредственно связан вопрос: чем и зачем управлять? При соответствующем уточнении создается предпосылка решения задачи управления, что связано с ответом на вопрос: как управлять? Исследование этого вопроса составляет основное содержание теории управления.
В сложившейся математической теории управления первый вопрос является внешним: обычно предполагаются известными математическая модель процесса и необходимые сведения о состояниях модели в те или иные моменты времени, так что ясно, чем надо управлять. Кроме того, цель управления формализована (указана в подходящих терминах), а потому понятно, зачем надо управлять. Хотя в рамках теории управления рассматриваются разнообразные модели управляемых объектов и ставятся различные цели управления, вопрос об их адекватности реальным процессам и неформальным целям управления не ставится. Такой подход к теории управления позволяет широко использовать математические методы исследования. Практическая значимость полученных результатов зависит от содержательности принятых моделей управляемых процессов и целей управления.
Наибольшее развитие теория получила при исследовании процесса управления моделями, описывающими движение относительно простых физических и механических систем. Математические методы исследования проблемы управления лишь начинают пробивать дорогу при изучении моделей окружающей среды, экономических и социологических моделей, при описании сложных явлений в биологии, медицине...
Исходными являются понятия объект управления, цель
управления, стратегия управления. Объект управления (ОУ) характеризуется наличием входного процесса (набором управляющих и возмущающих воздействий), выходного процесса (управляемого процесса или выхода ОУ) и связями между входными и выходными процессами. Теоретики часто отождествляют ОУ с оператором, отображающим заданное множество входных процессов в множество выходных процессов. Это входо-выходное отображение может иметь сложную функциональную форму, но обязано удовлетворять условию причинности: значение выходного процесса в каждый момент времени не должно зависеть от будущих значений входного процесса. Формализованное описание входо-выходного отображения называют также математической моделью управляемого процесса (управляемого объекта). Изменение входного управляющего процесса влечет изменение выходного процесса. Решение задачи управления состоит в требовании указать способ изменения во времени входного управляющего процесса, при котором выходной процесс обладал бы предписанными свойствами (т.е. обеспечивал бы поставленные цели управления). Этот способ называют стратегией управления (СУ). Стратегия должна быть допустимой, т.е. использовать лишь те данные об ОУ, которые доступны в соответствующий момент времени (эти данные могут изменяться, например, в результате обновления информации в процессе управления), и обеспечивать выполнение некоторых общих условий протекания процесса управления. (Важным из таких условий является обеспечение устойчивости системы управления, это свойство означает, что для любого ограниченного во времени входного процесса соответствующий выходной процесс также должен быть ограничен во времени. В некоторых приложениях тре-
бование устойчивости системы управления может выступать в качестве цели управления.) Задача управления предполагает задание класса допустимых стратегий, и ее решение состоит в выборе из этого класса стратегии, обеспечивающей выполнение ЦУ.
Понятие об адаптивном управлении
В инженерной практике обычно стремятся построить возможно более простую модель управляемого процесса (которая тем не менее должна отражать основные его свойства). Наличие простых моделей позволяет, в частности, более полно изучить процесс управления путем имитации его с помощью аналоговых либо цифровых вычислительных машин и в итоге выбрать наиболее подходящий режим работы системы управления.
Для современного производства характерны усложнение технологических процессов, ужесточение допустимых отклонений управляемого процесса от предписанных значений и т.д. Совершенствование методов управления в этих условиях предполагает разработку более сложных математических моделей управляемых процессов, позволяющих оптимизировать управление, а использование усложненных моделей порождает проблему задания значений характеристик и параметров модели, нужных для формирования требуемого управления. Более того, некоторые из таких параметров могут дрейфовать во времени вследствие износа или старения тех или иных устройств и механизмов, составляющих ОУ. Иногда можно учитывать подобный дрейф параметров путем регулярной замены изношенных деталей либо путем
переналадки управляющей системы, но обычно это требует прерывания технологического процесса и потому может оказаться экономически невыгодным либо даже невозможным по производственным причинам. Широкое внедрение современных ЭВМ в процессы управления технологическими процессами позволяет контролировать изменение параметров без прерывания технологического процесса и использовать текущие значения параметров (либо их оценки) для формирования управляющих воздействий. Если параметры изменяются во времени достаточно медленно (что бывает во многих прикладных задачах управления), то такие методы управления могут оказаться весьма эффективными, поскольку не связаны с прерыванием технологического процесса для тестирования управляемого процесса или ОУ.
Робот-велосипедист
Опишем модельную задачу автоматического управления, на которой продемонстрируем общие подходы к построению адаптивных систем. Пусть объектом управления является двухколесный велосипед, движущийся равномерно (велосипед с моторчиком) и прямолинейно, и наша задача состоит в построении управляющей системы (будем называть ее роботом-велосипедистом), которая должна поддерживать равновесие велосипеда путем соответствующего манипулирования его рулем.
Рассмотрим для определенности случай, когда робот- велосипедист представляет собой устройство, на вход которого поступает сигнал измерителя (датчика, сенсора), равный углу отклонения рамы велосипеда от вертикальной плоско-
сти (значения этого сигнала в момент времени t обозначим y(f)Y а выходом является сигнал, идущий на устройство поворота руля и указывающий нужный угол поворота руля в тот или иной момент времени. Обозначим: u(f) — значение этого управляющего сигнала в момент времени I. Таким образом, робот-велосипедист предполагается снабженным датчиком, позволяющим- получать в каждый момент времени значение угла отклонения рамы велосипеда от вертикальной плоскости. Под действием этого сигнала робот должен вырабатывать управляющий сигнал и, который обеспечивает достаточно малое отклонение рамы велосипеда от вертикальной плоскости. Если математическая модель двухколесного велосипеда полностью известна, то построить соответствующее автоматическое устройство (т.е. модель робота- велосипедиста) обычно несложно. Остановимся на этом подробнее. В рамках элементарной теории велосипеда (см., например, [1, гл. VI]) математическая модель двухколесного велосипеда выглядит достаточно просто. Например, при упрощающих предположениях (ось руля вертикальна, проходит через центр переднего колеса и является главной осью эллипсоида инерции передней части велосипеда, массы колес пренебрежимо малы по сравнению с массой системы велосипед + робот) уравнение, описывающее зависимость угла отклонения рамы велосипеда y(t) от управляющего воздействия и (угла поворота руля), в линейном приближении имеет вид'
у№ ” aollW = Мь(1} + bou^ + v(t),(1)
где у^ = d?y^(dt^ — ускорение угла отклонения рамы ве-
лосипеда от вертикальной плоскости; ii(t) = du^/dt — скорость поворота руля; по, Ьо, bi — некоторые постоянные, конкретизирующие принятую математическую модель двухколесного велосипеда; v(t) — возмущающее воздействие в момент времени t (возмущающее воздействие и может описывать действующие на велосипед порывы ветра, неровности дороги, а также включать в себя факторы, вызванные несовершенством рассматриваемой математической модели велосипеда). Значения возмущающего воздействия v(t) обычно неизвестны, но в конкретных условиях управления велосипедом часто удается высказать правдоподобные суждения о некоторых общих свойствах возмущающих воздействий (понятно, что если ничего не предполагать о возмущающих воздействиях в уравнении (1), то принятая математическая модель велосипеда бессодержательна в том смысле, что не удается использовать ее особенности для содержательного анализа задачи управления). Примем, что возмущающее воздействие и во все моменты времени удовлетворяет условию
|«(t)| < С. (2)
с некоторой достаточно малой постоянной С„. Предположение о малости С« — уровня возмущающего воздействия и — означает, что принятая модель велосипеда в виде линейного дифференциального уравнения второго порядка с постоянными коэффициентами достаточно хороша, а действующая на велосипед помеха мала. В некоторых идеализированных условиях такие предположения представляются естественными (окончательное суждение о работоспособности основанных на этих предположениях алгоритмов управления могут быть сделаны либо с помощью натурных экспериментов, в которых построенный регулятор — робот-велосипедист —
управляет реальным велосипедом, либо имитацией подобных экспериментов на ЭВМ).
Коэффициенты уравнения (1) выражаются через физические параметры модели. Так, например, если постоянная скорость движения велосипеда равна V, база велосипеда (расстояние между осями колес велосипеда) равна с, высота центра тяжести системы велосипед + робот и расстояние от центра тяжести до вертикальной прямой, проходящей через ось заднего колеса, равны соответственно /, /i, то в рамках теории элементарного велосипеда могут быть получены следующие значения коэффициентов модели (1) (сам вывод этих соотношений отнюдь не элементарен):
„ 9 к. ^ к lV Г^ a0 = h’ bl=fc' (3)
где g — ускорение силы тяжести (на поверхности Земли д' = 9.8 м/с2). Схематически система велосипед 4- робот изображена на рисунке.
Возможны и более сложные модели велосипеда. Так, в приведенной модели предполагалось, что инерцией руля велосипеда можно пренебречь, т.е. прилагаемые к рулю усилия со стороны управляющего устройства достаточно велики. Если нельзя пренебречь инерцией руля, то более адекватная реальному велосипеду математическая модель (даже в линейном приближении) будет сложнее: она описывается парой линейных дифференциальных уравнений второго порядка (см. [1, гл. VI]). Использование такой усложненной модели требует задания дополнительных параметров, таких как моменты инерции заднего и переднего колес относительно их осей собственного вращения, коэффициент трения в рулевой колонке и т.п. В дальнейшем ограничимся рассмотрением упрощен-
Схематическое изображение системы велосипед + робот: М — центр тяжести системы с координатами / и Л, с — база велосипеда, у — угол отклонения рамы велосипеда от вертикальной плоскости, и — угол поворота руля, V — скорость движения велосипеда.
ной модели (1), хотя принципиально дифференциальный порядок математической модели несуществен для построения адаптивного регулятора (усложнение математической модели обычно уменьшает эффективность алгоритма адаптивного управления).
Предположим, что в качестве цели управления принято требование обеспечить при всех достаточно больших t неравенство
(4)(4)|y(t)l < с„
(4)
(4)
где Су — некоторая заданная, достаточно малая положительная постоянная. Таким образом, при выполнении цели управления (4) рама велосипеда будет незначительно отклоняться от вертикальной плоскости, т.е. велосипед будет двигаться
примерно прямолинейно. Аналогично можно ставить задачу о движении велосипеда по заданной траектории, в этом случае рама велосипеда должна будет отклоняться от вертикальной плоскости в те или иные моменты времени по закону, обеспечивающему перемещение центра тяжести системы велосипед + робот по заданной траектории (цель управления тогда вместо (4) может иметь вид
WO -^Wl < Су,
где 3/*(t) — заданная функция отклонений рамы велосипеда от вертикальной плоскости, при которой обеспечивается движение центра тяжести системы велосипед + робот по заданной траектории). Итак, задача состоит в описании алгоритма построения управляющих воздействий u(t), в те или иные моменты времени обеспечивающих выполнение целевого условия (4).
Если постоянные oq, Ьо, by известны, а робот снабжен датчиками, позволяющими в каждый момент времени t измерять *у^ и y(t), то можно предложить весьма простые алгоритмы управления (эти алгоритмы определяют способ функционирования робота-велосипедиста). Например, можно принять, что управление и формируется по у с помощью обратной связи
Ьуй^ + Ъ0Ц1) = -2yi^(i) + (по - goWtY (5)
где oq, Ьо) by — постоянные из (1), а д^ ду — произвольные положительные постоянные. Объект управления (1), замкнутый обратной связью (5), устойчив в том смысле, что все удовлетворяющие уравнениям (1), (5) функции y(t), u(t) стремятся к нулю при t —> оо. Действительно, уравнение (1) с
учетом (5) можно переписать в виде
y-V2g1p-Vgoy = vltY(6)
Если помеха отсутствует (v(t) = 0, t е Т), то общее решение уравнения (6) имеет вид (для простоты примем, что уо < У1)
y(t) = Cl exp{mit} + с2 exp{m2t},(7)
где mi, m2 — корни уравнения
m2 + 2gYm + go = 0 (тц2 = -gY ± [у? - #0]а5)(8)
и ci, c2 — произвольные постоянные. В силу положительности коэффициентов до, gY обратной связи (5) оба корня уравнения (8) (в предположении д0 < у?) являются отрицательными числами, а потому независимо от начальных данных (независимо от значений постоянных Ci, с2) функция (7) экспоненциально быстро убывает до нуля при t —> оо. Таким образом, при достаточно больших t модуль функции (7) будет удовлетворять целевому неравенству (4). Этот же вывод остается справедливым и при ненулевой, но достаточно малой помехе (постоянная Сг достаточно мала).
Построение управляющей системы усложняется, если параметры модели неизвестны. В этом случае естественно воспользоваться адаптивными методами управления, когда неизвестные значения параметров ОУ оцениваются тем или иным способом в режиме функционирования управляемого объекта и найденные текущие оценки используются при формировании управляющих воздействий. Подобный идентификационный подход к адаптивному управлению обсуждается ниже в применении к роботу-велосипедисту.
Параметрическая неопределенность в задании математической модели управляемого объекта и способы ее преодоления
Необходимость в адаптивном управлении возникает, когда математическая модель задана не полностью, например с точностью до значений конечного набора параметров. Для линейных моделей такими параметрами могут быть коэффициенты описывающего ОУ уравнения (для модели велосипеда (1) неизвестными могут быть все или часть коэффициентов од, Ьо, bi). В подобных ситуациях говорят о параметрической неопределенности модели.
В условиях параметрической неопределенности классические методы управления, основанные на полном знании значений всех параметров системы, обычно оказываются непригодными и приходится эти методы дополнять теми или иными способами восстановления неизвестных значений параметров математической модели ОУ. Иногда достаточно точные оценки значений параметров можно получить из анализа входо-выходных сигналов управляемого объекта. Всякий такой способ, позволяющий с необходимой точностью восстанавливать неизвестные значения параметров, можно интерпретировать как процесс адаптации (приспособления). После завершения процесса адаптации приходим к обычной задаче управления (неизвестные значения параметров восстановлены с необходимой точностью и тем самым преодолена начальная неопределенность задания математической модели). Алгоритмы адаптации могут требовать различного времени для получения требуемых оценок (это время называется временем адаптации). С практической точки зрения важны алгоритмы, время адаптации у которых не слишком велико,
причем сами алгоритмы достаточно простые. Эти противоречивые условия (а также ряд других) трудно формализуемы, но могут успешно изучаться путем имитации алгоритмов адаптивного управления на ЭВМ.
Имеется некоторый универсальный подход к преодолению параметрической неопределенности. Несколько неточно говоря, этот метод основан на случайном переборе возможных значений неизвестных параметров с проверкой "каче- ства’’выбранного параметра. Подобная идея самонастройки была воплощена английским ученым У. Р. Эшби [3] в изобретенной и построенной им кибернетической машине для моделирования явления гомеостаза — механизма удержания существенных переменных живого организма (таких, как температура, давление крови, ее состав и т.п.) в физиологических пределах. Интересные соображения, связанные с процессами самоорганизации более сложных систем и образования структур ”с памятью есть в работе [4].
Можно показать, что при достаточно общих условиях подобный метод самонастройки закончится за конечное время, т.е. на каждой реализации ”подходящие”оценки будут найдены после конечного числа попыток. К сожалению, на большинстве реализаций этого переборного процесса время его завершения (время адаптации) оказывается чрезмерно большим (и оно быстро нарастает с увеличением числа оцениваемых параметров). Поэтому, несмотря на универсальность, описанный случайный перебор в практических задачах малоэффективен и используется крайне редко. В нашем случае неизвестные параметры входят в уравнение (1) линейно, это обстоятельство позволяет воспользоваться одним из методов направленного перебора. Приведем один из таких методов оценивания, основанный на предположении, что помеха огра-
ничена во времени, см. (2). Соответствующие оценки оказываются подходящими, если уровень С — v помехи достаточно мал.
Конечно-сходящиеся алгоритмы адаптации. Метод рекуррентных целевых неравенств
В рамках идентификационного подхода к задаче адаптивного управления разработан достаточно общий метод оценивания, помеха в рамках этого метода может вообще не быть случайной (математическое понятие случайного процесса предполагает некоторые свойства его измеримости, что трудно проверить в прикладных задачах). Метод разработан в Ленинградском—Санкт-Петербургском государственном университете научным коллективом, работающим под руководством чл.-кор. Российской Академии наук В.А. Якубовича, и широко используется в качестве алгоритма адаптации. Некоторые предварительные итоги по обоснованию этого метода и применению его в разнообразных задачах адаптивного управления приведены в книге [5] (см. также [6]). Этот метод в применении к задаче о роботе-велосипедисте можно описать следующим образом.
Примем для определенности, что известным является коэффициент 61 уравнения (1), тогда как коэффициенты а^ 6о неизвестны (случай, когда неизвестны все коэффициенты, исследуется аналогично). Будем предполагать, что множество Q возможных их значений является ограниченным замкнутым множеством (например, Q может быть прямоугольником с центром в некоторой точке {oj, 6g}). Пусть фиксирован некоторый способ получения оценок неизвестных значе-
ний параметров do, Ьо- Обозначим: Оо(0» МО — оценки, отвечающие моменту времени t. Функции oo(t), МО строятся как кусочно-постоянные, изменяющиеся лишь в дискретные моменты времени \tktk = 1,2, ...,£* Е Т} и принимающие постоянные значения в промежутках между этими значениями,
МО = oo(tfc), МО = bo^tky tk<t <tk-VL (9) Выбор моментов времени Vktk — 1,2,...,tk Е Т} и соответствующих значений оценок Оо(^)> М^ь) может осуществляться по-разному. Ограничимся лишь пояснением, в чем состоит метод рекуррентных целевых неравенств в рассматриваемой задаче о роботе-велосипедисте.
Вводя обозначение /(£) = у(<) — Ьуй^, перепишем модель (1) в виде •
/(О - ао^у^ - Ьо(ОЦО =
= (а0 - МОМО + (Ьо “ МОМО + Ч^-(10)
Из равенства (10) и неравенства (2) следует, что неравенства
1/(0 - a0(t)j/(t) - М0Ц01 ^ ^t 1 ^ T> (n)
относительно величин a^t\ bo(t) разрешимы (они, очевидно, выполнены при ао(О = Оо, МО = Ьо\ Если функции Оо(0» М0> удовлетворяющие континуальной системе неравенств (11), как-то получены, то в силу (10) уравнение ОУ может быть записано в виде
fW ~ doW^W ~ b0(t)u(t) = w(£),. (12)
где функция w(£) = (а0 - МОМО + (^о - Ь0^)и^ + и^ (с неизвестными значениями) может рассматриваться как "по- меха"в нестационарном ОУ (12), и эта помеха в силу (11)
удовлетворяет неравенству
|w(t)| < 2С„.(13)
Сказанное справедливо при любом выборе управления и. Примем теперь, что управление формируется с помощью обратной связи
Ьхй^ + bou^ = -2yiy(t) - (oo(t) + 90^^(14)
где g^ gi — произвольные положительные числа, д^ > до. Уравнение (12) тогда преобразуется к виду
у + 2дху + доУ = w^tY
Как и в случае уравнения (6), отсюда при достаточно малой постоянной С„ в неравенстве (13) и начальных данных в системе управления (12), (14) следует выполнение неравенства (4). Таким образом, задача управления свелась к нахождению оценок aoW, Ьо(О, удовлетворяющих неравенствам (13). Неравенства (13) в рамках обсуждаемого метода рассматриваются как целевые, т.е. использование их решения обеспечивает выполнение цели управления (4). Заметим, что эти неравенства не "заданы”заранее, до начала процесса управления: чтобы проверить, выполнено или нет соответствующее неравенство в момент времени t, следует вычислить величину
s(t) = y(t) - аоу^ - Ь^й^ - 6о(*)м(О =
= / W - aoWyW - bo^ult),(15)
для чего нужно с помощью датчиков получить значения величин y(t), y^t^ u(t), u(t), а для этого требуется управлять
объектом до момента времени t, управление же в этот момент времени (см. (14)) зависит от оценок Oo(s), 6q(s), s < 1. Неравенства (11) приходится решать последовательно, или рекуррентно, чередуя процесс получения оценок с процессом формирования управляющих воздействий. Эти свойства обсуждаемого подхода к задаче адаптивного управления и послужили основанием назвать его методом рекуррентных целевых неравенств.
Таким образом, отыскание нужных оценок сводится к решению рекуррентных целевых неравенств вида (11). При этом требуется в действительности найти такое решение а^ Ь^, для которого неравенства (11) будут выполняться лишь с некоторого конечного момента t* (с этого момента параметры робота-велосипедиста восстановлены с необходимой точностью, и он будет успешно справляться с задачей удержания велосипеда в вертикальном положении, т.е. с этого момента времени будет обеспечиваться целевое неравенство (2)). Ввиду ограниченности объема статьи не будем останавливаться на подробном выводе соответствующих алгоритмов оценивания (настройки параметров). Отметим лишь, что неравенство (11) в каждый момент времени t определяет полосу шириной 2Су в плоскости параметров {oq, Ьо}- В качестве алгоритма настройки может быть выбран, например, алгоритм проектирования текущей оценки ao(t)> &о(£) на срединную плоскость этой полосы, направляющий вектор которой и расстояние до начала координат определяются соответственно вектором (у(£), u(t)) и числом /(f). Соответствующие формулы могут быть найдены, например, в [5,6], где приведены различные алгоритмы подобного рода под названием алгоритмов адаптации "Полоска". Эти алгоритмы при естественных предположениях обладают свойством сходимости за ко-
нечное число итераций, т.е. на каждой реализации процесса управления существует конечный момент времени t* — момент завершения процесса адаптации, начиная с которого для полученных оценок Oo(t) = Oo(t*), М^) = М^*) будут выполнены неравенства (11). Момент завершения процесса адаптации зависит от конкретной реализации помехи v, действующей на ОУ (1), и, вообще говоря, может быть сколь угодно большим.
В рамках метода рекуррентных целевых неравенств получены разного рода теоретические оценки скорости сходимости алгоритмов типа "Полоска". Однако эти теоретические оценки являются весьма грубыми и, как показывают эксперименты по имитации адаптивного робота-велосипедиста на ЭВМ, сильно завышенными. Многочисленные имитационные эксперименты на ЭВМ продемонстрировали высокую эффективность метода рекуррентных целевых неравенств даже в условиях, когда классические методы типа широко известного метода наименьших квадратов оказываются несостоятельными. Более подробно эти вопросы обсуждаются, например, в [5, 6].
Заключение
Широко распространена интерпретация задачи адаптивного управления как совокупности взаимосвязанных задач оценивания и собственно управления. В действительности задача адаптивного управления может рассматриваться как задача собственно управления в условиях неполного наблюдения вектора состояния, если под вектором состояния ОУ понимать набор переменных, описывающих развитие во вре-
мени объекта, дополненный набором неизвестных параметров/ Однако исследование подобной задачи управления может оказаться весьма сложной проблемой. Например, если исходный объект линейный, то после включения неизвестных его коэффициентов в состояния расширенного ОУ приходим к нелинейному ОУ со всеми вытекающими сложными проблемами управления нелинейными объектами.
Сложившаяся теория адаптивного управления учитывает линейность ОУ, что позволяет построить эффективные алгоритмы адаптивного управления. Такие алгоритмы естественно возникают, например в рамках метода рекуррентных целевых неравенств, о котором упоминалось выше. Эффективность конечно-сходящихся алгоритмов типа "Полоска”подтверждается многочисленными и разнообразными экспериментами по имитации адаптивного управления не только в применении к роботу-велосипедисту.
ЛИТЕРАТУРА
Неймарк Ю. И., Фуфаев Н. А. Динамика неголономных систем. М.: Наука, 1967.
Брусин В. А. Об управлении динамическими системами в условиях неопределенности / / Соросовский Образовательный Журнал. 1996. №6. С. 115-121.
Эшби У. Р. Конструкция мозга. М.: Мир, 1964.
Кадомцев Б. Б. Динамики и информация // Успехи физ. наук. 1994. Т. 164. №5. С. 487-530.
Фомин В. Н., Фрадков А. Л., Якубович В. А. Адаптивное управление динамическими объектами. М.: Наука, 1981.*
Фомин В. Н. Математическая теория обучаемых опознающих систем. Л.: Изд-во ЛГУ, 1976.
Многомерная геометрия и распознавание образов
Ю. И. Неймарк
Введение и постановка проблемы
В предыдущей статье [1] я говорил о математике как об операционной системе и моделях. Сейчас я постараюсь рассказать о замечательных простых математических моделях очень сложных интеллектуальных способностей человека, моделях, которые послужили основой и трамплином для бурного триумфального шествия нового раздела науки — распознавания образов. В 1957 г. в новой, только в 1948 г. провозглашенной Н. Винером науке кибернетике произошло ошеломляющее, получившее благодаря журналистам широкую огласку, событие: демонстраций устройства со звучным названием персептрон [2,3]. Персептрон распознавал (узнавал, различал, опознавал) зрительные образы и обучался этому распознаванию. Он мог узнавать новые образы, если его, как и нас, людей, этому учили путем показов. Ранее казалось, что такое умение — бесспорная прерогатива человека, что только человек с его высоким интеллектом способен к обобщению и формированию абстрактного понятия образа, только он это может и только его можно этому научить. Оказалось, что это может делать устройство, бездушная машина.
Персептрон имел не только звучное название, он был на вид прост и загадочен. Его создал Розенблатт, физиолог по профессии, исходя из современных ему представлений о конструкции мозга [4], связей между слоями его нервных клеток и о самих нервных клетках, исходя из того, что он сам назвал принципами нейродинамики [5]. Персептрон имел фасетчат- ный глаз, как у стрекозы, состоящий из десяти тысяч фотоэлементов. Далее шел ящик с лампочками, отвечающими на показ, и кнопками для сообщения ему, что показывают при обучении, состоящем в указаниях, правильно ли он, персептрон, распознает то, что ему показывают. Что внутри ящика, не видно, ящик черный, как в игре “Что? Где? Когда?”.
Но вскоре содержимое ящика стало понятным, и сотни групп ученых во всем мире стали экспериментировать с персептронами. Уже в начале 60-х годов в нашей стране применили машинное распознавание образов к опознанию нефтеносной местности, местности, в недрах которой скрыта нефть. Затем с помощью ЭВМ начали распознавать болезни человека и делать это подчас лучше, чем сам человек. ЭВМ научилась “читать” печатный и даже рукописный текст и воспринимать текст с голоса, обнаруживать неисправности, предсказывать аварийные ситуации и многое, многое другое.
Отдельный конкретный стул мы можем в деталях описать и научить ЭВМ по этому описанию его узнавать. Но как научить ЭВМ узнавать любой стул, в том числе и тот, которого мы сами не видели, т.е. каким образом описать образ “стул”? Стул предназначен для сидения, имеет ножки и спинку. Но что значит для ЭВМ: “предназначен для сидения, ножка и спинка”? Это столь же неясно, как и то, что такое сам стул.
Итак, что такое "объект что такое "образ"и как можно ЭВМ научить "распознаванию образов как можно распозна-
вание использовать для перечисленных выше вопросов? Могущество математики состоит в том, что ответы на эти вопросы могут быть получены, если найдены соответствующие этим вопросам математические модели, т.е. математические модели объекта, образа, распознавания и обучения распознаванию. Как только такие модели станут общим достоянием, ЭВМ будут распознавать не хуже, а может быть, и лучше человека. Приложения, и самые разнообразные, посыплются, как горох из мешка, причем не только ожидаемые, но и совершенно неожиданные. Ведь персептрон распознавал зрительные образы, а затем ЭВМ ставила диагнозы болезней, находила скрытые неисправности и осуществляла геологическую разведку.
Кажется, что построить эти математические модели невозможно и уж, во всяком случае, очень трудно. Будущий врач учится полжизни, чтобы верно ставить диагнозы заболевания, только талантливый химик догадывается о свойствах вещества по его структурной химической формуле, а мы хотим, чтобы это делали ЭВМ. Конечно, трудно, даже очень трудно, потому что эти модели существенно новые, отличные от привычных нам уравнений, и мы еще не знаем, как их построить. Нужен взлет, скачок мысли, и он был бы невозможен, не обладай человек изобретением своего воображения, называемым многомерным пространством. Изобретением потому, что многомерного геометрического пространства нет в природе, его изобрел математик. Изобрести это многомерное пространство в связи с моделированием распознавания образов очень маловероятно, пожалуй, невозможно. Идеи многомерного пространства высказывались еще в XVIII в. И. Кантом и Ж. Д’Аламбером, а многомерная геометрия построена А. Кэли, Г. Грассманом и Л. Шлефли в
прошлом веке. После этого первоначальные сомнения и связанная с ними мистика были преодолены, и многомерное пространство стало плодотворным математическим понятием. Многомерное пространство такое же, как наше трехмерное, но только у него не три координатных оси, а много, любое число п. Представить его в нашем трехмерном пространстве нельзя, но вообразить можно: п осей координат Ozi, Ож2,..., ОжП1 каждая точка ж имеет п координат жь ж2, ..., жп; плоскость, точнее гиперплоскость, делит все пространство на две части; через любые две точки можно провести единственную прямую; конечный отрезок прямой имеет длину и т.д. Для физиков уже давно стало привычным рабочим инструментом четырехмерное пространство с тремя пространственными координатами и четвертой — временем. Говорят, наш замечательный геометр Делоне легко представлял себе четырехмерное пространство так же, как мы трехмерное, и мог в нем производить геометрические построения. В конце концов, мы же изображаем наше трехмерное пространство на двумерных картинах, рисунках и чертежах.
Но вернемся к математическим моделям. Мне очень трудно перед Вами хитрить, ведь я знаю эти модели, и они просты, как дважды два — четыре. Помогают мне хитрить только прошлые воспоминания, когда они были неизвестны и всем казались недосягаемыми и загадочными. Чувство удивления и затем восхищения не прошли для меня даром: я занялся разработкой и приложением идей распознавания образов в медицине. В 1972 году вышла книга "Распознавание образов и медицинская диагностика" [6], плод труда и энтузиазма математиков, врачей и инженеров. Сейчас возросшие возможности персональных ЭВМ побудили нас на основе приобретенного опыта к разработке самообучающегося,
автоматизированного консультанта врача в постановке диагноза, прогноза течения болезни, показанности оперативных вмешательств, выборе метода лечения и др. |7]. Естественно, что мне хочется, чтобы сейчас эти же чувства удивления и восхищения посетили и Вас. Итак, требуется описать на математическом языке, т.е. построить, математические модели объекта, образа, распознавания и обучения.
Математические модели распознавания
Что такое изображение? Для простоты черно-белое, такое, как в газете, полученное путем нанесения или не нанесения на бумагу в определенных ее местах черных точек. Перенумеруем от 1 до п все места, где можно ставить черные точки. В s-м месте может стоять или не стоять черная точка, это опишем тем, что х8 = 1 или, соответственно, х8 = 0. В результате любое изображение описывается последовательностью чисел ж 1, ®2, ..., хп. Аналогично сетчатка нашего глаза, состоящая из колбочек и палочек, воспринимает любое изображение как некоторую последовательность чисел. Еще отчетливей это для фасетчатого глаза стрекозы. Теперь введем n-мерное пространство X с координатами ®i, ж2, ..., хп. Любое изображение представляется в нем некоторой точкой х. Если бы изображение состояло только из трех черных и белых точек, то пространство X и точку — изображение х можно было бы наглядно нарисовать. Но координат х^ т2, ..., хп тысячи и сотни тысяч. Ну и что? Изобразим его так же, только с п осями и такой же точкой х — изображением. Таким образом, конкретный объект-рисунок — это точка х в многомерном пространстве X всевозможных рисунков.
А что такое образ? Это обобщенное представление обо всех его конкретных изображениях или нечто объемлющее все эти изображения, т.е. множество точек х в многомерном пространстве X, соответствующих всем этим изображениям. Будем мыслить это множество точек в виде некоторого облака, назвав его, например, А (см. рис.). Другому образу будет отвечать другое облако, пусть В. Например, А — всевозможные стулья, а В — ведра.
Таким образом, строятся математические модели конкретного изображения и множества изображений, составляющих образы. Теперь мы можем ответить на вопрос "что такое распознавание образов?"Это умение выяснить, к какому из облаков А или В принадлежит точка ж, отвечающая показываемому изображению — объекту. Как узнать, лежит ли точка х в облаке А или В? Ведь нарисовать на самом деле их нельзя, и пространство X воображаемое, воображаемые и облака А и В в нем, да и точка х тоже, но сделать
это все же можно, например, так. Разделим облака Ли В гиперплоскостью или, если не выходит, гиперповерхностью S (см. рис.). С одной ее стороны облако Л, с другой — В. Как это сделать? Фантазия? Вот и нет! Гиперповерхность S — это множество точек, на которых "зануляется"некоторая функция /(si, ®2, • • •, хп\ С одной стороны поверхности S f > 0, с другой / < 0. Так что, например, х Е Л, если / < 0, и х Е В, если / > 0. Это не единственный способ, но он очень хороший и дает нам определенную математическую модель различия, распознавания образов. Надо только еще научиться находить эту поверхность S и ее уравнение "
/(з?1, $2, • • • , Жп) = 0. (1)
Ясно, что найти эту поверхность можно, только "показывая "точки облаков А и В. Показать сразу все облако А или В мы не можем, они воображаемые, и точек в них может быть слишком много. Но показать не очень большие количества точек множеств облаков Л и В можно, просто перечислив их.
Теперь можно сформулировать, в чем состоит модель обучения распознаванию образов. Это нахождение разделяющей поверхности S по конечным ограниченным показам точек облаков Л и В. (Все время речь шла о распознавании двух образов, но, умея распознать два, нетрудно распознать любое их конечное число. Достаточно, например, каждое из множеств отличать от всех остальных. Это не лучший способ, даже плохой, и можно придумать лучший, при котором разделяющих поверхностей требуется много меньше).
Наша цель достигнута: построены математические модели объекта (изображения), образа, распознавания образов и обучения распознаванию образов. Но все же, как конкретно
находить требуемую разделяющую поверхность, мы не знаем. Тут возможны разные способы, но прежде давайте немного осмыслим полученные математические модели. Математические модели — это описания на абстрактном математическом языке. Куда уж дальше? Модели не только абстрактные, но и фантастические, воображаемые. Но это не плохо, а, оказывается, очень хорошо. Хорошо потому, что под эти модели подходят не только зрительные объекты, но и звуковые, обонятельные и осязательные, и те представления об объектах, которые дают не только наши органы чувств, но и приборы, проще, всё, что может быть описано или, как говорят, закодировано числами, а числами может быть закодировано все, что можно описать словами и любыми значками, т.е. всё, что мы можем знать. Такова всеобъемлющая мощь этих математических моделей. Нужен диагноз болезни — пожалуйста, только опишите больного и дайте достаточно случаев этой болезни, которые я использую как представителей
ее образа. Нужно узнать, есть ли в глубине земли золото, — пожалуйста; в чем неисправность машин — пожалуйста; не раковая ли это клетка — пожалуйста; чей это почерк — пожалуйста; не жулик ли этот человек — пожалуйста; будет ли этот человек хорошим водителем автомобиля — пожалуйста; какие свойства у еще не полученного химического вещества — пожалуйста... Такова необычайная широта приложений математических моделей распознавания образов.
Теперь, я думаю, Вы готовы узнать, как же найти разделяющую поверхность, во всяком случае, важность этого Вам ясна.
Алгоритм обучения
Выше были описаны математические модели объекта и образа. Объект — это точка многомерного пространства его признаков, образ — это множество, облако таких точек. Распознавать образы — это указывать, к какому из облаков- образов принадлежит заданная точка. Обучение показами — это когда предъявляются какие-то точки х и указывается, к какому из множеств-Образов они принадлежат, а в результате вырабатывается способность определять, к какому из множеств-образов принадлежит новая, в том числе и ранее не показываемая, точка.
Перейдем теперь к вопросу о том, как осуществить обучение показами, с помощью какого алгоритма его достигнуть. Как уже говорилось, этого можно достигнуть путем построения разделяющей поверхности. Но как ее найти? Об этом и пойдет речь. Будем искать, например, разделяющую поверх-
ность в виде
У(®, о) = 01^1 (®1, • • • , ®п) + . • • + Ovn^m^l, • • • , ®п) = 0) (2)
где ж — точка многомерного пространства X с координатами- признаками ®i,..., ж„, а «1,..., Оп — неизвестные параметры, которые мы хотим подобрать так, чтобы она была искомой разделяющей, т.е. чтобы для всех точек ж G А /(ж, а) < О, а для всех ж G В /(ж, а) > 0. Функции ф8(ж1,... ,жп) известны и подобраны так, что мы можем надеяться найти требуемую разделяющую поверхность. Согласно сказанному, искомые значения параметров можно найти из системы неравенств
/(ж, а*) < 0 при ж G Л,
/(ж, а*) > 0 при ж G В.(3)
Ясная математическая задача поставлена. Однако как ее решить? Точек ж очень много, все не перечислишь, параметров а8 также не мало. Персептрон Розенблатта делал это следующим образом. Возьмем произвольные начальные значения параметров ая, s = 1,2,... ,m, и будем последовательно показывать точки множеств-облаков Л и В, указывая каждый раз с помощью величины £, к какому из образов А или В она принадлежит. Если £ = — 1, то показываемое ж принадлежит Л, если $ = +1, то ж G В. При этих показах одновременно выясняется, а верно ли, в соответствии с условиями (3), распознает объект ж персептрон. Если верно, его не трогают. Если неверно, меняют параметры а8 в соответствии с формулами
Оя = Оя + ^фв^Жх^ • • • , ®n), S = 1,2,..., ш. (4)
Дальше за параметры персептрона а8 принимают и показывают следующий объект, и опять либо не меняют, либо меняют параметры согласно формулам (4). Процесс очень простой и смысл его тоже, так как при каждой ошибке неверное значение функции f[x,a) за счет изменения параметров становится "менее"неверным. Именно:
/(ж, а) н- /(ж, а) = ^А», + ^ФАх^Дх") =
Поэтому, если /(ж, а) > 0 и £ = —1 (ж Е Л), то /(ж, а) < /(ж, а), а если /(ж, а) > 0 и £ = 1 (ж Е В), то /(ж, а) > /(ж, а). Трудно поверить, что такой простой алгоритм ведет к цели, но это так при весьма общих условиях и, самое важное, удач- ности выбора общего вида (2) разделяющей функции /(ж, а). Удачность означает принципиальную разрешимость с запасом неравенств (3). С запасом — это значит, они выполняются не только для некоторого а*, но и всех а, достаточно близких к а*. Достигаемая цель состоит в том, что в описанном процессе персептрон совершает не более, чем некоторое конечное число ошибок N. Если персептрон уже их совершил, то после этого он уже никогда не ошибается, узнавая правильно даже те объекты, которые он никогда ранее не видел и которые ему не показывали.
Идея доказательства очень проста [8]. Рассмотрим изменение величины Vt равной
V = 52> - А°:)2 ^ °’ А>0>(5)
при совершении персептроном ошибки
kV = 52(а. + ^. - АО2 - 52(а, - Аа;)2 =
= 2лс |^2 °я*я - 52 а-^}+52 ^-
Первый член этой суммы отрицателен, так как в силу ошибки персептрона знаки ж и ^Га8ф8 = /(ж, а) противоположны, а знаки £ и 53 а*зФ8 = / (ж> °*) одинаковы, и по величине неограниченно растет вместе с А. Это позволяет выбрать А так, что убывание величины V при каждой ошибке персептрона не менее, чем на q > 0. Из этого и следует конечность числа ошибок, так как величина V не может стать отрицательной.
Заключение
Есть поговорка: "За одного битого двух небитых дают". Раз побили, значит, в чем-то ошибся. Поэтому поговорку можно перефразировать и так: "За одного ошибавшегося двух неошибавшихся дают". Ученик, чтобы познать новое, должен ошибиться положенное ему число раз. Поэтому ученику мы стараемся давать постепенно задачи с разумными подвохами, так, чтобы, ошибаясь и осмысливая ошибки, он быстрее поумнел. Высказанным я хочу обратить Ваше внимание на то, что законы обучения персептрона и ученика схожи, что в основе обучения обоих, возможно, лежат общие закономерности обучения, порождаемые общностью их математических моделей, тех самых, о которых я Вам рассказал. Розенблатт шел от принципов работы мозга, нейродинамики, и придумал персептрон. Мы же от персептрона, от его принципа обучения и общих математических моделей вернулись к человеческому мозгу. Круг замкнулся, обогатившись новыми знаниями, удивительным фактом о конечности числа ошибок при обучении, о связи этого предельного числа
ошибок с выбором обучаемой функции /(я, а) и влиянии на обучение порядка показа представителей образа.
Всеобъемлющая значимость общих абстрактных моделей математики не только в их конкретных приложениях, но еще более, пожалуй, в их эвристических возможностях. В своей научной деятельности я столкнулся с рассматриваемыми общими принципами обучения, разрабатывая адаптивные (саг мообучающиеся) системы управления. Так вот, для убыстрения их адаптации и улучшения их работы лучше, если они в самом начале покажут все свои "фокусы"и нарушения хорошего управления, затем, после этого, они будут работать надежнее и лучше.
Только столкнув при обучении будущего оператора атомной станции с возможными аварийными ситуациями, его можно допустить к самостоятельной работе: ошибаться нужно при обучении, а не на работе. Для этого, конечно, необходимо провести предварительно большую исследовательскую работу не только технической стороны, но и динамики атомного реактора и станции (создав достаточно хорошую их математическую модель). И еще: в плане подчеркивания важнейшей эвристической роли общих абстрактных математических моделей я хотел бы обратить внимание на то, что понимание общих моделей обучения наталкивает на мысль о желательности к своему процессу обучения относиться критически, оценивая как бы со стороны его результаты и, в зависимости от этой оценки, корректировать свои дальнейшие действия. Именно эта общая идея побудила нас в разрабатываемой самообучающейся системе принятия решений в трудно формализуемых условиях ввести отдельный блок критики. Этот блок анализирует ошибки и подсказывает коррективы, которые нужно внести в алгоритм распознавания:
расширить описание объекта и как именно, запросить дополнительные обучающие данные и какие именно, изменить кодировку признаков, в каких случаях к ответам алгоритма можно относиться с полным доверием и в каких нельзя и др.
После высказанных общих соображений о процессе обучения и распознавания укажем, что же распознавание позволяет получить, например, для диагностики рака желудка, отделяющей его от других, сходных по симптомам, заболеваний: язвы, полипоза, гастрита, доброкачественной опухоли. Оказывается, что только по результатам иммунологического анализа крови, дающего девять чисел Xi, х2, ..., Яд — количеств в ней разных типов клеток (лейкоцитов, лимфоцитов, В-лимфоцитов и др.), можно с достоверностью порядка 98% выяснить, рак ли это. Диагноз "рак"или "не рак зависит от знака функции /(я, а), равной
/(я, а) = 0.02xi + 0.207х2 + 0.31хз + 0.75x4 + 0.618ж5+
+0.154х6 + 0.212ж7 + 0.403х8 - 0.492хэ - 0.5, который легко вычисляется по данным анализа крови.
ЛИТЕРАТУРА
Неймарк Ю. И. Математика как операционная система и модели // Соросовский Образовательный Журнал. 1996. №1. С. 82-85.
Rosenblatt F. The Perceptron, A Perceiving and Recognizing Automation / Project PARA, Cornell Aeronaut. Lab. Rep. №85-460-1. Jan. 1957.
Rosenblatt F. Two Theorems of Statistical Separability in the Perceptron, Proceedings of Symposium on the Mechanization of Thought Processes, London, 1959. P. 421-456.
Эшби У. P. Конструкция мозга. M.: ИЛ, 1962.
Розенблатт Ф. Принцип нейродинамики. М.: Мир, 1966..
Неймарк Ю. И., Баталова 3. С., Васин Ю. Г., Брейдо М. Д. Распознавание образов и медицинская диагностика. М.: Наука, 1972.
Неймарк Ю. И., Теклина Л. Г., Таранова Н. Н., Котельников И. В. Обучающаяся статистическая консультативная система. Межвузовский сборник "Динамика систем Изд. Нижегородского ун-та, 1995. С. 3-28.
Novikoff A. On Convergence Proofs for Perceptrons. Proceedings of Symposium on Mathimatical Theory of Automata. Polytechnik Institute of Brooklyn, 1963. V. XII.
Становление информатики в России
Д. А. Поспелов
Замечания по терминологии
История информатики в нашей стране (сначала СССР, а затем России) насыщена драматическими коллизиями и резкими изменениями приоритетов. Это ощущается даже в терминологии. Термин “информатика” для обозначения совокупности научных направлений, тесно связанных с появлением компьютеров и их стремительным вхождением в ноосферу, определяемую жизнедеятельностью людей, у нас относительно новый. Он получил “права гражданства” в начале 1980-х годов, а до этого, согласно определению, данному в Большой советской энциклопедии, информатика рассматривалась как “дисциплина, изучающая структуру и общие свойства научной информации, а также закономерности ее создания, преобразования, передачи и использования в различных сферах человеческой деятельности” [1, с. 1031].
Подобное определение связывало информатику с библиотековедением, библиографией, методами поиска информации в массивах документов. Когда в 1952 году был создан Институт научной информации АН СССР, позже преобразованный
в ВИНИТИ — Всесоюзный институт научной и технической информации, то он должен был стать головным академическим учереждением в области информатики.
То, что стало называться информатикой в начале 1980-х в нашей стране, было совершенно иным. Ближе всего содержание этого понятия подходит к тому, что в США и большинстве других стран называется “computer science”, т.е. “компьютерные науки”.
В [2] говорится, что “компьютерные науки” концентрируют свое внимание на различных аспектах, связанных с протеканием и использованием информационных процессов, с теми структурами, в которых представляется информация, и теми процедурами, которые используются при её переработке. Последнее связывает область “компьютерных наук” с теорией машин для переработки информации — компьютеров — и методами их использования в системах переработки информации.
Для термина “информатика” в [2] нет отдельной статьи, а есть лишь ссылки на термины: “компьютерные науки”, “компьютерное обучение” и ’’информационные науки”. Содержание понятия“информационные науки” в [2] полностью совпадает с толкованием термина“информатика” в БСЭ [11.
С начала 80-х содержание того, что скрывается за термином ’’информатика”, ближе всего к тому, что понимают французы, когда говорят о науке, носящей название informatique.
До этого совокупность научных направлений, называемых теперь информатикой, именовалась по-разному. Сначала объединяющим названием был термин“кибернетика”, затем на роль общего названия той же области исследований стала претендовать“прикладная математика”. Следы
этой разноголосицы хорошо видны в наименовании высших учебных заведений и научных институтов. Факультет в МГУ, готовящий специалистов в области информатики, носит название ’’Вычислительная математика и кибернетика”, а институты, ведущие исследования в данной области, могут называться и“Институт кибернетики Национальной АН Украины”, и“Институт прикладной информатики РАН”, и“Институт прикладной математики РАН”.
Поэтому, говоря об истории информатики в бывшем СССР и теперешней России, по сути, надо излагать историю отечественной кибернетики и частично прикладной математики и вычислительной техники. Именно так построена эта вводная статья.
Структура информатики
На протяжении полувековой истории информатики в ней неоднократно возникали и исчезали те или иные направления. В настоящее время ее структура, по-видимому, определилась. В нее входят следующие основные области исследования:
теория алгоритмов (формальные модели алгоритмов, проблемы вычислимости, сложность вычислений и т. п);
логические модели (дедуктивные системы, сложность вывода, нетрадиционные исчисления: индуктивный и абдуктивный вывод, вывод по аналогии, правдоподобный вывод, немонотонные рассуждения и т.п.);
базы данных (структуры данных, поиск ответов на запросы, логический вывод в базах данных, активные базы и т. п.);
искусственный интеллект (представление знаний, вывод на знаниях, обучение, экспертные системы и т. п.);
бионика (математические модели в биологии, модели поведения, генетические системы и алгоритмы и т. п.);
распознавание образов и обработка зрительных сцен (статистические методы распознавания, использование признанных пространств, теория распознающих алгоритмов, трехмерные сцены и т. п.);
теория роботов (автономные роботы, представление знаний о мире, децентрализованное управление, планирование целесообразного поведения и т. п.);
инженерия математического обеспечения (языки программирования, технологии создания программных систем, инструментальные системы и т. п.);
теория компьютеров и вычислительных сетей (архитектурные решения, многоагентные системы, новые принципы переработки информации и т. п.);
компьютерная лингвистика (модели языка, анализ и синтез текстов, машинный перевод и т. п.);
числовые и символьные вычисления (компьютерноориентированные методы вычислений, модели переработки информации в различных прикладных областях, работа с естественно-языковыми текстами и т. п.);
е системы человеко-машинного взаимодействия (модели дискурса, распределение работ в смешанных системах, организация коллективных процедур, деятельность в телекоммуникационных системах и т. п.);
нейроматематика и нейросистемы (теория формальных нейронных сетей, использование нейронных сетей для обучения, нейрокомпьютеры и т. п.);
использование компьютеров в замкнутых системах (модели реального времени, интеллектуальное управление, системы мониторинга и т. п.).
Эти области информатики возникли не одновременно. История информатики связана с постепенным расширением области ее интересов. Возможность расширения диктовалась развитием компьютеров и накоплением моделей и методов их применения при решении задач различного типа. Следуя историческим реалиям, мы в данной книге постараемся отразить эту особенность истории информатики.
Борьба за признание
Во второй половине 30-х годов в нескольких странах появились первые проекты электромеханических и электронных устройств, нацеленных на выполнение массовых вычислений. Первый проект, завершившийся созданием прообраза будущих вычислительных машин, был выполнен в США. К декабрю 1939 года Дж. Атанасов и К. Берри создали макет процессора, а в мае 1942 года первая в мире вычислительная машина начала действовать. Эти работы велись в условиях
секретности, что впоследствии породило судебное разбирательство по вопросу о приоритете с разработчиками машины ЭНИАК, созданной в США в период с 1943 по 1946 годы.
Однако именно с ЭНИАКом связано начало той вычислительной техники, которая породила сначала кибернетику, а затем и информатику. В этой машине впервые была реализована структура, предложенная Дж. фон Нейманом. Программа вычислений стала объектом, доступным для преобразования с помощью вычислительной машины. Так возникло программирование.
В нашу страну сведения о создании новых видов переработчиков информации поступили довольно быстро. Исходя из интересов страны (прежде всего из необходимости поддерживать высокий уровень военных разработок), в СССР начались работы по созданию отечественных вычислительных машин. В конце 30-х годов в Институте электротехники АН УССР под руководством С. А. Лебедева уже начиналась работа по созданию вычислительной машины, использующей двоичную систему счисления, но начавшаяся война прервала эти исследования [3]. После нее наступило время их продолжить. В 1951 году в Киеве заработала первая в континентальной Европе вычислительная машина — МЭСМ, созданная коллективом, возглавляемым С. А. Лебедевым.
Работы, имевшие для страны большое значение, как это было принято, поручались сразу нескольким организациям. Поэтому МЭСМ и вскоре последовавшая за ней БЭСМ не оказались одинокими. В 1952 году стали действовать машины М-1 и М-2, созданные в коллективе И. С. Брука, в 1953 году появился первый экземпляр ЭВМ“Стрела”, а с 1954 года началось семейство машин“Урал”, главным конструктором которого был Б. И. Рамеев |3,4].
Все фундаментальные исследования и инженерные разработки, которые могли использоваться в военной сфере, в СССР были скрыты от широкой общественности завесой секретности. Поэтому первая научная монография по теории ЭВМ и программированию [5] имела гриф и выдавалась лишь по предъявлении документа о допуске к государственным секретам.
Изданная в 1948 году книга американского математика Норберта Винера“Кибернетика или управление и связь в животном и машине” попала на полки с секретными изданиями по другой причине. Ее автор высказал идеи, не согласующиеся с официальными доктринами, пропагандируемыми в советском обществе.
Для Винера было абсолютно ясно, что многие концептуальные схемы, определяющие поведение живых организмов при решении конкретных задач, практически идентичны схемам, характеризующим процессы управления в сложных технических системах. И более того, он был убежден, что социальные модели управления и модели управления в экономике могут быть проанализированы на основе тех же общих положений, которые разработаны в области управления системами, созданными людьми.
Эти крамольные идеи не могли стать достоянием советских граждан, которым настойчиво внушался тезис марксистской философии о несводимости“высших форм” существования материи к“низшим формам”. Поэтому место книги Винера было однозначно определено — спецхран.
В этом состоит главная причина того, что у истоков развития кибернетики (информатики) в СССР стояли сотрудники различных закрытых ведомств и предприятий, в большинстве своем носившие военную форму. Забегая вперед,
отметим, что все первые книги в области кибернетики, вычислительных машин и программирования, выпущенные уже во второй половине 50-х годов без грифа секретности, были написаны военными. Этот нетривиальный для истории науки факт имел для отечественной информатики немаловажное значение. Если бы не активная наступательная позиция военных, поддержанная членами АН СССР, то идеологические концепции, охраняемые представителями консервативной философской элиты, задержали бы на много десятилетий развитие информатики, как это случилось с генетикой и другими неугодными придворной философии науками. Время для очередного разгрома — начало 50-х годов — было весьма подходящим.
Первой ласточкой стала статья, помещенная на страницах идеологического официоза“Вопросы философии” в марте 1950 года [6]. В ней критике были подвергнуты некоторые теоретические положения математической логики, противоречащие, по мнению авторов статьи, догмам материализма. Статья была откликом на публикацию переводов книг Д. Гильберта и В. Аккермана“Основы теоретической логики” (М.: Издательство иностранной литературы, 1947) и А. Тар- ского“Введение в логику и методологию дедуктивных наук” (М.: Издательство иностранной литературы, 1948). Редактором перевода и автором предисловия к первой из книг была С. А. Яновская, в издании и комментировании второй книги кроме нее участвовал еще Г. М. Адельсон-Вельский.
Они и послужили мишенью для идеологического разной са. Авторы работы [6] не скупятся на резкие высказыва- ния:“Классики марксизма-ленинизма дали нам ясные и совершенно достаточные указания для правильного понимания философских вопросов математики” (с. 331);“...изъятие вся-
кого содержания в пользу ’’чистой” и субъективной формы, творящей содержание, противоречит марксизму и науке” (с. 333);“Речь идет не о том, чтобы ’’ликвидировать” математическую логику, а о том, чтобы отсечь реакционную тенденцию в ней, извращения ее, отражающие идеологию враждебных нам классов” (с. 336). И, наконец:“Эти работы являются выражением примиренчества к идеализму в математике” (с. 337).
Редактору книг С. А. Яновской пришлось оправдываться за ’’идеологические просчеты”. Ее письмо по этому поводу помещено сразу же после текста погромного опуса (сс. 339-342). В этом же номере журнала помещена и статья, по-видимому, призванная смягчить впечатление от разгрома формального метода в логике. Она называется“О предмете формальной логики”. Автор этой статьи М. С. Строгович пишет:“Сейчас отношение к формальной логике изменилось коренным образом: указаниями товарища И. В. Сталина формальная логика восстановлена в своих правах. На основании постановления ЦК ВКП(б) преподавание ее введено в средних школах, а также во многих высших учебных заведениях” (стр. 309). Вождь, по-видимому, вспомнил о годах своей учебы в семинарии и упомянул о пользе логики. Но что дозволено“льву” не всегда дозволено остальным.
После математической логики настала очередь массированной атаки на те направления в физиологии, которые нарушали чистоту учения И. П. Павлова, объявленного марксистскими философами венцом учений о поведении животных и той части поведения человека, которая регулировалась его центральной нервной системой. В 1953 году наступила очередь кибернетики.
В четвертом издании“Краткого философского словаря”
(1954) в статье“Кибернетика” эта наука была определена как“реакционная лженаука, возникшая в США после второй мировой войны и получившая широкое распространение и в других капиталистических странах; форма современного механицизма” [7]. В унисон с этим ’’определением” звучат тексты рефератов статей по кибернетике, которые в эти годы публикуются в реферативном журнале“Математика” (кстати в инструкции, которой должны были руководствоваться авторы рефератов, было прямо сказано, что реферат должен излагать содержание работ абсолютно нейтрально, никакие оценочные суждения не должны иметь место, но, невидимому, Д. Ю. Панов, редактировавший эти рефераты, считал, что идеология превыше декларированных редакцией журнала принципов“невмешательства”).
Апофеозом наступления на кибернетику стала статья, напечатанная в пятом номере журнала“Вопросы философии” в 1953 году [8]. Она была помещена в разделе, носившем название“Критика буржуазной идеологии” и назы- валась“Кому служит кибернетика”. Написавший этот пасквиль, по-видимому чувствуя некоторый страх, скрылся под псевдонимом“Материалист”.
В конце концов неважно, кто именно и“по велению сердца” или“по .заданию сверху” написал этот донос. Его появление носило знаковый характер. Это была затравка для массового наступления *на кибернетику.
Как и статья, направленная против математической логики, статья против кибернетики разделяла технологический и теоретический аспекты. Все, что касалось развития вычислительной техники как таковой, когда вычислительные машины уподоблялись очень быстро работающим арифмометрам, объявлялось полезным и нужным для социалисти-
ческого отечества. В подобном качестве вычислительные машины ничем не отлйчались от устройств, создаваемых человеком для облегчения своего труда. Но когда речь заходит об использовании этих машин для моделирования различных процессов или для символьных преобразований, то натренированный на поиске идеологического криминала ум борца за чистоту марксистско-ленинского учения немедленно подавал сигнал опасности: ”По мнению Винера, деятельность вычислительных машин дает ключ к познанию самых разнообразных природных и общественных явлений. Эта в корне порочная идея послужила Винеру основанием для создания новой“науки” — кибернетики” [8, с. 212].
Итак, вычислительные машины не могут внести качественно новую струю в процесс познания окружающего мира. Чтобы эта мысль дошла до всех читателей статьи, автор формулирует ее еще раз:“Теория кибернетики, пытающаяся распространить принципы действия вычислительных машин новейшей конструкции на самые различные природные и общественные явления без учета их качественного своеобразия, является механицизмом, превращающимся в идеализм. Это пустоцвет на древе познания, возникший в результате одностороннего и чрезмерного раздувания одной из черт познания” [8, с. 218].
Набор ярлыков для кибернетики (пустоцвет, лженаука, идеологическое оружие империалистической реакции, порождение лакеев империализма и т. п.) свидетельствовал, что никакой патриотически настроенный ученый в СССР не может заниматься столь одиозной наукой. Надо было немедленно свертывать все исследования в этой области.
Но, как уже говорилось, практические задачи (и прежде всего задачи укрепления обороноспособности страны) требо-
вали не прекращения работ в области кибернетики, а расширения и активизации этих исследований. Это понимали дат же партийные чиновники из оборонного отдела ЦК ВКП(б) и отдела науки того же всесильного ведомства. И поэтому, когда один из первых отечественных специалистов по применению вычислительных машин в военной области А. И. Китов, математик с энциклопедическим стилем мышления А. А. Ляпунов и известный своими теоретическими работами, связанными с созданием атомной бомбы, математик С. Л. Соболев объединились как авторы статьи, в которой давался ответ“Материалисту”, и принесли ее в тот же жур- нал“Вопросы философии”, то:“Как ни странно, редколлегия спорить не стала. Единственное, что они попросили сделать, так это получить на опубликование статьи разрешение ЦК КПСС” [9].
В 50-х годах высшие чиновники Коммунистической партии никогда не действовали от своего имени. Все их директивы подкреплялись ’’мнением широких народных масс” или специалистов в определенной области. Поэтому в отделе науки ЦК ВКП(б), ознакомившись с текстом статьи в защиту кибернетики и“посоветовавшись кое с кем”, сказали, что инициатива авторов статьи своевременна, но хорошо бы заручиться поддержкой их точки зрения на кибернетику среди научной общественности страны.
А. И. Китов и А. А. Ляпунов организовали серию выступлений на научных семинарах в академических институтах, высших учебных заведениях и в организациях, в которых методы кибернетики могли бы принести практическую пользу. К этой деятельности подключились их коллеги по работе в Вычислительном центре Министерства обороны и других военных организациях: М. Г. Гаазе-Рапопорт, Н. А. Криниц-
кий, И. А. Полетаев и другие. В Московском университете идеи кибернетики нашли отклик у признанного в СССР авторитета в области математической логики А. А. Маркова, а в Институте автоматики и телемеханики эти работы были поддержаны М. А. Айзерманом, М. А. Гавриловым и А. А. Фельдбаумом. Известный специалист в области поведения животных Л. В. Крушинский, ознакомившись с текстом будущей статьи, занял позицию безусловной поддержки нового научного направления.
Сохранилась стенограмма одного из докладов. Он был прочитан А. А. Ляпуновым 24 июня 1954 года в Энергетическом институте АН СССР (текст доклада опубликован в данной книге) и назывался“0б использовании математических машин в логических целях”. Полемизируя с теми, кто буквально истолковывает способность машин к реализации творческих действий, Ляпунов показывает, что даже в тех случаях, когда внешне действия машины выглядят разумными и творческими (для иллюстрации он рассматривает задачу управления лифтами в высотном здании и гипотетическую в то время, но принципиально возможную задачу доказательства теорем в планиметрии), истинная творческая деятельность осуществляется не машиной, а человеком, составившим программу ее работы. Этот основной аргумент против необоснованной критики возможностей вычислительных машин Ляпунов обсуждает в своем докладе несколько раз.
Подготовка положительной реакции на дезавуирование кампании против кибернетики заняла около полутора лет. Не все проходило гладко и безболезненно. Я помню выступление А. А. Ляпунова на семинаре по машинной математике МГУ в 1954 году. Дискуссия, развернувшаяся после этого
выступления, в которой самое активное участие принимали университетские философы и биологи, была настолько горячей, что пришлось сделать два продолжительных перерыва, чтобы часть возражений против кибернетики снять в процессе личных контактов.
Где-то в начале 1955 года текст статьи С. Л. Соболева, А. И. Китова и А. А. Ляпунова попал в редакцию журна- ла“Вопросы философии”. На заседании редколлегии журнала ее содержание обсуждалось вместе со статьей“Что такое кибернетика” чешского философа Э. Кольмана, жившего тогда в СССР. Обсуждение носило, главным образом, позитивный и доброжелательный характер. За два года, прошедших со времени опубликования статьи“Материалиста”, в жизни страны произошли определенные перемены, сталинские методы управления наукой были уже непопулярны, а кибернетика получила массовую поддержку научно-технической интеллигенции. Обе статьи появились на страницах журнала в 1955 году [10, 11].
В этих статьях нет прямой полемики (^‘Материалистом”. Необходимость в ней отпала из-за отсутствия официальной поддержки негативного отношения к кибернетике. Поэтому в [10, 11], в основном, излагаются принципы кибернетики и поясняется практическая значимость исследований в этой области. Все возражения“Материалиста” снимаются без ссылки на высказывания из [8]. Например, в [10] на стр. 141 утверждается:“Следует подчеркнуть большое методологическое значение вопроса, поставленного кибернетикой, о необходимости обобщения, объединения в широком плане результатов и достижений различных областей науки, развивающихся в известном смысле изолированно друг от друга, например, таких областей, как физиология и автоматика,
теория связи и статистическая механика”. И далее на стр. 144:“Принципы работы электронных счетных машин вполне позволяют реализовать на этих машинах логические процессы, подобные процессу выработки условных рефлексов у животных и человека”. А чтобы вновь не звучали обвинения в механицизме, на той же стр. 144 говорится: ’’Следует ясно представлять коренное, качественное отличие процессов мышления человека от работы счетной машины”. Эта же мысль звучит, как рефрен и в самом конце статьи:“Следует вести борьбу также и против вульгаризации метода аналогий в изучении процессов высшей нервной деятельности, отвергая упрощенную, механистическую трактовку этих вопросов, тщательно исследуя границы применимости электронных и механических моделей и схем для представления процессов мышления”.
Философские размышления Э. Кольмана [11] подкрепляли основные положения статьи С. Л. Соболева и его соавторов. Написанная в традиционном для читателей философского журнала стиле, она привлекала на сторону кибернетики тех, кто должен был дать идеологическую оценку новой науки.
В СССР знали, что статьи, появившиеся в таком органе, как“Вопросы философии”, выражают официальную точку зрения. Одним из свидетельств этого явилось исключение погромного текста статьи "Кибернетика” при допечатке в 1955 году тиража 4-го издания ’’Философского словаря”. Борьба против кибернетики была в основном закончена, люди, отстаивавшие новую науку, победили.
Начальный период
К этому периоду можно отнести время с 1955 года до создания в 1959 году в АН СССР Научного совета по комплексной проблеме“Кибернетика”. За эти пять лет в СССР возникла инфраструктура, поддерживающая новое научное направление.
Своим возникновением она обязана А. И. Бергу, чей талант организатора науки позволил преодолеть все препоны и рогатки бюрократического государства. В лице адмирала Берга, в 1953-1957 годах занимавшего пост заместителя министра обороны СССР по радиоэлектронике, кибернетика обрела того человека, который обеспечил этой науке условия для ее становления и расцвета.
И. Берг начал свою деятельность не на пустом месте. К концу 1957, когда он освободился от поглощающих все время обязанностей крупного военного руководителя и смог начать полновесную научно-организационную деятельность, уже был заложен солидный фундамент под будущую инфраструктуру.
Продолжалась разработка новых вычислительных машин и развитие методов решения на них разнообразных задач. В 1948 году были созданы Институт точной механики и вычислительной техники АН СССР и Специальное конструкторское бюро Министерства приборостроения и средств автоматизации (СКВ 245). В них, а также в ряде других организаций АН СССР и различных ведомств (в лаборатории электросистем Энергетического института им. Г. М. Кржижановского (позднее - Институт электронных управляющих машин), НИИ электронных математических машин в Москве; лаборатории вычислительной техники Института математи-
ки АН УССР в Киеве (позже преобразованной в ВЦ АН УССР); Ереванском институте математических машин; Пензенском институте управляющих вычислительных машин), активно развивалась теория вычислительных машин, разрабатывалась технология программирования. Теоретические исследования активно проводились в Московском, Ленинградском и Киевском университетах, Институте автоматики и телемеханики АН СССР, в созданном в 1955 году Вычислительном центре АН СССР.
В 1950 году в ИТМиВТ АН СССР начал работать первый постоянный семинар по программированию, которым руководил Л. А. Люстерник. В 1952 году в МГУ была создана кафедра вычислительной математики (кафедру возглавил С. Л. Соболев), для студентов и аспирантов которой в 1952-53 учебном году А. А. Ляпунов впервые прочитал курс ’Принципы программирования”. В 1953 году в Отделе прикладной математики Математического института АН СССР был создан во главе с А. А. Ляпуновым отдел программирования [12]. В этом же году появилась первая доступная всем интересующимся этой областью книга по программированию [13]. В 1955 году был создан Вычислительный центр МГУ, специализирующийся на разработке и применении вычислительных методов для решения сложных научных и прикладных задач.
В конце 50-х годов был получен ряд результатов, стоящих на уровне мировых достижений.
Была разработана теория логического анализа и синтеза релейно-контактных, а позже и функциональных схем, в которой аппарат математической логики был использован в области технических наук. Начатые в 40-х годах М. А. Гавриловым в Институте автоматики и телемеханики АН СССР [14], эти работы были продолжены О. Б. Лупановым и С.
Яблонским в Отделе прикладной математики АН СССР. В результате этих исследований в СССР возникли две научные школы, сыгравшие важную роль в создании теории дискретных управляющих устройств и методов инженерного проектирования устройств такого типа (в частности, схем, узлов и устройств вычислительной техники).
В 1952-53 годах А. А. Ляпуновым был предложен операторный метод для описания программ [15]. Практически впервые был создан способ представления программ на обозримом уровне. Вместо неэффективного для человека задания программ в машинных кодах А. А. Ляпунов предложил формализованное представление высокого уровня. Особенно важным было то, что операторный метод позволял создать теорию синтаксических структур программ [16].
В 1953 году А. А. Ляпунов сформулировал постановку задачи автоматизации программирования. Эта оригинальная постановка была успешно использована в первых отечественных трансляторах, называвшихся тогда программирующими программами. Летом 1954 появилась программирующая программа ПП-1 (Отдел прикладной математики Института математики АН СССР), а в 1955 году — ее улучшенный вариант ПП-2. Чуть позднее была создана еще одна программирующая программа [17].
В 1953-54 годах Л. В. Канторович разработал технологию крупноблочного программирования, которая также давала обозримое описание программ и обеспечивала степень формализации, достаточную для исследования синтаксических структур программ и создания программирующих программ |18].
М. Л. Цетлин впервые поставил вопрос о возможности моделирования с помощью простейших технических средств
сложных форм поведения. Эти идеи послужили началом создания теории коллективного поведения технических систем, намного опередившей аналогичные исследования в других странах [19].
К середине 50-х годов у ведущих специалистов в области вычислительной техники было ясное представление о путях развития отечественной информатики. Примером может служить статья В. М. Глушкова, работавшего тогда в лаборатории вычислительной техники Института математики АН УССР в Киеве [20]. В середине 1957 года автор статьи четко определяет направления стратегических исследований в области информатики. По мнению В. М. Глушкова, основой прогресса развития вычислительных машин должна стать теория их работы, разработка методов автоматизации проектирования ЭВМ и развитие методов автоматизации программирования. Он подчеркивает важную роль исследований в области теории алгоритмов и теории конечных детерминированных и стохастических автоматов, принципиальное значение разработки методов символьных преобразований на ЭВМ (аналитических преобразований, доказательства теорем, машинного перевода), отмечает центральную роль, которую играет задача оптимизации программ (особенно для управляющих машин), а также указывает на обратное влияние развития вычислительных машин на дальнейшие работы в области вычислительной математики.
С 1953 года в нашей стране налажен серийный выпуск вычислительных машин. Первой в серию пошла“Стрела”, созданная в СКБ-245 под руководством Ю. Я. Базилевского. В 1958 году в серию пошла машина М-20, созданная в коллективе С. А. Лебедева в ИТМиВТ АН СССР. Эта машина сыграла большую роль в развитии программирования, а позже
на ее базе была создана транзисторная машина М-220. Таким образом, к началу 60-х годов были заложены теоретические и технические основы для развития информатики.
В Московском, Ленинградском и Киевском университетах началась подготовка специалистов по вычислительной математике, а в ряде технических высших учебных заведений появились курсы по вычислительной технике, а затем стали открываться кафедры вычислительной техники или вычислительных машин.
Свидетельством окончательного официального признания кибернетики стала статья“Кибернетика” в 51-м томе второго издания Большой Советской Энциклопедии, написанная А. Н. Колмогоровым. В ней нет и намека на ту травлю, которой подверглась эта наука всего несколько лет назад. Начало статьи необычно для советских изданий того времени, тем более для БСЭ, которая должна была стоять на страже советской науки, всячески выпячивать ее мировой авторитет и значимость:“Кибернетика - научное направление, задачи которого были сформулированы в работах американского ученого Н. Винера, опубликованных в 1948; по Винеру и его последователям, кибернетика есть наука о“связи”,“управлении” и“контроле” в машинах и живых организмах”. Далее в статье расшифровывается содержание понятий, взятых в кавычки в определении кибернетики, и устанавливается связь кибернетики с теорией информации, опирающейся на идеи К. Шеннона. Отголоском недавней борьбы за кибернетику выглядит абзац, по своему стилю выпадающий из общего стандартного для энциклопедий ’’академического” тона изложения :“Много дискутировавшийся вопрос о праве кибернетики на существование в качестве самостоятельной научной дисциплины сводится к вопросу о том, насколько существенны
общие черты всех процессов связи, управления и контроля, т. е. могут ли общие свойства этих процессов в машинах, живых организмах и их объединениях быть предметом достаточно содержательной единой теории. На этот вопрос следует ответить с полной определенностью утвердительно, хотя в направлении систематического построения кибернетики сделаны лишь первые шаги” [21].
Вскоре появились книги отечественных специалистов [2225]. В 1958 г. вышел“Сигнал” И. А. Полетаева. Как уже говорилось, все авторы первых отечественных книг по кибернетике были военными, работали в учебных заведениях, готовивших кадры для Министерства обороны. Академии имени Жуковского и Дзержинского в Москве, Академия имени Можайского в Ленинграде, Харьковское высшее авиационно-техническое училище и Киевское высшее инженерно-радиотехническое училище были первыми военными учебными заведениями, где преподавание кибернетики стало обязательным.
Важным событием было появление перевода основополагающей для кибернетики книги Норберта Винера. Первое издание [26] вышло с десятилетним опозданием относительно оригинала (с купюрами: все места, которые можно было интерпретировать как критику нашего строя или экономического уклада, были изъяты). Переводчиком книги был И. В. Соловьев, а редактором - Г. Н. Поваров, который в эти годы начал активно заниматься логическими методами анализа и синтеза схем. Позже книга была переиздана с учетом второго расширенного американского издания, появившегося в 1961 году, в более полном объеме [27]. Была издана и вторая книга Н. Винера, наделавшая в США в 1954 году много шума из-за своей направленности против многих сторон жизни
капиталистического общества [28].
Затем издаются переводы книг других зарубежных авторов [29-31]. Наконец, появились отечественные научнопопулярные книги, пропагандирующие идеи и достижения кибернетики [32, 33].
Не только военные, ио и политические руководители страны стали уповать на помощь вычислительных машин. Статья одного из создателей первых отечественных машин, помещенная в главном идеологическом органе партии [34], говорит о необходимости использования компьютеров в задачах планирования народного хозяйства. Это показывает, что недоверие к вычислительной технике и кибернетике в верхних эшелонах власти стало коренным образом меняться.
Но, пожалуй, главным событием этого времени стал выход в 1958 году первого выпуска“Проблем кибернетики” - детища А. А. Ляпунова и его единомышленников. Этот нарядный, в ярко-красной суперобложке том открыл собою серию из 41 сборника, во многом определивших пути развития теоретической кибернетики и того, что потом стало называться информатикой. До переезда Ляпунова в Новосибирск в 1962 году“Проблемы кибернетики” в значительной мере отражали интересы участников семинара по кибернетике, проходившего под его руководством, начиная с 1954-55 учебного года, на механико-математическом факультете МГУ. Первый выпуск содержал изложение идей доклада, прочитанного М. В. Келдышем, А. А. Ляпуновым и М. Р. Шура-Бурой на октябрьской сёссии АН СССР 1956 года [15].
Роль этого семинара в истории отечественной информатики огромна. На протяжении почти двадцати лет (до смерти А. А. Ляпунова в 1973 году) этот семинар во многом определял высокий уровень работ в области кибернетики. Как отме-
чзе^ся. в [35], всего было проведено 141 заседание семинара. В работе семинара принимали активное участие математики, физиологи, лингвисты, управленцы и представители других наук. Это был первый в истории нашей науки по-настоящему междисциплинарный семинар. Многие его участники в последующие годы стали крупными учеными в области информатики. Знакомство с темами докладов, прочитанных на семинаре (см. приложение к статье [35]), показывает, сколь широк был спектр интересов его участников.
Семинар был не только чисто научным мероприятием. А. А. Ляпунов использовал его возможности и для осуществления научно-организационной деятельности. На семинаре обсуждались рукописи новых книг отечественных авторов, принимались после обсуждения рекомендации по переводу наиболее интересных зарубежных книг (при этом, как правило, переводчики и редакторы переводов находились среди участников семинара), обсуждалась структура и научные задачи учреждений, которые должны были создаваться в области кибернетики. Не без поддержки (в той или иной форме) семинара увидели свет книги [36-39]. С 1960 года начал выходить ’’Кибернетический сборник”, в котором оперативно публиковались переводы наиболее интересных зарубежных статей по кибернетике. Во главе этого начинания стояли А. А. Ляпунов и О. Б. Лупанов. После переезда Ляпунова в Новосибирск Лупанов продолжил это весьма важное для оторванных от источников зарубежной информации специалистов СССР дело.
По образу и подобию“большого” семинара стали создаваться семинары по кибернетике и в других местах. Наиболее известным стал среди них семинар секции кибернетики при Ленинградском доме ученых. Эта секция была создана
в ноябре 1956 года, и ее первым председателем был Л. В. Канторович. Потом его на этом посту сменил Л. П. Крайз- мер, остающийся до настоящего времени бессменным председателем секции и проводимого ею семинара. Это наиболее долговечный кибернетический семинар в СССР.
В середине 50-х годов начал работать семинар по теории автоматов на физическом факультете МГУ [40], бессменным руководителем которого до своего преждевременного ухода из жизни был М. Л. Цеглин. Этот семинар стал центром, вокруг которого со временем сложилась отечественная школа в области коллективного поведения автоматов. Модели такого типа носили ярко выраженный кибернетический характер, а их исследование было немыслимо без специальных приемов моделирования на ЭВМ. В семинаре принимали активное участие не только физики, но и физиологи, программисты, математики. Неординарная и многогранная личность руководителя [41] привлекала к участию в работе семинара по поведению автоматов широкие круги научной общественности. Тематика семинара связывала между собой задачи логического анализа и синтеза схем с проблемами машинного моделирования и моделями поведения живых систем.
Чуть позже начал работать семинар в Киеве под руководством В. М. Глушкова. В его работе принимали участие медики, биологи и философы. Со временем от“большого” семинара отпочковался“малый” семинар, получивший назва- ние“чайкофского” (часть его заседаний, во время которых молодые участники семинара В. Г. Боднарчук, Ю. В. Капитонова, А. А. Летичевский, М. А. Спивак и другие решали задачи, поставленные перед ними руководителем семинара В. М. Глушковым, проходили на Крещатике в заведении, на- зывавшемся“Чай - Кофе”). На этом семинаре обсуждались
вопросы абстрактной теории автоматов, созданием которой в эти годы вместе со своими учениками активно занимался руководитель семинара.
Математическая логика заняла достойное место в математическом образовании. В 1958 году в МГУ была открыта первая в СССР кафедра математической логики. Кафедру возглавил А. А. Марков.
В эти годы было проведено несколько научных мероприятий, в программах которых предусматривались доклады и сообщения, посвященные решению задач в рамках кибернетического подхода. В октябре 1956 года состоялась Сессия АН СССР по научным проблемам автоматизации производства. На ней была дана положительная оценка роли кибернетики в решении практических задач автоматизации. Перед этим, в том же году, во время проведения Третьего всесоюзного математического съезда работала специальная секция кибернетики, на которой был сделан ряд докладов по программированию и теоретическим проблемам новой науки. Важное значение для дальнейшего развития кибернетики имела прошедшая в марте 1956 года в Москве Всесоюзная конференция“Пути развития советского математического машиностроения и приборостроения”. На ней было сделано несколько докладов, связанных с программированием и с использованием вычислительных машин для решения разнообразных задач. В феврале 1958 года в Баку прошло Всесоюзное совещание по вычислительной математике и применению средств вычислительной техники. В работе Всесоюзного совещания по вычислительной математике и вычислительной технике, проходившего в МГУ в ноябре 1959 года, в программе которого была и секция кибернетики, приняло участие свыше 2000 человек.
Хотя и с огромным трудом, отечественные специалисты в области информатики стали выезжать за рубеж для участия в научных мероприятиях в данной области. Из [35] можно узнать, что на семинаре А. А. Ляпунова о своих зарубежных поездках отчитывались члены советских делегаций, выезжавших на конгресс по кибернетике в Намюре в 1957 году, в США и Великобританию. На симпозиуме ’’Механизмы мыслительных процессов”, проходившем в ноябре 1958 года в Национальной физической лаборатории в Тедцингтоне, А. П. Ершов сделал два доклада:“0 работах в ВЦ АН СССР в области теоретического программирования” и“О работах в ВЦ АН СССР в области автоматизации программирования”. Эти доклады вызвали положительные отклики за рубежом. Достижения советской науки в области программирования получили весьма высокую оценку. На основе этих докладов А. П. Ершов подготовил по просьбе редколлегии известного в то время журнала“Ва1аша1юп” обзорную статью о программировании в СССР [42]. Эта статья была, наверное, второй после статьи [43] публикацией о достижениях отечественных специалистов в области информатики, напечатанной в зарубежном издании.
Признанием важности информатики стала защита диссертаций в этой области. Первой, по-видимому, была защищена кандидатская работа, написанная Э. 3. Любим- ским на тему“Об автоматизации программирования и методе программирующих программ” (1957). Вскоре за ней последовали защиты других специалистов:“О равносильности и преобразованиях схем программ” (Ю. И. Янов, 1958),“Матричный метод анализа схем и некоторые его приложения” (М. Л. Цеглин, 1958),“Операторные алгорифмы” (А. П. Ершов, 1961). Защиты диссертаций проходили на механико-
математическом и физическом факультетах МГУ, в Математическом институте АН СССР и в Институте математики с вычислительным центром СО АН СССР. Высокая марка научных советов этих ведущих учреждений обеспечивала серьезное отношение к выполненным работам.
Формирование инфраструктуры
В конце 1958 года А. И. Берг полу- чил“добро”о,?‘руководящих органов” на подготовку обоснования необходимости создания в нашей стране центрального научного института по кибернетике. А. И. Берг тут же начал серию консультаций с ведущими специалистами в этой области, и прежде всего с А. А. Ляпуновым, Л. В. Канторовичем, А. А. Марковым и В. М. Глушковым. К сожалению, вскоре между участниками консультаций возникли непреодолимые разногласия по основным направлениям работы будущего института и кадровым вопросам. Суть разногласий состояла в определении границ новой науки. Математики опасались, что слишком широкое и расплывчатое очерчивание поля деятельности кибернетики привлечет в нее специалистов, не владеющих математической культурой. Это привело бы к тому, что кибернетика из строгой математической науки (в предисловии к первому выпуску“Проблем кибернетики” прямо говорилось, что“...кибернетика по своим методам является наукой математической”) превратилась бы в науку с неопределенными методами исследования. Им противостояли сторонники взгляда на кибернетику (ими были в основном гуманитарии) как на научную методологию, носящую междисциплинарный характер. По мнению та-
ких специалистов, самые разнообразные науки (биология, химия, автоматика и т. и.) должны сделать совместный шаг к интегрированной картине мира, позволить создать всеобъемлющую философию научного познания, а также обогатить друг друга своими идеями, моделями и методами.
Эти споры послужили основой раскола сторонников кибернетики на два лагеря, которые в дальнейшем сосуществовали в условиях "вооруженного противостояния”. Подобное расхождение взглядов на кибернетику не было особенностью развития науки в СССР. Оно проявилось во всех странах, где кибернетика привилась. В США этому способствовала яростная критика книг и идей Винера. В Великобритании против расширенного истолкования кибернетики выступили физики, во Франции - математики.
В конце 50-х годов началась активная деятельность по созданию международных научных ассоциаций. Была сделана попытка образовать Международную федерацию кибернетики. Успехом она не увенчалась. Хотя федерация и возникла, но представлены в ней были далеко не все страны. Отсутствие в ней специалистов США и Великобритании не позволило этой ассоциации занять сколько-нибудь заметное место в мире. Куда большее влияние приобрели две другие федерации. В 1957 году возник ИФАК — Международная федерация по автоматическому управлению, а в 1962 году - ИФИП — Международная федерация по процессам переработки информации, ставшая преемницей Международной федерации кибернетики. В 1962 году, выступая на заседании Совета ИФИП, представитель СССР А. А. Дородницын предложил внести в будущий глоссарий терминов по процессам обработки информации два терминалеybernetics active” ^Cybernetics talkative” [44]. Себя автор, по-видимому, при-
числял не к тем, кто занимается ’’трепотливой кибернетикой”.
Все, кто интересовался кибернетикой всерьез, в эти годы размышляли о ее месте в системе наук и значении для дальнейшего развития наших знаний об окружающем мире. До нас дошли два ярких документа, отражающих подобные размышления. Это тезисы о кибернетике, написанные в январе 1957 года (тексты этих двух документов печатаются в настоящем издании). В первом документе, помеченном 16-17 января, Вяч. Вс. Ивбнов, М. К. Поливанов и В. А. Успенский, молодые единомышленники академика А. Н. Колмогорова, по его просьбе формулируют восемь тезисов, касающихся определения кибернетики, ее основных понятий, места кибернетики в системе наук и ее роли, заимствованных из книг Винера и других творцов новой науки, и на каждый тезис пишут собственный комментарий. Например, приводя определения кибернетики по Винеру и Куфиньялю, они предлагают свое определение кибернетики как науки об информации в том же смысле, в каком физика является наукой об энергии. Рассуждая о содержании кибернетики, авторы тезисов справедливо отмечают, что наука эта не представляет монолитного целого. Уже сейчас в ней видны две различные части: наука об аналогиях в живых и искусственных системах и наука о связи и информации.
В конце этого варианта“Тезисов” подчеркивается роль кибернетики в уменьшении энтропии в научной сфере, ее значение для структуризации научной терминологии и научных знаний. Комментарий к последнему тезису слегка ироничен и, очевидно, прямо адресуется Колмогорову: именно его следует в первую очередь понимать под ’’высоко организованной системой”, а не просто любого читателя.
Ответный документ Колмогорова, имеющий такое же на-
звание“Тезисы о кибернетике”, датирован 20-м января. В нем Колмогоров пишет о том, что в той части кибернетики, которая касается информации и связи, весь разговор может идти на уровне точных терминов и определений, но ограничивать этим кибернетику нельзя, нельзя превращать ее в математическую науку (эта позиция не совпадает с позицией редколле- гии“Проблем кибернетики”), исключать из нее разделы, для изложения которых пока пригоден лишь язык таких наук, как биология, физиология и психология. Колмогоровские тезисы и дополняют тезисы его корреспондентов, и полемизируют с ними (первично ли понятие информации, может ли существовать некодированная информация и т. п.). В конце мы видим, как из этой своеобразной кибернетической“переписки из двух углов” возникает строгий текст первого наброска начала статьи“Кибернетика” для БСЭ (написан вслед за тезисами, 24 января, и примыкает к ним).
Из-за разногласий по поводу содержания того, что кроется за названием новой науки — кибернетики, стало ясно, что вопрос о создании института кибернетики придется отложить. Нельзя было ставить под удар начинание, которое и так уже было встречено в штыки частью философов и, к сожалению, математиков и физиков, которым кибернетика казалась пристанищем не слишком хороших специалистов, занимающихся добыванием научного авторитета на основе“легковесных” результатов (аналогичная ситуация повторится и в начале становления работ в области искусственного интеллекта).
У Берга возникла идея начать с более простого, чем организация академического института. Он решает создать Научный совет при Президиуме АН СССР, который координировал бы исследования по кибернетике в СССР и одно-
временно вел бы научные исследования, что позволило бы в дальнейшем создать на базе Совета Институт кибернетики АН СССР. Президиум АН СССР отнесся к этой идее положительно и предложил А. И. Бергу сделать доклад, который мог бы служить основой для принятия решения об организации Совета по кибернетике.
Соответствующий документ был подготовлен коллективом специалистов в следующем составе: академик А. И. Берг (председатель комиссии), д.ф.-м.н. А. А. Ляпунов (зам. председателя), к.ф.-м.н. М. Л. Цеглин (ученый секретарь), к.филол.н. Н. Д. Андреев, к.т.н. Ю. Я. Базилевский, д.ф.-м.н. В. М. Глушков, к.филол.н. В. В. Ивбнов, чл.-корр. АН СССР Л. В. Канторович, к.т.н. И. А. Полетаев, д.т.н. В. В. Солодовников, чл.-корр. АН СССР В. А. Трапезников, к.ф.-м.н. С. В. Яблонский.
Документ начинается с попытки определения кибернетики: ’Кибернетика представляет собой теоретическую основу изучения процессов управления и строения управляющих систем”. Такая трактовка новой науки является доведением до логического завершения взглядов Н. Винера на это научное направление. По мнению составителей записки, объектом изучения кибернетики являются управляющие системы, где бы они ни возникали. Такая парадигма позволяла осуществлять перенос кибернетического подхода, моделей и методов в другие науки, позволяла говорить о технической, биологической, экономической, химической и т. п. кибернетике. В этом четко проявлялось строение новой науки: теоретическая часть есть теория абстрактных управляющих систем, а прикладные разделы интерпретируют ее теоретические модели в конкретных областях.
Сформулированная парадигма предопределила структу-
ру будущего доклада на Президиуме АН СССР. В первой части записки анализируются основные задачи, стоящие перед теоретической кибернетикой. Составители различают два уровня описания процесса управления: макроописание и микроописание. На макроуровне объект управления предстает в виде черного ящика. В этом случае процесс управления можно строить только на поведенческом уровне, все знания об объекте управления и его откликах на управляющие воздействия добываются лишь на основе внешнего наблюдения. Макроподход используется в теории информации, задачах построения кодов для тех или иных целей, в теории идентификации объекта управления. На уровне микроописания решаются задачи анализа поведения отдельных частей объекта, выявляются связи между частями и решаются проблемы синтеза с учетом целей, стоящих перед системой управления.
Далее сформулированные для теоретической части кибернетики задачи, возникающие на макро- и микроуровнях, интерпретируются в терминах физических, технических, биологических, лингвистических, экономических систем. Интерпретации сведены в обозримые таблицы, рассматривая Которые легко убедиться, что между различными науками можно на кибернетическом уровне установить явные аналогии.
Доклад А. И. Берга на заседании Президиума АН СССР 10 апреля 1959 года был успешным. Авторитет докладчика и прекрасно подготовленные текст доклада и иллюстративные материалы к нему сделали свое дело. Президиум АН СССР единогласно принял постановление об организации (пока на общественных началах, т. е. без штатных сотрудников) Научного совета по комплексной проблеме“Кибернетика” при Президиуме АН СССР. В деле борьбы за окончательное призна-
ние кибернетики в СССР была поставлена последняя точка.
Текст доклада был с незначительными сокращениями и изменениями опубликован в довольно странном для такого важного документа издании —“Морском сборнике” [45] (скорее всего свою роль сыграла близость А. И. Берга к Российскому флоту). Авторы статьи, ссылаясь на решения Июньского Пленума ЦК КПСС, сразу“берут быка за рога”:“В борьбе за дальнейший технический прогресс, за внедрение новой техники и технологии в социалистическое производство следует, по нашему мнению, отвести большую роль глубокой разработке и широкому внедрению кибернетики. Кибернетика должна быть поставлена на службу повышения эффективности деятельности советских людей и использована для решения трудных задач руководства нашим быстро развивающимся народным хозяйством. А для этого нужно создать школу советской кибернетики, свободную, с одной стороны, от ошибок буржуазной науки, выразившихся, в частности, в“одушевлении машины” и принижении роли человека, а с другой — от непонимания у нас значения и возможностей кибернетики” (с. 33). Далее это положение подкрепляется ссылками на преимущества общественного строя в СССР, которые позволяют ставить и решать управленческие задачи большого масштаба.
В 1959-1961 годах Совет, который возглавлял А. И. Берг, работал на общественных началах. Заместителем Берга стал Я. И. Хургин, научные интересы которого в то время лежали в области теории информации. М. Л. Цетлин исполнял функции ученого секретаря, А. А. Ляпунов, С. В. Яблонский, В. В. Ивбнов старались активно помогать только что родившемуся координирующему органу. За эти годы были ойределены задачи Совета, круг его обязанностей, наиболее эффективная
структура. Становилось ясно, что на общественных началах такое большое дело не поднять. А. И. Берг стал пробивать через руководство АН СССР и другие инстанции постоянные штаты. Он обосновывал их необходимость большими планами Совета по организации издательской деятельности и организации научных мероприятий в области кибернетики и применения вычислительных машин в различных областях человеческой деятельности.
Вновь сделался актуальным вопрос о создании специального института Академии наук, основной проблематикой которого стала бы кибернетика. А. А. Марков собрал с этой целью инициативную группу, заседание которой состоялось 25 июня 1960 года. На этом собрании присутствовали: Р. Л. Добрушин, В. В. Ивбнов, Н. А. Криницкий, Д. Г. Лахути, А. А. Ляпунов, А. А. Марков, И. А. Мельчук, Н. М. Нагорный, В. А. Успенский, С. К. Шаумян и А. И. Яглом. Обсуждалось два вопроса: профиль будущего института, его состав, название и технология организации института. Бросается в глаза большое число лингвистов и близких к ним специалистов в составе инициативной группы и полное отсутствие среди ее членов представителей технической кибернетики. Это произошло, конечно, не случайно. Незадолго до собрания инициативной группы Президиум АН СССР принял решение (так никогда и не осуществленное под влиянием все тех же ’’твердолобых философов”) об организации в Академии Института семиотики. Инициативная группа решила использовать этот факт и создать Институт семиотики и кибернетики или Институт кибернетики, в котором проблемы семиотики и структурной лингвистики занимали бы важное место.
Предполагалось, что институту такого профиля лучше не зависеть от гуманитарной общественности и следует
включить его организационно в состав Отделения физикоматематических наук АН СССР.
Как следует из стенограммы заседания инициативной группы (ее текст публикуется в данном издании), участники обсуждения вновь отстаивали позицию понимания кибернетики как математической науки, полностью исчерпывающейся применением вычислительных машин для решения невычислительных задач. Кроме того, лингвисты и математики не пришли к согласию и о взаимосвязи семиотики и кибернетики. Одни считали семиотику самостоятельной наукой, лишь частично пересекающейся с тематикой кибернетики, другие включали семиотику в состав кибернетики.
Письмо о результатах работы инициативной группы было послано А. И. Бергу. Руководитель Совета по кибернетике посчитал, что вряд ли стоит затевать какую-то деятельность по созданию нового института, когда уже существующий Совет может стать зародышем будущего учереждения. Надо только активизировать процесс выбивания штатного расписания для Совета. На это и направил А. И. Берг свои усилия и усилия своих помощников. Эти усилия увенчались первыми успехами к 1961 году. У Совета возник штат из трех человек. Кроме штатной должности заместителя председателя Совета, которую занял Я. И. Хургин, появились должности ученого секретаря и лаборанта. На первую из них по рекомендации Хургина попала С. С. Масчан. Выбор был безошибочным. Все время, пока Берг возглавлял Совет, С. С. Масчан обеспечивала всю организационную сторону его деятельности. Атмосферу непрестанного служения делу развития отечественной кибернетики и оценку личного вклада А. И. Берга в ее создание можно ощутить по воспоминаниям старейших работников Совета по кибернетике [46, 47].
В конце того же 1961 года в Киеве был создан Научный совет по комплексной проблеме“Кибернетика” при Президиуме АН УССР. Этот Совет возглавил В. М. Глушков. В 1962 году он стал директором организованного им при активной поддержке А. И. Берга Института кибернетики АН УССР, ставшего центром развития информатики на Украине. Чуть раньше создания этого института А. И. Берг сумел добиться от руководства Академии наук Грузии согласия на открытие в Тбилиси Института кибернетики АН ГССР (1960). Директором этого института стал В. В. Чавчанидзе. Затем были созданы институты такого же профиля и в других республиках СССР: Институт кибернетики АН ЭССР (1960) в Таллинне, Институт кибернетики АН АзССР (1965) в Баку, Институт технической кибернетики в Минске (1965), Институт кибернетики АН УзССР в Ташкенте (1966). В других республиках отделения, отделы и лаборатории кибернетического профиля возникли в структуре ранее существовавших академических институтов (в Молдавии это был Институт математики, в Киргизии - Институт автоматики, в Латвии — Институт электроники и вычислительной техники).
Расширение сферы влияния. На протяжении 60-х годов в нашей стране действовали две тенденции. Первая - широкое развертывание работ в области теории вычислительных машин, программирования и внедрение вычислительной техники в самые разные области. Вторая - начавшееся отставание от ведущих стран в области технологии создания новых поколений вычислительных машин. Если отечественные транзисторные машины 60-х годов (такие, как БЭСМ-6 или МИР-2) по своей архитектуре были на уровне передовых зарубежных образцов и в чем-то явно превосходили их, то элементная база, на которой эти ЭВМ были созданы, была для запад-
ных стран уже вчерашним днем. Транзисторы в массовом порядке заменялись интегральными, а потом и сверхбольшими интегральными схемами. К концу 60-х технологический разрыв в области вычислительных машин достигал уже 6-7 лет [48,49].
Этот разрыв в технологии на первых порах никак не сказывался на развитии теоретических основ информатики, не сдерживал творческие начинания специалистов, связанных по роду своей деятельности с разработкой и внедрением вычислительных машин. В эти годы в СССР быстрыми шагами развивалась космическая программа, происходило техническое перевооружение армии, решались крупные народнохозяйственные задачи (как известно, тогдашнее руководство страны всерьез обещало своим гражданам, что их внуки будут жить при коммунизме). В планах развития промышленности, сельского хозяйства, оборонной мощи страны вычислительным машинам отводилось немалое место. Не было недостатка в правительственно-партийных документах, подчеркивающих решающую роль, которую должны сыграть новые технологии, основанные на внедрении вычислительных машин, в Достижении глобальной цели - построения в СССР коммунистического общества. Интересные соображения о причинах такой эйфории в нашей стране в связи с надеждами на помощь кибернетики, высказываются в [50].
А. И. Берг принимал непосредственное участие в подготовке подобных документов. Работая над ними, он всегда привлекал к этому делу специалистов. Именно поэтому многие государственные программы и постановления тех лет несут на себе печать высокого профессионализма. Примером может служить Постановление ЦК КПСС и Совета Министров СССР 1959 года об ускорении и расширении производ-
ства вычислительных машин и внедрении их в науку и народное хозяйство, подготовленное комиссией, возглавляемой А. И. Бергом.
Научный совет по комплексной проблеме “Кибернетика” значительно расширил свои штаты и стал напоминать небольшой академический институт. В его составе работало больше десятка секций (теоретической кибернетики, технической кибернетики, кибернетики на транспорте, медицинской кибернетики и т. д.), каждая из которых возглавлялась авторитетными ведущими в данной области специалистами. Десятки членов секций поддерживали научные и организационные начинания Совета, а ученые секретари секций, состоявшие в штате Совета, обеспечивали тесный контакт аппарата Совета и его руководителя с научной общественностью.
Демонстрируя собравшимся на Юбилейную сессию Научного совета по комплексной проблеме“Кибернетика” таблицу, отражающую достижения Совета к концу 1967 года, А. И. Берг сказал:“...начиная с 1962 года, объем координируемых Советом работ возрос в 3 раза. Рост числа работ и количества научных организаций и ведомств, принимающих участие в исследованиях по проблеме“Кибернетика”, свидетельствует о насущной потребности в применении идей, методов и технических средств кибернетики в различных областях производственной и научной деятельности” [51, с. 22-23]. Вот как выглядела эта таблица.
1962
1963
1964-65
1966
1967-70
Количество тем в плане по проблеме“Кибернетика”
170
231
374
428
516
Количество научных ' организаций-исполнителей
Количество
29
61
96
133
184
ведомств-исполнителей
14
19
22
27
44
Далее докладчик подчеркнул важный мо- мент:“Количественный рост тематики имел своей основой глубокие качественные сдвиги. За этот период в нашей стране сложились важные новые направления кибернетики и ее приложений. К их числу можно отнести:
теорию управляющих систем;
теорию оптимального и помехоустойчивого кодирования информации;
теорию построения информационных систем;
теорию адаптивных систем; математическую теорию планирования эксперимента;
биокибернетику, медицинскую кибернетику, нейрокибернетику;
инженерную психологию;
применение кибернетики в обучении.
Начаты и успешно развиваются исследования в области теории больших систем, теории построения систем управления энергетическими и транспортными процессами, теории систем научно-технической информации, эвристического программирования и др.” [51, с. 23|.
Эти высказывания руководителя Совета по кибернетике требуют некоторых комментариев.
К середине 60-х годов среди ведущих специалистов в области кибернетики расхождения в очерчивании той области
знаний, с которой эта наука имеет дело, усилились. Весьма широкое йстолкование этой науки было характерно для А. И. Берга и ученых, группировавшихся вокруг него. В этом научном сообществе кибернетика понималась скорее не как наука, а как особая всеобъемлющая научная парадигма. Например в [52, с. 29] можно прочитать, что“кибернетика возникла как чрезвычайно широкое научное и техническое направление. С одной стороны, ее рождение было связано с конструированием и применением сложных автоматов, с автоматизацией производства, с электроникой и универсальными вычислительными машинами. С другой стороны, к кибернетике вели науки, издавна изучавшие процессы управления и переработки информации в конкретных областях, например, наука о жизни. И, конечно, мощный комплекс математических идей и теорий”. И далее [52, с. 40| ^Применение кибернетики во все большем круге наук и областей практической деятельности человека - знамение нашего времени. Идеи и методы кибернетики постепенно меняют лицо многих научных дисциплин. Это касается даже самой“самостоятельной” из наук — математики”.
Из этих цитат видно, что сторонники столь широкого взгляда на кибернетику рассматривают ее как новый философско-методологический подход к различным теоретическим и прикладным наукам. В более поздних работах тех, кто разделял подобное истолкование кибернетики, эта мысль выражена еще более отчетливо [53, 54|.
На другом полюсе находились те, кто связывал кибернетику с появлением и внедрением вычислительных машин, с теми изменениями в математике и смежных с нею областях, которые были порождены процессами решения задач на вычислительных машинах. Такая точка
зрения на кибернетику характерна, например, для редколлегии и авторов статей сборника“Проблемы кибернетики”. Если для сторонников широкого взгляда на кибернетику ее ключевыми словами были“управление” “обратная связь”,“энтропия”, то для тех, кто интерпретировал кибернетику более узко, такими ключевыми словами выступа- ли“алгоритм”,“программа”,“управляющая система”.
Создание двух международное организаций: IFAC и IFIP, как уже говорилось, характеризовало расхождения во взглядах на науки, связанные с появлением вычислительных машин. Специалисты инженерного профиля тяготели к ИФА- Ку, а математики и близкие к ним программисты и логики предпочитали ИФИП. И только Совет А. И. Берга еще долгие годы пытался интегрировать в своих рамках эти две группы специалистов.
Нападки на кибернетику со стороны философов практически прекратились. Как рецидив прошлого выглядела брошюра [55], автор которой все еще критиковал позицию Винера и особо отмечал философские“просчеты” в предисловии Э. Кольмана к последней книге Винера:“В. И. Ленин десятки раз повторял, что головной мозг есть орган мысли, что мысль есть функция мозга. Из этих ленинских высказываний вытекает два вывода: 1) сознанием, мышлением обладает лишь головной мозг человека; 2) между сознанием человека, как качественно высшей формой отражения материи, и другими формами отражения имеется не только общее, связь, • родство, но и коренное отличие. Отсюда следует, что неорганическая (мертвая) материя не может обладать сознанием. Поэтому в электронной машине нет и не может быть сознания, ибо она построена из неорганического материала” (стр. 11).
Но это были последние слабые отголоски давней бури. Новое поколение философов оценивало ситуацию с кибернетикой совсем с других позиций (см., например, [56]).
В начале 60-х критика достижений в области применения вычислительных машин возникла совсем с другой стороны. И. А. Полетаев опубликовал в газете“Комсомольская правда” шутливое письмо от имени некоторого инженера, отвергающего все культурные ценности прошлых“гуманитарных времен” и собирающегося заменить ’’старую культуру” новой, основанной на достижениях кибернетики и вычислительной техники. Все знавшие И. А. Полетаева, человека высокой культуры и интеллекта, конечно, восприняли это письмо как озорную мистификацию. Но, опубликованное газетой, оно породило известную дискуссию о“физиках” и“лириках”, в которую оказались втянутыми многие представители культуры и науки. Теперь уже не со стороны философов высказывалась критика по поводу ’’кибернетического экстремизма”. Против идеи“умных машин, чей интеллект сравним с человеческим” выступили широкие слои общественности.
В связи с этим потребовалось еще раз изложить на доступном уровне основные положения кибернетики. Эту задачу взял на себя популярный в то время журнал“Техника — молодёжи”. В десятом и одиннадцатом номерах за 1961 год была опубликована статья А. Н. Колмогорова, открывшая дискуссию“Проблемы кибернетики сегодня” [57]. Эта статья явилась изложением доклада Колмогорова на методологическом семинаре механико-математического факультета МГУ, сделанного 6-го апреля 1961 года [58]. Доклад начинается следующими словами: ’’Сегодняшний доклад задуман как доклад для математиков. Предполагается, что основные слушатели понимают те стороны дела, которые понимают имен-
но математики”. Но, несмотря на такое начало и последующее изложение, требовавшее для понимания определенной математической культуры, среди тех, кто по достоинству оценил глубокое содержание доклада, были не только математики. А. Н. Колмогоров своим выступлением привлек внимание широкой аудитории к вопросам, имеющим основополагающее значение для наук о живом и той части кибернетических исследований, которая позже получила назва- ние“искусственный интеллект”.
После статьи Колмогорова (ее текст был адаптирован к уровню читателей журнала) в“Технике - молодежи” было опубликовано еще немало статей и дискуссионных материалов. Наиболее важные из публикаций перечислены в |59|. Интересен комментарий, которым редакция журнала сопроводила сокращенное изложение доклада Эшби, прочитанного им на конференции по интеллектуальным машинам, проходившей незадолго до этого в США:“Статья печатается в порядке дискуссии, чтобы дать представление об интересных, хотя и наиболее крайних взглядах в кибернетике, существующих среди некоторых ученых на Западе”.
60-е и 70-е годы
На последующее двадцатилетие приходится расцвет кибернетических исследований в нашей стране. Активно развивались все ее направления. Во многих из них результаты советских специалистов или находились на мировом уровне, или опережали его. Перечислим те области, в которых достижения были наиболее впечатляющими.
После знаменитого Джорджтаунского эксперимента по
использованию вычислительной машины для перевода с одного языка на другой в СССР стремительно развернулись работы в этой области. Вскоре у нас были созданы первые версии программ для машинного перевода [36, 60]. Эти программы, базировались на тех достижениях лингвистики, которые были стимулированы новыми структурными и математическими подходами к проблемам анализа и синтеза языковых конструкций. В создании и изучении моделей подобного типа отечественные лингвисты находились на одном уровне с лингви- стйми из других стран. Это позволило тем, кто создавал первые программы для машинного перевода, занять лидирующее положение в этой области. И в дальнейшем, когда по многим позициям в области кибернетических исследований наша страна стала заметно отставать, работы в области машинного перевода отставались на мировом уровне [61].
Активное внедрение идей кибернетики в психологию мышления привело к появлению ряда интегральных моделей организации целесообразной человеческой деятельности. В Москве модели такого типа активно обсуждались на семинаре по психонике, работавшем с 1964 по 1970 год в Московском энергетическом институте [62]. В работе этого семинара участвовали психологи (Б. В. Зейгарник, В. П. Зинченко, В. Н. Пушкин и другие) и специалисты в области кибернетики. Тер- мин“психоника” был придуман по аналогии с терми- ном“бионика”, получившим в 60-е годы широкое распространение. (Состоялись три весьма многолюдные конференции по бионике, труды которых были опублико-
ваны [63-65], в Совете по кибернетике активно работала секция бионики, но к середине 70-х это направление практически перестало существовать). Психоникой предлагалось назвать область междисциплинарных исследований, целью которых должно было быть включение в искусственные системы моделей и процедур, аналогичных тем, которые характеризуют направленную жизнедеятельность высших животных и человека. Выявление их становилось задачей психологов. Другой задачей психоники было внедрение кибернетической методологии и математических моделей и методов в психологические исследования. В Институте кибернетики АН УССР, в Киеве, аналогичные проблемы обсуждались на семинаре Н. М. Амосова. В результате этих усилий было предложено несколько интегральных моделей мыслительной деятельности и целесообразного поведения, не потерявших свою актуальность до настоящего времени [68-69]. Их дальнейшее развитие [70-72] показало значимость подобных моделей для создания интеллектуальных систем.
Несколько иные подходы к поиску интегральных моделей целесообразной деятельности демонстрировали работы, возглавлявшиеся на биологическом факультете МГУ А. В. Напалковым [73-75]. В них доминировало понятие“эвристика”. В 60-е годы это понятие использовалось в большинстве исследований в области моделирования мыслительных процессов. Главенствовала идея о том, что основной процедурой в целесообразном поведении является использование разнообразных приемов (эвристик), позволяющих резко уменьшать пере-
бор альтернативных вариантов при поиске нужного решения. На изучение приемов сокращения перебора были направлены усилия как психологов, так и специалистов по использованию вычислительных машин для решения невычислительных задач. Подобное понимание сути процессов поиска решений задач в психологии соответствовало так называемой лабиринтной модели, известной еще с начала века. Первые успехи в области создания интеллектуальных программ, появившихся во второй половине 60-х годов, были связаны с использованием именно таких моделей. Они оказались весьма эффективными при программировании игровых задач и вообще задач, для которых основу составлял направленный поиск на множестве альтернативных вариантов. Отечественные специалисты разработали в эти годы эффективные методы целенаправленного сокращения перебора, что дало им возможность демонстрировать весьма эффективные программы для решения задач, требующих большого перебора [76, 77|. Успех известной шахматной программы“Каисса”, победившей на Втором чемпионате мира среди шахматных программ, целиком определялся удачным выбором эвристик, заимствованных из практики шахматистов, и эффективными методами сокращения перебора при анализе шахматных позиций [78|.
Распознавание образов в 60-е и первой половине 70-х давало возможность для разработки интересных и практически полезных программ. Поэтому в СССР работы по созданию процедур распознавания и программ, основанных на них, привлекали многие коллективы специ-
алистов. Пожалуй, наиболее яркие достижения в этой области, во многом превосходящие зарубежные результаты, были получены в коллективах, возглавлявшихся М. М. Бонгардом и Ю. И. Журавлевым, а также в нескольких коллективах, работавших в Институте проблем управления АН СССР (ранее - Институт автоматики и телемеханики). Задача распознавания образов имеет два этапа. На первом этапе надо выбрать набор признаков, обеспечивающих разбиение объектов на нужные классы. На втором - найти эффективную процедуру классификации по заданным признакам. До М. М. Бонгарда усилия направлялись на реализацию второго этапа распознавания, в предположении, что удачный выбор признаков уже сделан. Но основная трудность задач распознавания образов скрыта как раз на первом этапе их решения. Заслугой Бонгарда и его сотрудников явилось создание процедур выявления характеристических признаков на основе индуктивного обучения. Результаты этой работы отражены в монографии [79], ставшей на длительное время собранием идей и методов в задачах распознавания образов. Лишь через 6-7 лет после выхода этой книги стали появляться аналогичные результаты за рубежом. В Институте проблем управления распознаванием образов занималось несколько групп. В трех из них были разработаны методы, по праву вошедшие в мировую копилку процедур распознавания. Это метод потенциальных функций, метод статистических оценок и метод разделения классов с помощью системы гиперплоскостей [80-82]. Весьма значительный вклад в теорию распознавания образов внесли работы Ю. И. Журавлева и его учени-
ков [83, 84]. Впервые в мировой практике в них была дана точная постановка задачи распознавания образов и возникла возможность строго оценивать эффективность тех или иных алгоритмов распознавания и подбирать для конкретной задачи наиболее эффективный алгоритм. Школа Ю. И. Журавлева до настоящего времени удерживает лидирующее положение в мировом сообществе в этой области информатики.
Модельная теория мышления, развитая в работах В. Н. Пушкина, послужила основой для разработки метода ситуационного управления большими системами. Этот метод, возникший во второй половине 60-х годов [85], во многом предвосхитил технологию решения задач в системах, опирающихся на знания (такая технология возникла в исследованиях по искусственному интеллекту лишь в середине 70-х в экспертных системах). С помощью метода ситуационного управления удалось решить ряд практических задач, и его использование продолжается до настоящего времени [86, 87]. Значение работ по ситуационному управлению в нашей стране весьма велико. Большое количество специалистов, занимавшихся развитием этого подхода и применением его для решения практических задач (за десятилетие активности“ситуационного движения” в 1967-77 годах было проведено около двух десятков конференций, симпозиумов и школ, через которые прошли несколько сот специалистов), оказалось подготовленным к немедленному переходу к технологиям искусственного интеллекта, как только они появились в начале 70-х годов.
После успехов в области создания трансляторов ТА-1,
ТА-2 и ’’Альфа” в 1964-65 годах, отечественные исследования в области автоматизации программирования продолжали сохранять высокий темп развития. В Москве, Новосибирске и Киеве работали коллективы, обеспечивавшие высокий уровень соответствующих программных продуктов [12]. В СССР был создан алгоритмический язык РЕФАЛ, в основе которого лежала теоретическая модель процесса, реализуемого нормальными алгоритмами Маркова [90]. Его использование в нашей стране позволило создать ряд оригинальных программных продуктов, не имеющих аналогов за рубежом. К сожалению, РЕФАЛ испытал судьбу многих отечественных находок. За рубежом его не признали по соображениям, далеким от науки, а в нашей стране после вынужденной эмиграции его создателя он использовался лишь небольшой частью программистов и постепенно утратил свои позиции. Сходная судьба и у языков программирования семейства АНАЛИТИК, созданных в Институте кибернетики АН УССР для ЭВМ серии“МИР”. Эти машины, по существу, были первыми персональными ЭВМ (к сожалению, тогдашняя элементная база не позволяла свести их габариты к настольным). Но несмотря на передовые принципы, заложенные в структуру и функции языков семейства АНАЛИТИК [91], они также не стали достоянием мирового сообщества программистов, хотя иностранные эксперты достаточно высоко оценивали достижения программирования в СССР [92-94]. К сожалению, к началу разработок ЭВМ третьего поколения (60-е годы) в нашей стране не возникла парадигма программной совместимости. Талантливые разработчики ЭВМ и программного обеспечения
для них работали разобщенно, вне рамок какой-либо государственной программы и требований стандартизации. Это привело сначала к потере темпа, потом к отставанию и, наконец, к роковому для отечественной информатики копированию в СССР и странах Восточной Европы разработок фирмы ИБМ. После этого наши достижения в области программирования, операционных систем, языков программирования практически сходят на нет, что и отмечается зарубежными экспертами [95-98].
• Исследования в области параллельного программирования в СССР имеют длинную историю. Их начало относится к середине 60-х годов, когда в Институте математики СО АН СССР (Новосибирск) и в Московском энергетическом институте возникли первые коллективы, заинтересовавшиеся теорией параллельных процессов в вычислительных системах, состоящих из однородных или неоднородных машин. Со временем в этих организациях сложились известные школы специалистов в области параллельных вычислительных процессов. Первые монографии по теории вычислительных систем и параллельных вычислений вышли в нашей стране с большим опережением аналогичных изданий за рубежом [99, 100]. Отечественные специалисты первыми в мировой науке дали постановку и предложили первые решения таких задач, как сегментация алгоритмов и программ, планирование выполнения больших программ на вычислительных системах, динамическое диспетчирование потока программ и сегментов программ, асинхронная организация протекания процессов [101-
103]. В это время было предложено несколько оригинальных моделей для параллельных вычислений, заново переоткрытых потом в США и других странах. В работах [104, 105] отражен дальнейший этап развития работ по параллельным процессам в Новосибирске и частично в других организациях СССР.
Со второй половины 60-х кибернетические модели управления и методы решения сложных задач на ЭВМ стали активно внедряться в реальные системы управления самого различного уровня. Это начинание было активно поддержано правительством в виде значительного финансирования государственных программ по созданию автоматических систем управления предприятиями, отраслями, регионами и общегосударственными системами. Программы развития сетей передачи и обработки информации, которые должны были охватить всю страну, увязывались с глобальной идеологической программой построения коммунистического общества. Эти ’’наполеоновские” планы не были подкреплены необходимой технической базой и были обречены на неудачу. Но, как ни странно, некоторая польза от этого движения все-таки была. Были созданы многие десятки отраслевых и региональных институтов, вычислительных центров на предприятиях и в различных организациях, что потребовало массовой подготовки специалистов, способных работать во вновь создаваемых учере- ждениях. Была организована подготовка специалистов по автоматизированным системам управления разного профиля, что позволило позже сделать информатику массовой профессией. И, наконец, были получены но-
вые результаты в области информатики и управления в больших технических, экономических, организационных и социальных системах, которые вошли в научный оборот [106].
Работы в области обработки изображений всегда несколько отставали в нашей стране от передового фронта на Западе, что, в частности, может быть объяснено слабостью технической базы для таких работ в нашей стране. На этом фоне особняком стоит цикл исследований, проведенных в Институте проблем передачи информации АН СССР под руководством В. С. Файна [107]. Возглавляемому им коллективу впервые в мировой практике удалось решить проблему компьютерного моделирования динамических процессов (в частности, процессов старения и омоложения), протекающих в биологических объектах. В некотором смысле эти достижения не превзойдены в мировой информатике до сих пор.
Еще в одной довольно специфической области кибернетических исследований наша страна долгое время лидировала - это область использования ЭВМ для анализа и синтеза музыкальных произведений. Эти успехи связаны с неутомимой деятельностью Р. X. Зарипова, сумевшего не только догнать по уровню исследований пионеров этой области - ученых США, но и значительно опередить их достижения [108]. И позже исследования Р. X. Зарипова постоянно определяли ’’планку” мирового уровня [109].
Все перечисленные достижения отечественной информатики в 60-70-х годах проходили на фоне высокой активности научного сообщества в нашей стране. Повсеместно работали семинары и научные школы, проходили многочисленные и, как правило, многолюдные конференции, симпозиумы и совещания, нарастал поток издаваемой в области кибернетики литературы, возникали новые институты и подразделения кибернетического профиля в ранее существовавших организациях.
Большую объединительную роль играли Всесоюзные симпозиумы по кибернетике, которые проводились Институтом кибернетики АН ГССР. С 1961 по 1981 год состоялось девять таких симпозиумов, на которых обсуждалась практически вся тематика кибернетических исследований [1Ю|.
Это двадцатилетие было временем расцвета научных школ в области кибернетики. Школы возникали там, где был лидер, способный увлечь своих коллег в неизведанные тогда области. Некоторые школы, не успев возникнуть и заявить о себе, в силу разных причин столь же быстро исчезали, не оставляя после себя сколько-нибудь заметных следов. Но были школы, определившие на долгие годы направление развития тех или иных областей кибернетики.
Школа А. А. Ляпунова. О роли этой школы в развитии отечественной кибернетики мы уже говорили. Время ее расцвета приходится на конец 50-х и 60-е годы. Личность ее лидера определяла широкий круг проблем, интересовавших ее участников. Математические вопросы биологии, теория игр и принятия решений, оптимизационные задачи, формализация процессов программирования и автоматизация программирования - далеко не полный перечень того, что обсуждалось на семинаре Ляпунова в МГУ, а затем в Новосибир-
ске. Это скорее была не школа в традиционном понимании этого термина, а широкое научное движение, лидер которого сумел привлечь в кибернетику множество ярких специалистов. Материалы, помещенные в этой книге, характеризуют многие грани этого уникального в истории отечественной кибернетики научного движения.
Школа М. А. Гаврилова. Эта школа сыграла решающую роль в развитии логического подхода к анализу и синтезу дискретных систем управления. По времени возникновения это первая“кибернетическая” школа в нашей стране. В середине 50-х М. А. Гаврилов организовал семинар в тогдашнем Институте автоматики и телемеханики АН СССР (ныне Институт проблем управления РАН), из участников которого формировался костяк школы.
Начиная с зимы 1964 года стали проводиться два раза в год знаменитые Гавриловские школы, на которых определялись основные направления исследований в области решения теоретических и практических задач логического проектирования различных устройств. Уровень школы был весьма высок и определял лидирующее ее положение в мире. В 70-х годах члены этого“незримого колледжа” первыми начали создавать системы автоматизированного проектирования дискретных систем управления. Участниками школы стали практически все ведущие специалисты в этой области в нашей стране и ряде стран Восточной Европы (лишь в Румынии в эти годы была школа, возглавлявшаяся Г. Мойсилом, чей уровень приближался к уровню школы Гаврилова). До начала 80-х годов результаты, полученные в этом сообществе, определяли мировой уровень соответствующего научного направления.
Школа Гаврилова пережила уход из жизни своего основателя и идеолога и продолжает (правда, не столь активно) действовать и сейчас [111]. В разное время от базовой школы отпочковались самостоятельные научные школы, специализирующиеся в тех или иных направлениях (наиболее известными из них являются школы А. Д. Закревского, В. Г. Лазарева, В. А. Горбатова).
Школа О. Б. Лупанова — С. В. Яблонского. Если в школе Гаврилова основное внимание уделялось созданию практических методов анализа и синтеза дискретных устройств, то работавшая на базе механико-математического факультета МГУ школа, основанная С. В. Яблонским и его учеником, вскоре выросшим в крупного ученого, О. Б. Лупа- новым, сосредоточила свое внимание на теоретических проблемах, связанных с использованием логических моделей в практических задачах. Основными достижениями этой школы, обеспечившими выход на мировой уровень, стали работы по оценкам сложности синтезируемых схем, работы по доказательству полноты различных логических исчислений и теории логических тестов. Последнее направление, смыкающееся по своим методам с методами распознавания образов, породило в рамках данной школы дочернюю школу, во главе которой стал Ю. И. Журавлев. О достижениях этого научного коллектива уже говорилось.
Достижения школы чаще всего публиковались в сбор- нике“Проблемы кибернетики”. Постепенно этот сборник (после смерти А. А. Ляпунова) стал органом школы Лупанова- Яблонского.
Школа В. М. Глушкова. Об этой весьма продуктивной школе, сложившейся на базе Института кибернетики АН УССР и возглавлявшейся ярким и разносторонним уче-
ным В. М. Глушковым, также неоднократно упоминалось выше. Особо впечатляющими достижениями этой школы, оказавшими влияние на соответствующие исследования за рубежом, были работы по алгебраической теории автоматов, языкам программирования для символьных преобразований и доказательства теорем. Журнал“Кибернетика”, издаваемый ИК АН УССР, был главным местом, где помещали свои результаты участники этой школы. Развиваемая под руководством Глушкова концепция аппаратной реализации языков программирования высокого уровня, воплощенная в серийных машинах“МИР” и в замысле нереализованного проекта машины“УКРАИНА” [112], на много лет опередила аналогичные решения за рубежом.
Школа М. Л. Цетлина — М. М. Бонгарда. Оба имени уже упоминались в тексте данной статьи. Вокруг этих двух ярких и самобытных лидеров объединились математики, программисты, физиологи, инженеры и физики. Основной круг интересов участников школы концентрировался вокруг проблем моделирования в биологии, физиологии, медицине и этологии. Достижения этой школы в области индуктивного формирования понятий, моделей зрения, моделей роста тканей и коллективного поведения во многом недостижимы для западной науки и по сей день.
Участники школы в течение десятка лет в 60-х годах регулярно встречались (как правило, под Ленинградом, что послужило появлению названия“Комаровские школы”, хотя Комарове далеко не всегда было местом фактического проведения школы) и обменивались полученными за это время результатами. Трагический уход из жизни руководителей школы, произошедший на небольшом интервале времени, прекратил деятельность этого многообещающего сообщества
ученых.
Поток публикаций по кибернетической тематике настолько возрос, что потребовалось начать выпуск специальных журналов, которые могли бы информировать научную общественность о новых результатах. С 1963 года выхо- дят“Известия АН СССР. Техническая кибернетика”. В этом журнале стали публиковаться работы, связанные с применением кибернетических подходов и компьютеров в системах управления сложными техническими объектами. Здесь же публиковались статьи по логическим методам анализа и синтеза схем, по применению автоматных моделей для решения разнообразных задач, распознаванию образов. В какой-то мере тематика этого журнала дублировалась в имевшем по- чтенный“докибернетический” возраст журнале"Автоматика и телемеханика”, который явно“перестроился” на тематику технической кибернетики.
В Киеве с 1965 года стал выходить уже упоминавшийся журнал ”Кибернетика”, основным содержанием которого были статьи по теоретическим вопросам кибернетики и программированию. Долгие годы этот журнал занимал нишу, связанную с теорией программирования, языками программирования и технологиями создания различных программных продуктов. С большим опозданием в 1975 году был основан журнал“Программирование”, который стал ведущим отечественным журналом в этой области.
Новые информационные технологии
С начала 70-х годов стремительно развивается новое научное направление - искусственный интеллект. Сначала круг
его интересов охватывает лишь вопросы, связанные с моделированием интеллектуальной деятельности, но постепенно в сферу приложений искусственного интеллекта втягиваются практически все направления информатики. Даже такие традиционные для информатики направления, как системное программирование или вычислительные модели, с течением времени стали обогащаться идеями, порожденными в ходе работ в области искусственного интеллекта (использование логических методов доказательства правильности программ или обеспечение интерфейса на профессиональном естественном языке с пакетами прикладных программ - лишь два примера такого обогащения).
С 80-х годов можно считать, что технология решения задач, опирающаяся на идею использования знаний о предметной области, где возникла задача, и знаний о том, как решаются подобные задачи, характерная для работ по интеллектуальным системам, стала основной парадигмой для современной информатики |113, 114]. Но это уже относится к тому периоду, который наступил после завершения в середине 70-х начального этапа развития информатики в нашей стране |И5|.
Нам же осталось сказать совсем немного. Свообразным знаком завершения начального этапа развития кибернетики, превращения ее в ’’респектабельную” научную дисциплину явилось издание в середине 70-х двухтомной энциклопедии по кибернетике и толкового словаря по кибернетике |116, 117]. Обе работы были подготовлены и выпущены в свет по инициативе В. М. Глушкова, привлекшего к работе над этими книгами многих специалистов не только из руководимого им Института кибернетики АН УССР, но и из других ведущих в этой области организаций страны. После смерти В. М.
Глушкова“Словарь по кибернетике” был выпущен повторно [118|.
(Через несколько лет, как бы знаменуя новый этап в развитии информатики, вышли толковый словарь по искусственному интеллекту, трехтомный справочник по искусственному интеллекту и энциклопедический словарь по информатике, в котором разделы "Кибернетика” ^‘Искусственный интеллект” входят наряду с другими разделами в состав информатики [119-121].)
В 1986 году вышел сборник с символическим названи- ем“Кибернетика. Становление информатики” [122]. Он открывался статьями тогдашнего президента АН СССР А. П. Александрова и вице-президента Е. П. Велихова, в которых говорилось об определяющем значении информатики для развития человеческого общества в грядущем столетии. В этом же сборнике помещены статьи наиболее авторитетных ученых и организаторов науки в области информатики. Основная идея всех авторов состоит в том, что информатика уже оторвалась от своей прародительницы кибернетики и стала самостоятельной научной дисциплиной. Характеризуя информатику 80-х годов, А. П. Ершов пишет:“...этот термин снова, уже в третий раз, вводится в русский язык в новом и куда более широком значении - как название фундаментальной естественной науки, изучающей процессы передачи и обработки информации” (с. 29), и далее на той же странице информатика определяется как“наука об информационных моделях, отражающих фундаментальное философское понятие“информация””.
Термин“информатика” в 80-е годы получает широкое распространение, а термин“кибернетика” постепенно исчезает из обращения, сохранившись лишь в названиях тех институтов,
которые возникли в эпоху“кибернетического бума” конца 50х - начала 60-х годов. В названиях новых организаций тер- мин“кибернетика” уже не используется.
Вместо заключения
Информатика сейчас настолько глубоко пронизала все сферы человеческой жизни, что никакой обзор ее теперешнего состояния не может расчитывать на какую-то полноту, он всегда останется фрагментарным и будет отражать субъективные пристрастия составителя. Но наша задача - не обзор того, чт.е. информатика сегодня, а попытка восстановить тот путь, который отечественная информатика прошла за полвека, отделяющие нынешнее время от начала эпохи компьютеров, без которых люди уже не представляют своей жизни.
ЛИТЕРАТУРА
А. И. Михайлов, А. И. Черный, Р. С. Гиляревский. Информатика // Большая Советская энциклопедия, 3-е изд., т. 10. М.: Советская энциклопедия, 1972, сс. 348350.
Encyclopedia of Computer Science. 3rd Edition. A. Ralston, E..D. Reilly (Eds.). New York: Van Nostrand Reinhold, 1993.
И. А. Апокин. Развитие вычислительной техники и систем на ее основе // Новости искусственного интеллекта, 1994, №1, сс. 26-69.
Б. Н. Малиновский. История вычислительной техники в лицах. Киев: Наукова думка, 1995.
Л. А. Люстерник, А. А. Абрамов, В. И. Шестаков, М. Р. Шура-Бура. Решение математических задач на автоматических цифровых машинах. Программирование для быстродействующих электронных счетных машин. М.: Издательство АН СССР, 1952.
В. П. Тугаринов, Л. Е. Майстров. Против идеализма в математической логике // Вопросы философии, 1950, №3, сс. 331-339.
Краткий философский словарь, под ред. М. Розенталя, П. Юдина, 4-е изд., дополненное и исправленное. М.: Государственное издательство политической литературы, 1954, сс. 236-237.
Кому служит кибернетика // Вопросы философии, 1953, №5, сс. 210-219.
В. Нескоромний. Человек, который вынес кибернетику из секретной библиотеки // Компьютерра, 18.11.1996, ? 43, с. 44-45.
С. Л. Соболев, А. И. Китов, А. А. Ляпунов. Основные черты кибернетики // Вопросы философии, 1955, №4, сс. 136-148.
Э. Колъман. Что такое кибернетика? // Вопросы философии, 1955, №4, сс. 148-159.
А. П. Ершов, М. Р. Шура-Бура. Становление программирования в СССР. Начальное развитие // Препринт ВЦ СО АН СССР №12, 1976; А. П. Ершов, М. Р. Шура- Бура. Становление программирования в СССР. Переход ко второму поколению языков и машин // Препринт ВЦ СО АН СССР №13, 1976.
М. Уилкс, Д. Уилер, С. Гилл. Составление программ для электронных счетных машин. М.: Издательство
иностранной литературы, 1953.
М. А. Гаврилов. Теория релейно-контактных схем. Анализ и синтез структуры релейно-контактных схем. М.; JI.: Издательство АН СССР, 1950..
А. А. Ляпунов. О некоторых общих вопросах кибернетики // Проблемы кибернетики, 1958, вып. 1, сс. 5-22.
А. А. Ляпунов, Ю. И. Янов. О логических схемах программ // Проблемы кибернетики, 1958, вып. 1, сс. 4674.
А. П. Ершов. Программирующая программа для быстродействующей электронной счетной машины. М.: Издательство АН СССР, 1958.
Л. В. Канторович, Л. Т. Петрова, М. А. Яковлева. Об одной системе программирования // Пути развития советского математического машиностроения и приборостроения. Всесоюзная конференция, часть III. М.: ВИНИТИ, 1956, сс. 30-36.
М. Л. Цетлин. Исследования по теории автоматов и моделированию биологических систем. М.: Наука, 1969.
В. М. Глушков. О некоторых задачах вычислительной техники и связанных с ними задачах математики // Украинский математический журнал, 1957, №4, сс. 369376.
А. Н. Колмогоров. Кибернетика // Большая советская энциклопедия, 2-е изд., т. 51. М.: Большая советская энциклопедия, 1958, сс. 149-151.
А. В. Китов. Цифровые вычислительные машины. М.: Советское радио, 1956.
И. А. Полетаев. Сигнал. М.: Советское радио, 1958.
Ю. И. Соколовский. Кибернетика настоящего и будущего. Харьков: Харьковское книжное издательство, 1959.
Л. И. Китов, Н. Л. Криницкий, П. Н. Комолов. Элементы программирования. М.: Издательство Артиллерийской инженерной академии, 1956.
Н. Винер. Кибернетика или управление и связь в животном и машине. М.: Советское радио, 1958.
Н. Винер. Кибернетика или управление и связь в животном и машине. 2-е изд. М.: Советское радио, 1968.
Н. Винер. Кибернетика и общество. М.: Издательство иностранной литературы, 1958.
Цинъ Сюэ-сэнъ. Техническая кибернетика. М.: Советское радио, 1956.
П. Косса. Кибернетика. М.: Издательство иностранной литературы, 1958.
У. Р. Эшби. Введение в кибернетику. М.: Издательство иностранной литературы, 1959.
Н. Е. Кобринский, В. Д. Пекелис. Быстрее мысли. М.: Молодая гвардия, 1959.
JI. Теплое. Очерки о кибернетике. М.: Московский рабочий, 1959.
И. Брук. Электронные вычислительные машины - на службу народному хозяйству // Коммунист, 1957, №7, сс. 124-127.
М. Г. Гаазе-Рапопорт. О становлении кибернетики в СССР // Кибернетика: прошлое для будущего. Этюды по истории отечественной кибернетики. Теория управления. Автоматика. Биокибернетика. М.: Наука, 1989, сс. 46-85.
О. С. Кулагина. Некоторые теоретические вопросы машинного перевода. М.: Математический институт АН СССР, 1958.
Е. А. Жоголев, Г. С. Росляков, Н. П. Трифонов, М. Р. Шура-Бура. Система стандартных подпрограмм. М.: Государственное издательство физико-математической литературы, 1958.
Л. Н. Королев. Некоторые вопросы теории машинного словаря. М.: ИТМиВТ, 1959.
А. И. Китов, Н. А. Криницкий. Электронные цифровые машины и программирование. М.: Государственное издательство физико-математической литературы, 1959.
В. Л. Стефанюк. От автоматов М.Л.Цетлина к искусственному интеллекту (этапы и вехи, или как это было) // Новости искусственного интеллекта, 1995, №4, сс. 5692.
В. В. Иванов. Из истории кибернетики в СССР. Очерк жизни и деятельности М. Л. Цеглина // Вопросы кибернетики. Кибернетика и логическая формализация. Аспекты истории и методологии. М.: Научный совет по комплексной проблеме“Кибернетика” АН СССР, 1982, сс. 166-190.
Andrei Р. Ershov. Automatic Programming in the Soviet Union // Datamation, 1959, V. 5, N. 4, pp. 14-20.
F. Bryzgalin. USSR Struggles with Electronic Computers // Petroleum Engineer, V. 27, August, 1955, p. A58.
А. А. Дородницын. Информатика: предмет и задачи // Кибернетика. Становление информатики, М.: Наука, 1986, сс. 22-28.
А. И. Берг, А. А. Ляпунов, С. В. Яблонский. Теоретические и практические проблемы кибернетики / / Морской сборник, 1960, №2, сс. 33-56.
Е. В. Маркова. Жил среди нас необыкновенный человек: академик А. И. Берг // Академик Аксель Иванович Берг (К столетию со дня рождения). М.: Государственный Политехнический музей, 1993, сс. 26-64.
С. С. Масчан. Последние годы жизни академика А. И. Берга // Академик Аксель Иванович Берг (К столетию со дня рождения). М.: Государственный Политехнический музей, 1993, сс. 65-75.
S. Е. Goodman. Computing and the Development of the Soviet Economy // Soviet Economy in a Time of Change. Washington: Government Printing Office, 1979, pp. 524553.
W. B. Holland. Soviet Computing, 1969: A Leap into the Third Generation? // Datamation, 1969, V. 15, N. 9, pp. 55-60.
Л. P. Грэхэм. Естествознание, философия и науки о человеческом поведении в Советском Союзе. М.: Политиздат, 1991.
А. И. Берг. Вступительное слово на открытии Юбилейной сессии Научного совета по комплексной пробле- ме“Кибернетика” АН СССР // Кибернетика и научнотехнический прогресс (к 75-летию академика А. И. Берга). М.: Знание, 1968, сс. 18-27.
А. И. Берг, Б. В. Бирюков. Кибернетика и научнотехнический прогресс // Кибернетика и научнотехнический прогресс (к 75-летию академика А. И. Берга). М.: Знание, 1968, сс. 28-48.
А. И. Берг, Б. В. Бирюков, И. Б. Новик, А. Г. Спиркин. Кибернетика — методологические проблемы // Вестник АН СССР, 1971, №9, сс. 45-54.
А. И. Берг, И. Б. Новик, В. Н. Свинцицкий, В. С. Тюх- тин. Кибернетика против теологии / / Науки о неорганической природе и религия. М.: Наука, 1973, сс. 101— 115.
С. Г. Иванов. Некоторые философские вопросы кибернетики. Л.: Общество по распространению политических и научных знаний РСФСР, Ленинградское отделение, 1960.
3. Равенский, А. Уёмов, Е. Уемова. Машина и мысль. М.: Госполитиздат, 1960.
А. Н. Колмогоров. Автоматы и жизнь (изложение Н. Г. Рычковой) // Техника — молодежи, 1961, №10, сс. 16-19; №11, сс. 30-33.
А. Н. Колмогоров. Автоматы и жизнь // Кибернетика ожидаемая и кибернетика неожиданная. М.: Наука, 1968, сс. 10-29.".
Н. Г. Бруевич. Автоматизация умственного труда // Техника — молодежи, 1961, №11, сс. 30-33; №12, сс. 2227; С. А. Стебаков. Можно вывести уравнения здоровья // Там же, 1961, №12, сс. 22-25; Э. Колъман. Могут ли машины обладать психикой? // Там же, 1962, №1, сс. 24-26; П. Кузнецов. Химическая кибернетика // Там же, 1962, №2, сс. 22-25; И. И. Артоболевский, А. Е. Кобринский. Живое существо и техническое устройство // Там же, 1962, №2, сс. 22-26; А. Берг. Кибернетику — на службу коммунизму // Там же, 1962, №3, сс. 2426; №4, сс. 30-32; А. Кондратов. Рождение одной идеи.
Контуры новой науки — искусствометрии // Там же, 1962, №5, сс. 28-31; В. М. Глушков. Сделать кибернетику подлинным помощником умственной деятельности человека // Там же, 1962, №6, сс. 28-30; У Р. Эшби. Что такое интеллектуальная машина? // Там же, 1962, №6, сс. 31-33.
И. А. Мельчук, Р. Д. Равин. Автоматический перевод. 1949-1963. М.: ВИНИТИ, 1967.
И. А. Мельчук. Исследования по автоматическому переводу в 1970-1974 годах // Институт русского языка АН СССР. Предварительные публикации, 1975, вып. 67, сс. 1-88.
Д. А. Поспелов. Семинар по психонике // Новости искусственного интеллекта, 1991, №1, сс. 31-36.
Бионика. М.: Наука, 1965.
Вопросы бионики, М.: Наука,1967.
Проблемы бионики, М.: Наука, 1973.
В. Н. Пушкин. Оперативное мышление в больших системах. М.; Л.: Энергия, 1965.
В. Н. Пушкин. Эвристика - наука о творческом мышлении. М.: Политиздат, 1967.
Н. М. Амосов. Моделирование мышления и психики. Киев: Наукова думка, 1965.
Н. М. Амосов. Искусственный разум. Киев: Наукова думка, 1969.
В. Н. Пушкин. Психология и кибернетика. М.: Педагогика, 1971.
Д. А. Поспелов, В. Н. Пушкин. Мышление и автоматы. М.: Радио и связь, 1972.
Н. М. Амосов. Алгоритмы разума. Киев: Наукова думка, 1979.
Л. А. Абатурова, А. В. Напалков, Л. А. Парфенова. Алгоритмический анализ работы мозга и оптимизация процесса обучения. М.: МГУ, 1966.
А. В. Напалков, Н. В. Целкова. Информационные процессы в живых организмах. М.: Высшая школа, 1974.
Е. А. Александров. Основы теории эвристических решений. Подход к изучению естественного и построению искусственного интеллекта. М.: Радио и связь, 1975.
А. Л. Брудно. Грани и оценки для сокращения перебора вариантов // Проблемы кибернетики, 1963, выл. 10, сс. 141-150.
М. В. Донской. О программе, играющей в шахматы // Проблемы кибернетики, 1974, вып. 29, сс. 169-200.
Г. М. Адельсон-Вельский, В. Л. Арлазаров, М. В. Донской. Программирование игр. М.: Наука, 1978.
М. М. Бонгард. Проблема узнавания. М.: Физматгиз, 1967.
М. А. Айзерман, Э. М. Браверман, Л. И. Розоноер. Метод потенциальных функций в теории обучения машин. М.: Наука, 1970.
В. Н. Вапник, А. Я. Червоненкис. Теория распознавания образов. Статистические проблемы обучения. М.: Наука, 1974.
А. Г. Аркадьев, Э. М. Браверман. Обучение машины классификации объектов. М.: Наука, 1971.
Ю. И. Журавлев. Об алгебраическом подходе к решению задач распознавания или классификации // Проблемы кибернетики, 1978, вып. 33, сс. 5-68.
Ю. И. Журавлев. А. А. Ляпунов и становление кибернетики в нашей стране // А. А. Ляпунов. Проблемы теоретической и прикладной кибернетики. Новосибирск: Наука, 1980, сс. 4-17.
Д. А. Поспелов. Ситуационное управление. Теория и практика. М.: Наука, 1986.
Ю. И. Клыков. Ситуационное управление большими системами. М.: Энергия, 1974.
А. А. Башлыков. Проектирование систем принятия решений в энергетике. М.: Энергоатомиздат,1986.
Б. В. Гнеденко, В. С. Королюк, Е. Л. Ющенко. Элементы программирования. М.: Физматгиз, 1961.
Е. А. Жоголев, Н. П. Трифонов. Курс программирования. М.: Наука, 1964.
В. Ф. Турчин, В. И. Сердоболъский. Язык РЕФАЛ и его использование для преобразования алгебраических выражений // Кибернетика, 1969, №3, сс. 58-62.
В. М. Глушков, Т. А. Гринченко, А. А. Дородницына. Алгоритмический язык АНАЛИТИК-74. Киев: Институт кибернетики АН УССР, 1977.
S. Е. Goodman. Software in the Soviet Union: Progress and Problems // Advances in Computers, 1979, V. 18, pp. 231-287.
G. Rudins. Soviet Computers: A Historical Survey // Soviet Cybernetics Review, 1970, N. 1, pp. 6-44.
P. Wolcott, S. E. Goodman. High-Speed Computers of the Soviet Union // IEEE Computer, 1988, September, pp. 32-41.
N. С. Davis, S. Е. Goodman. The Soviet Bloc”s Unified System of Computers // Computing Surveys, 1978, V. 10, N. 2, pp. 93-122.
S. E. Goodman. Technology Transfer and the Development of the Soviet Computer Industry // Trade, Technology and Soviet-American Relations (Ed. B. Parrot). Bloomington: Indiana University Press, 1985, pp. 117-140.
S. E. Goodman, W. K. McHenry. Computing in the U.S.S.R.: Recent Progress and Policies // Soviet Economy, 1986, V. 2, N. 4, pp. 327-354.
N. Wade. Computer Sales to U. S. S. R.: Critics Look For Quid Pro Quo // Science, 1974, February 8, V. 183, N. 4124, pp. 499-501.
Э. В. Евреинов, Ю. Г. Косарев. Однородные универсальные вычислительные системы высокой производительности. Новосибирск: Наука, 1966.
Д. А. Поспелов. Введение в теорию вычислительных систем. М.: Советское радио, 1972.
А. Б. Барский. Параллельные процессы в вычислительных системах: планирование и организация. М.: Радио и связь, 1990.
Б. А. Головкин. Параллельные вычислительные системы. М.: Наука, 1980.
Апериодические автоматы. Под ред. В. И. Варшавского. М.: Наука, 1986.
N. N. Mirenkov. Parallel language developments in Russia // Computing & Control Engineering Journal, 1993, February, pp. 37-44.
Ya. I. Fet, D. A. Pospelov. Parallel Computing in Russia II Parallel Computer Technology. Proceedings of the
3rd International Conference: РаСТ-95, St. Petersburg, Russia, 1995. (Lecture Notes in Computer Science, 1995, V. 964, pp. 464-476).
В. M. Глушков. Введение в АСУ. Киев: Техника, 1972.
В. С. Файн. Алгоритмическое моделирование формообразования. М.: Наука, 1975.
Р. X. Зарипов. Кибернетика и музыка. М.: Наука, 1971.
Р. X. Зарипов. Машинный поиск вариантов при моделировании творческого процесса. М.: Наука, 1983.
М. Г. Гаазе-Рапопорт. Всесоюзные симпозиумы по кибернетике в Грузии // Новости искусственного интеллекта, 1991, №4, сс. 82-119.
О. П. Кузнецов. Гавриловские школы: жизнь после смерти // Новости искусственного интеллекта, 1996, №2, сс. 88-92.
С. Б. Погребинский, 3. Л. Рабинович. Проблематика реализации в ЭВМ языков высокого уровня и общие принципы их структурной интерпретируемости. Киев: Знание, 1982.
Г. С. Поспелов. Искусственный интеллект — основа новой информационной технологии. М.: Наука, 1988.
Д. А. Поспелов. История искусственного интеллекта до середины 80-х годов // Новости искусственного интеллекта, 1994, №4, сс. 74-95.
Д. А. Поспелов. Новые информационные технологии — это те ключи, которые откроют нам путь в новое общество // Новости искусственного интеллекта, 1994, №2, сс. 57-76.
Энциклопедия кибернетики в двух томах (отв., ред. В. М. Глушков). Киев: Украинская советская энциклопедия, 1974.
Словарь по кибернетике (под ред. В. М. Глушкова). Киев: Главная редакция Украинской советской энциклопедии, 1979.
Словарь по кибернетике (под ред. В. С. Михалевича). 2-е изд., Киев: Главная редакция Украинской советской энциклопедии, 1989.
Толковый словарь по искусственному интеллекту / Авторы-составители А. Н. Аверкин, М. Г. Гаазе- Рапопорт, Д. А. Поспелов. М.: Радио и связь, 1992.
Искусственный интеллект. Справочник в трех томах (под ред. В. Н. Захарова, Э. В. Попова, Д. А. Поспелова, В. Ф. Хорошевского). М.: Радио и связь, 1990.
Информатика. Энциклопедический словарь (под ред. Д. А. Поспелова). М.: Просвещение, 1994.
Кибернетика. Становление информатики. М.: Наука, 1986 (А. 77. Александров. Задача до конца столетия, сс. 6-10; Е. П. Велихов. Информатика — актуальное направление развития советской науки, сс. 10-21; А. А. Дородницын. Информатика: предмет и задачи, сс. 2228; А. П. Ершов. Информатика: предмет и понятие, сс. 28-31; В. С. Михалевич, Ю. М. Каныгин, В. И. Гриценко. Информатика — новая область науки и практики, сс. 31-45; Г. С. Поспелов. Искусственный интеллект — новая информационная технология, сс. 106-121; А. Г. Ивахненко. Искусственный интеллект —“ядро” информационных систем будущего, сс. 121-128).
Глава V.
Приложения
Кафедры кибернетического профиля ВУЗов
Санкт-Петербурга
Получить высшее образование по специальности связанной с кибернетикой можно во многих вузах Санкт- Петербурга. Ниже приводится список кафедр кибернетического профиля.
Санкт-Петербургский государственный университет
Кафедра теоретической кибернетики
(http: //www. math. spbu. ru/ ru/mmeh/ Chair s/dep_r21. html)
Кафедра теории систем управления электрофизической аппаратурой (http: //www. apmath. spbu. ru
/ru/structure/depts/tsuefa/)
Кафедра теории управления
(http://www.apmath.spbu.ru/ru/structure/depts/tu/)
Кафедра математической теории моделирования систем управления
(http: //www. apmath. spbu. ru/ru/ structure/depts/mtmsu/)
Кафедра математической теории микропроцессорных систем управления (http: //www. apmath. spbu. ru
/ru/structure/depts/mtmpsu/)
Санкт-Петербургский государственный университет информационных технологий, механики и оптики
Кафедра систем управления и информатики (автоматики и телемеханики) (http://csi.ifmo.ru/)
Кафедра информационно-навигационных систем
(http://www.elektropribor.spb.ru/IFMO/)
Санкт-Петербургский государственный электротехнический университет
Кафедра Системы автоматического управления (http://www.eltech.ru/kafedrs/fea_sau/)
Кафедра автоматики и процессов управления
(http: //www. eltech. ru/kaf edr s/apu/index. htm)
Кафедра автоматизированных систем обработки информации и управления
(http: //www. eltech. ru/kafedrs/asoiu/kaf _asoiu. htm)
Кафедра робототехники и автоматизации производственных систем
(http: //www. eltech.ru/kafedrs/RAPS/Fea_raps. htm)
Кафедра корабельных систем управления
(http: //www. eltech. ru/kaf edrs/KSU/fea_ksu. htm)
Кафедра лазерных измерительных и навигационных систем
(http: //www. eltech. ru/kaf edrs/anum/index. htm)
Санкт-Петербургский государственный технический университет
Кафедра Системный анализ и управление
(http://ww.unilib.neva.ru
/rus/stu/fac_pages/8/sac/sac.html)
Кафедра автоматики и вычислительной техники
(http://aivt.ftk.spbstu.ru/)
Кафедра систем автоматического управления
(http://saugtu.nord.nw.ru/)
Санкт-Петербургский государственный университет аэрокосмического приборостроения
Кафедра управление и информатика в технических системах
Кафедра Робототехнические и электромеханические системы
Петербургский государственный университет путей сообщения
Автоматика и телемеханика на железнодорожном транспорте
технический университет
Кафедра системы обработки информации и управления (http: //www. bstu. spb. su
/about/education/kafedra/i3.shtml
Кафедра радиоэлектронные системы управления (http: //wim. bstu. spb. su
/about/education/kafedra/i4.shtml
Кафедра информационные системы и компьютерные технологии (http: //www. bstu. spb. su
/about/education/kafedra/i5.shtml
Кафедра мехатроника и робототехника (http: //www. bstu. spb. su
/about/education/kaf edra/nl. shtml
Кафедра конструирование и производство
приборов систем управления
(http: //www. bstu. spb. sii
/about/education/kafedra/n2. shtml
Кафедра автономные информационные и управляющие системы
(http: //www. bstu. spb. su
/about/education/kafedra/n5. shtml
Санкт-Петербургский институт машиностроения
(ЛМЗ-ВТУЗ)
Кафедра электротехники, вычислительной техники и автоматизации
(http://www.pirn.sp.ru/210200.HTM)
Санкт-Петербургский государственный
морской технический университет
Кафедра судовой автоматики и измерений
(http: //wire. smtu. ru/rus/seai/general/history. htm)
Кафедра систем автоматического управления и бортовой вычислительной техники
(http: //www. fmpsmtu. spb. ru/kaff. php#k35)
Кафедра корабельных автоматизированных комплексов и информационно-управляющих систем
(http: //www. f mpsmtu. spb. ru/kaff. php#klO)
Интернет-ресурсы по кибернетике, информатике и их истории
Здесь приведены ссылки на Интернет-ресурсы, содержащие интересные материалы по кибернетике, информатике и их истории. Как известно, Интернет является не застывшей, а развивающейся системой и поэтому со временем некоторые ссылки могут стать недействительными. Однако полезные вещи имеют тенденцию где-то сохраняться, и поэтому стоит поискать “пропавший” ресурс через поисковую систему (Яндекс, Google, и др.)
История информатики в России.
http://cshistory.nsu.ru/
Сайт представляет собой постоянно актуализируемую базу исторических материалов и документов. На март 2005 г. он содержал несколько тысяч статей, документов, фотографий, относящихся ко всем основным событиям, фактам и фигурам из истории отечественной информатики и кибернетики. Основная часть этих материалов получена из малодоступных источников, таких, например, как личные архивы выдающихся советских ученых-кибернетиков.
Норберт Винер.
Кибернетика, или управление и связь в животном и машине, http://grachev62.narod.ru/Cybern/index.htm
Классическая книга, провозгласившая в 1948 году появление новой науки — кибернетики (с персонального сайта М. Н. Грачева).
Норберт Винер.
Кибернетика и общество.
http://grachev62.narod.ru/wiener/cybsoc.htm
(с персонального сайта M. H. Грачева).
Очерки истории информатики в России.
Составители Д. А. Поспелов, Я. И. Фет.
Новосибирск: НИЦ ОИГГМ СО РАН, 1998
http://cshistory.nsu.ru/obj251/INTERFACE.htm
Книга содержит статьи и документы, относящиеся к периоду зарождения кибернетики и информатики в России. В неё включены работы ведущих специалистов, в которых дается анализ путей развития кибернетического движения в нашей стране, воспоминания участников тех событий, очерки о наиболее значительных людях и научных школах того времени, переиздание ключевых статей тех лет. Вводная статья Д. А. Поспелова “Становление информатики в России” перепечатана в настоящем сборнике.
Полетаев И. А. “Сигнал”. Сов.Радио, 1958. •
http: //vivovoco. rsl. ru/W/BOOKS/SIGNAL/CONTENT. HTM
Репринтное издание первой в нашей стране монографии о кибернетике.
Кибернетика
(статья из Краткого философского словаря, 1954).
http://www.ibmh.msk.su
/vivovoco/W/PAPERS/BIO/CYBER.HTM
В этой статье кибернетика была определена как “реакционная лженаука, возникшая в США после второй мировой войны и получившая широкое распространение и в других капиталистических странах”.
Виртуальный компьютерный музей.
http: //www. computer-museum. ru/
Материалы по истории вычислительной техники и истории развития программного обеспечения, истории компьютерных игр, книги и компьютерная пресса и т.д.
История кибернетики и вычислительной техники
http://www.prometeus.nsc.ru
/archives/exhibit2/hiscyber.ssi
Библиография с XIX в. по 2003 г, около 200 книг и статей.
Малиновский Б. Н., История вычислительной техники в лицах. Киев, 1995.
http://lib.ru/MEMUARY/MALINOWSKIJ/0.txt
Книга посвящена жизни и творчеству первосоздателей отечественной цифровой электронной вычислительной техники — С. А. Лебедева, И. С. Брука, Б. И. Рамеева, В. М. Глушкова, Н. Я. Матюхина, М. А. Карцева и др. Книга включает записки В. М. Глушкова о своем творческом пути в вычислительной технике и кибернетике, своеобразную исповедь, которую тяжело больной ученый продиктовал своей дочери в последние девять дней, когда еще был в сознании.
Касаткин В. Н. “Азбука кибернетики”
М., “Молодая гвардия”, 1-е изд. 1968г.
http://www.sccenter.ru/cyber/index.htm
В книге в легкой и доступной форме рассказано о системах счисления, алгебре высказываний, логических операциях, их свойствах и об элементах логических машин — основе всей существующей сегодня вычислительной техники. Автор — талантливый педагог Валентин Николаевич Касаткин с начала 1960-х годов возглавлял секцию кибернетики Малой Ака-
демии Наук (МАН) школьников Крыма, являлся одним из создателей, а с 1973 года в течение 25 лет — Президентом МАН. Его книга “Введение в кибернетику”. (К.: “Радянсь- ка школа”, 1976) выдержала три издания, последнее издание было в 1986 г.
А. Соловьев (1994). Ишкушштвенный интеллект. — альманах “Восток” 2005, июль-август, N 7/8(31/32) http://www.situation.ru/арр/j_art _938.htm
Юмористический по форме и грамотный с профессиональной точки зрения обзор:
Лекция 1. Кибернетик на горшке.
Лекция 2. Смысль.
Лекция 3. Парле зи рашн?
Лекция 4. Машины с квадратными колесами.
Лекция 5. Извлечение знаний.
Лекция 6. Математические страдания.
Статьи по кибернетике и теории управления из Со- росовского Образовательного Журнала:
(http: //journal. issep. rssi. ru/)
Соросовский Образовательный Журнал (СОЖ) выходил ежемесячно с 1995 г. по 2001 г. и бесплатно рассылался во все школы страны, муниципальные и вузовские библиотеки, Соросовским Учителям и Профессорам. С 1999 г. полные тексты всех статей журнала размещены на сайте ISSEP в Интернете. Все расходы оплачивались из средств основателя ISSEP, американского финансиста и филантропа Дж. Сороса. Цель СОЖ - сделать доступными учителям, школьникам и студентам России последние успехи в области естественных наук - биологии, химии, наук о Земле, физики и математи-
ки. Статьи, представленные для печати в СОЖ, проходили очень строгий отбор; были опублйкованы лишь самые хорошие статьи — примерно 25В 2004 г. издание возобновлено под названием "Сетевой Образовательный Журнал". Ныне журнал выходит только в электронной форме, его издание осуществляется благодаря поддержке Департамента образования г. Москвы.
Математика как операционная система и модели. Ней- марк Ю. И. Ц СОЖ, 1996, Ж, сс. 82-85.
Об управлении динамическими системами в условиях неопределенности. Брусин В. А. // СОЖ, 1996, №6, с. 115-121.
Информация, термодинамика и конструкция биологических систем. Блюменфельд Л. А. // СОЖ, 1996, №7, с. 88-92.
Многомерная геометрия и распознавание образов. Ней- марк Ю. И. Ц СОЖ, 1996, №7, с. 119-123.
Некоторые общие принципы построения адаптивных систем управления. Фомин В. Н. // СОЖ, 1996, №12, сс. 102-108.
Простые математические модели и их роль в постижении мира. Неймарк Ю. И. // СОЖ, 1997, №3, сс. 139143.
Экстремальные задачи в современной науке и приложениях. Габасов Р. Ф. // СОЖ, 1997, №6, с. 115-120.
Задачи оптимального управления. Колмановский В. Б. // СОЖ, 1997, №6, с. 121-127.
Динамическое программирование. Черноусько Ф. Л. // СОЖ, 1998, №2, с. 139-144.
Задачи управления при неполной информации. Колмановский В. Б. Ц СОЖ, 1999, №4, с. 122-127.
Задачи оптимального оценивания. Колмановский В. Б. Ц СОЖ, 1999, №11, с. 122—128.
Планирование эксперимента для построения математических моделей. Жирабок А. Н. // СОЖ, 2001, №9, сс. 121-127.
Англоязычные ресурсы:
Principia Cybernetica Web:
http: //pespmcl.vub.ac.be/
The Alan Turing Home Page:
http: //www. taring. org. uk/turing/
Ashby W. R. (1956) Introduction to Cybernetics. Methuen, London, electronically republished at:
http: //pespmc1.vub.ac.be/books/IntroCyb.pdf
Cybernetics projects
http://www.rmcybernetics.com
/science/cybernetics/cybernetics.htm
Cybernetics and Information Theory in the United States, France and the Soviet Union David Mindell (MIT), Jerome Segal (Max Planck Institute for the History of Science, Berlin), Slava Gerovitch (Dibner Institute for the History of Science and Technology and the Russian Academy of Sciences) [Science and Ideology: A Comparative History, Mark Walker (dir.), Routledge, London, 2003, pags. 66-95].
http://www.infoamerica.org /documentos„word/shannon-wiener.htm
Slava Gerovich homepage From Newspeak to Cyberspeak: A History of Soviet Cybernetics (MIT Press, 2002) http: //web. mit. edu/slava/homepage/
C. Francois. Systemic? and cybernetics in a historical perspective (pdf document) http://www.uni-klu.ac.at
/~gossimit/ifsr/francois/papers/
More related papers of Charles Francois:
http://www.uni-klu.ac.at/~gossimit/if sr/francois/
Словари и энциклопедии:
Рубрикой:
www.rubricon.com/
Википедия: www.wikipedia.org
http://en.wikipedia.org/wiki/Cybernetics
Web Dictionary of Cybernetics and Systems:
http://pespmcl.vub. ac.be/ASC/indexASC.html
5.3. Об авторах
Ананьевский Михаил Сергеевич, аспирант кафедры теоретической кибернетики математико-механического факультета Санкт-Петербургского государственного университета (СПбГУ), младший научный сотрудник лаборатории “Управление сложными системами” Института проблем машиноведения РАН (www.ipme.ru/ipme/labs/ccs/).
Болтунов Геннадий Иванович — зам.председателя оргкомитета Олимпиады, доцент кафедры систем управления и информатики Санкт-Петербургского государственного университета информационных технологий, механики и оптики (СПбГУИТМО) (http: //с si. if mo. ru/).
Зайцев Юрий Евгеньевич, доцент кафедры физики Санкт-Петербургского государственного электротехнического университета (СПбГЭТУ)
(http://^wa.eltech.ru/kaf edrs/fiz/fiz.htm).
Матвеев Алексей Серафимович, профессор кафедры теоретической кибернетики математико-механического факультета СПбГУ
(http: //yawn. math. spbu. ru/ru/mmeh/Chair s/dep_r21. html).
Фрадков Александр Львович, председатель оргкомитета Олимпиады, заведующий лабораторией "Управление сложными системами "Института проблем машиноведения РАН, профессор кафедры теоретической кибернетики математико-механического факультета СПбГУ (www.ipme.ru/ipme/labs/ccs/)
Шиегин Виталий Валерьевич, научный сотрудник лаборатории “Управление сложными системами” Института проблем машиноведения РАН, выпускник кафедры систем управления и информатики СПбГУИТМО (www.ipme.ru/ipme/labs/ccs/).
Глава V.Глава V.
Глава V.
Глава V.
Приложения
Научное изданиеМихаил Сергеевич АнаньевскийГеннадий Иванович БолтуновЮрий Евгеньевич ЗайцевАлексей Серафимович МатвеевАлександр Львович ФрадковВиталий Валерьевич ШиегинСанкт-Петербургские олимпиады по кибернетике
Редактор издательства Т. П. ЖуковаХудожник Е. В. Кудина
Книга печатается с оригинал-макета, подготовленногоавтором
Санкт-Петербургская издательская фирма “Наука” РАН199034, Санкт-Петербург, Менделеевская линия, 1
E-mail: main@nauka.nw.ruInternet: www.nauka.nw.ruwww. natahaus. ru
Лицензия ИД № 02980 от 06 октября 2000 г.
Подписано к печати 12.12.05. Формат 60x84 ,/|б-Бумага офсетная. Печать офсетная. Гарнитура Таймс.
Усл. печ. л. 21,0. Тираж 500 экз. Зак. 207. С. 332.
Отпечатано с готовых диапозитивов в типографии "СПб ГИПТ"199004, Санкт-Пегербур!, В О , 5-я линия, д 28
Санкт-Петербургские школьные олимпиады по кибернетике проводятся с 1999 года коллективом энтузиастов из Санкт- Петербургского государственного университета, Санкт- Петербургского государственного университета информационных технологий, механики и оптики и Института проблем машиноведения Российской академии наук, предложившим концепцию школьной кибернетики как области на стыке трех наук: математики, физики и информатики. Ежегодно в олимпиаде участвуют более 50 команд из школ, лицеев и гимназий Санкт-Петербурга и ближайших городов.
Pa,,‘‘l 3аДачи олимпиад, ихР®^^
11 ВеДущих ученых о киб^Р
2) расширенную и дополнительную память и защищенный режим процессора;
3) чтение и запись векторов прерываний;
4) создание и работу с любыми файлами, за исключением файлов, которые указаны в условиях задачи;
5) работу с подкаталогами;
6) любое использование сетевых средств;
7) любые другие средства или действия, которые могут
нарушить работу программного обеспечения олимпиа
ды.
С гШШ'-ЛЕГЯРБУРПИШЕ
ОЛИМПИИ ^ДЫОЛИМПИИ ^ДЫ
ОЛИМПИИ ^ДЫ
ОЛИМПИИ ^ДЫ
Санкт-Петербург«НАУКА»
УДК 007
ББК 22.18
А64
М. С. Ананьевскийи др. Санкт-Петербургские олимпиады по кибернетике / М. С. Ананьевский, Г. И. Болтунов, Ю. Е. Зайцев, А. С. Матвеев, А. Л. Фрадков, В. В. Шиегин; / Под ред. А. Л. Фрадкова, М. С. Ананьевского. — СПб.: Наука, 2005. - 332с.
ISBN 5-02-025094-5
Книга содержит материалы городских школьных олимпиад по кибернетике, проводившихся в Санкт-Петербурге в 1999-2005 гг. В издание включены задачи олимпиад, решения избранных задач, а также дополнительная информация: сведения о кибернетике и об истории олимпиад, список кафедр кибернетического профиля в вузах Санкт-Петербурга и т.д.
Для учащихся и преподавателей средних и высших учебных заведений, а также научных работников и методистов, интересующихся вопросами преподавания и популяризации кибернетики и информатики.
Печатается с оригинал-макета,подготовленного Институтом проблем машиноведения РАН
ISBN 5-02-025094-5 © Коллектив авторов, 2005 © Издательство «Наука», 2005
Оглавление
Предисловие8
Что такое кибернетика?14
Кибернетические системы и информация . . 14
Мозг и компьютеры 15
Кибернетика и управление 16
Методы кибернетики 18
Разделы кибернетики 19
История кибернетики 21
Глава I. Олимпиада
1.1. Как все начиналось 23
О задачах 25
Хроника олимпиад 28
Рождение и эволюция автоматической системы проверки решений 32
Идея системы 32
Версии системы 37
Перспективы развития системы 44
Результаты олимпиад 1999-2005 гг. 46
Правила проведения олимпиады (2005 г.) . . . . 60
Глава II. Задачи
2.1. Задачи 1999 г. 63
Равновесие 63
Автобус 64
Последовательность 65
Помехоустойчивый код (7,4) 67
Маршрут тележки 68
Легенда 70
Задачи 2000 г. 72
Круговой маршрут 72
Лазерная пушка 73
Новый метод криптографии 74
Покорение космоса 75
Тайна владыки Мо 76
Робот-хоккеист 78
Шифр 80
Задачи 2002 г. 81
Агентурная сеть 81
Скучающий автопилот 82
Соревнование скалолазов 84
Анна Петровна и сложные проценты 86
Криптоанализ 87
Квадраты 89
Волк в ловушке 90
Колесо 90
Инкрементная инверсия 92
Задачи 2003 г. 93
Шайба 93
Водитель без шлагбаума 93
Игры разума 94
Планирование производства 97
Кибербоулинг 98
Светофоры 99
Ящик101
Странный вездеход.'102
Задачи 2004 г.104
Идентификация104
С Новым годом105
Биотехнология и кибернетика106
Стрельба из пушки по воробьям108
Путешествие из Петербурга в Москву . ... 110
МышеловкиЦ1
Есть ли жизнь на Марсе?113
Жажда бублов 115
Диатлон 116
Задачи 2005 г.117
Насосы, сосуды, горелки и гелий117
Электрик на даче и его помидоры118
Покорение Амальтеи120
Лукулловский пир121
Жирная муха и паук122
Превышение скорости 123
Кубок УЕФА 2005 124
Игральные аппараты125
Бронепоезд126
Глава III. Решения
Решения задач 1999 г.128
Решения задач 2000 г.136
Решения задач 2002 г.139
Решения задач 2003 г.157
Решения задач 2004 г.163
Решения задач 2005 г.182
Глава IV. Кибернетика
Что такое управление?189
Модели объекта управления190
Цели управления . . . .193
“Наивное” управление196
Обратная связь198
Неопределенность200
Нелинейность203
Пример. Маятник Капицы204
Некоторые общие принципы построения адаптивных систем управления211
Предмет теории управления211
Понятие об адаптивном управлении214
Робот-велосипедист215
Параметрическая неопределенность в задании математической модели управляемого объекта и способы ее преодоления222
Конечно-сходящиеся алгоритмы адаптации.
Метод рекуррентных целевых неравенств..224
Заключение228
Многомерная геометрия и распознавание образов230
Введение и постановка проблемы230
Математические модели распознавания...234
Алгоритм обучения238
Заключение241
Становление информатики в России245
Замечания по терминологии . .♦245
Структура информатики247
Борьба за признание249
Начальный период260
Формирование инфраструктуры 271
60-е и 70-е годы287
Новые информационные технологии . . . J . 301
Вместо заключения304
Глава V. Приложения
Кафедры кибернетического профиля ВУЗов Санкт-Петербурга317
Интернет-ресурсы по кибернетике, информатике и их истории322
Об авторах329