Тьюринга edu index php t. Тест тьюринга

We see it all the time. “RESTful” this, “REST” protocol that, etc. However, a lot of us don’t really understand exactly what it means. We’ll fix exactly that gap in this article!

State

In computer science (and mathematics, to some extent), there is a concept of state. A certain system can be in state A or it can be in state B or it can be a bunch of other states (usually, a finite list of states).

As an example, let us say that you write a program which turns the screen red if the temperature is more than 80 degreees farenheit or turns it blue if the temperature is less than 80 degrees farenheit.

We can call the first state (temp > 80 degrees) state “A” and the second state (temp < 80 degrees) state “B”. We’ll call the middling state (temp = 80 degrees) state “C”. As we can see, we have defined behaviours of the programs at state A and state B, but not at state C.

That is the general idea of state. Here’s the definition given by the all-knowing Wikipedia:

“In computer science and automata theory, the state of a digital logic circuit or computer program is a technical term for all the stored information, at a given point in time, which is used by the circuit or program.”

In short, it is a sort of “combination” of all the information that the program takes into account.

Now, we’re going to make a leap into something that’s considered largely theoretical and useless and then somehow connect to the very practical world of REST.

Turing machines

There was this man named Alan Turing, and he was quite a smart mathematician with an interest in the workings of computers. He conceived an imaginary computer (which, as we will see, is actually impossible to actually build) which he used to reason about things that happen in real computers.

The computer consists of a tape of infinite length, with a head through which the tape passes. The tape has “cells”, to which information can be written (numbers, colors, etc.) The tape moves through this machine, left or right, one cell at a time. The machine scans in whatever is already on the tape and, depending on what state it is in, it writes something back onto the tape then, subsequently, changes its state.

You may want to read that definition again for it to sink in completely. The essence of the idea is that it makes operations on memory based on state and states changes according to operations on memory.

This seems like a fairly useless theoretical fantasy (although, there is absolutely nothing wrong with that, read A Mathematician’s Apology if you’re wondering why people care to take an interest in theoretical stuff). However, it is quite possibly the most fundamental concept of computer science.

Using the Turing Machine, computer scientists are able to reason about any algorithm that can be run on a computer. In fact, the Turing machine has led to many advances in computer science.

So, the Turing Machine shows us that today (note: I’m not considering graph reduction processors), literally everything in computer science is based off the idea of state.

The Network

Then came along the concept of the internet. This is a place where packets can go haywire and are resent until they reach their destination. In general, there is never a complete transmission of full data.

Clients come in quickly and leave twice as fast. As such, holding onto client state doesn’t make much sense when working on a network system.

Also, in general, holding too much state in a system has been a cause for major pain (which also leads to funcitonal programming languages, which do not allow for the holding of state in a large portion of your code).

Now, people needed a network protocol for the internet which was simple, fast and handled management of state well in an extremely dynamic environment.

That protocol was HTTP, and the theory that grew out of the work on HTTP was labelled REST.

REST

REST stands for: REpresentational State Transfer. It is a system built around the “client-server” concept that networks are built on top of (well, ther are also peer to peer type networks, but, client-sever is arguably the simplest and most tested architecture). The name itself is slightly misleading, since the server is completely state-free!

There are a few constraints that all systems that claim to be “RESTful” must follow.

First of all, it must be a client-server system. This constraint has been modified in the past, but in the formal definition (and, for the theory of REST to work properly), we have servers to which clients can connect.

The server is fully stateless. This means that for each client request to the server, no state is reserved on the server. For example, if a client (using HTTP), requests the index page and subsequently requests the /user/home page, the two requests are completely independent of each other. The client holds all of the state of the system (hence, we have the back button).

Responses from the server must be cacheable, which means that there must be a system on the server which identifies respones as cacheable or not, so that clients (e.g. web browsers) can take advantage of the cache.

Finally, we must have a simple, clean, and uniform interface. If you have had some experience with how HTTP works, the request forms are very simple. They are largely verbs and nouns with a very easy to parse and human-readable format. SOAP is another form of a network protocol which absolutely obliterates this requirement and, therefore, is often very difficult to work with.

Now, what do all of these properties, when taking together, entail?

Implications of REST

They let us build systems that are cleanly seperated, scalable, and debugged easily.

Let us consider the restriction of statelessness on the server first, it may well be the most important (and, also, the most often violated by so-called RESTful architectures) bit.

As previously mentioned, in a client-server architecture the clients are very nimble; they fire requests and suddenly kill all communication. In this kind of a situation, it is much cleaner to not save state about the client on the server. This lets us reason about HTTP servers very easily; each client request may be treated as if it is a completely new client, and it wouldn’t make a penny of a difference.

Secondly, cacheable responses mean that the clients are able to get data much faster, because often times, the data can be retrieved from the client’s memory. This immediately increases client performance and, in some systems, server scalability.

The uniform interface may just be the most important. Having worked with SOAP, I can tell you that HTTP’s simple format is a blessing when trying to debug server code and the same applies to other RESTful systems.

Designing a RESTful System

Let’s say we need to write a server that returns stock quotes, as well as retaining a list of stock quotes to monitor (and, the user can either add to or clear the list).

This is an excellent case for a RESTful system, because it is inherently independent of identity of client. Therefore, the server need not hold any state about the client.

We first start by defining how the protocol language will work (a bit like the GET and POST verbs of HTTP):

GETQUOTE ticker - gives the price for a particular stock
ADDTICKER ticker - adds the given stock to the list
GETLIST - gets a comma seperated list of stocks in the list

That’s a fairly simple protocol, and, doesn’t hold any state on the server. Now, as for caching, we may say that we update the prices every hour, so caches more than one hour old may be thrown away.

And, that’s all there is to it! Of course, we still have to implement this, but, the general idea of the system is quite simple and clean!

Conclusion

Hopefully, this article gave you a solid understanding of REST.

Also, I hope that you will now be able to call out people who throw around the term “RESTful” too much - I can tell you, there’s a lot of them!

Искусственный интеллект (ИИ, англ. Artificial intelligence, AI) - наука и технология создания интеллектуальных машин, особенно интеллектуальных компьютерных программ. ИИ связан со сходной задачей использования компьютеров для понимания человеческого интеллекта, но не обязательно ограничивается биологически правдоподобными методами.

Что такое искусственный интеллект

Интеллект (от лат. intellectus - ощущение, восприятие, разумение, понимание, понятие, рассудок), или ум - качество психики, состоящее из способности приспосабливаться к новым ситуациям, способности к обучению и запоминанию на основе опыта, пониманию и применению абстрактных концепций и использованию своих знаний для управления окружающей средой. Интеллект - это общая способность к познанию и решению трудностей, которая объединяет все познавательные способности человека: ощущение, восприятие, память, представление, мышление, воображение.

В начале 1980-х гг. ученые в области теории вычислений Барр и Файгенбаум предложили следующее определение искусственного интеллекта (ИИ):


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

Основные свойства ИИ - это понимание языка, обучение и способность мыслить и, что немаловажно, действовать.

ИИ – комплекс родственных технологий и процессов, развивающихся качественно и стремительно, например:

  • обработка текста на естественном языке
  • экспертные системы
  • виртуальные агенты (чат-боты и виртуальные помощники)
  • системы рекомендаций.

Национальная стратегия развития искусственного интеллекта

  • Основная статья: Национальная стратегия развития искусственного интеллекта

Исследования в сфере ИИ

  • Основная статья: Исследования в сфере искусственного интеллекта

Стандартизация в области ИИ

2019: Эксперты ISO/IEC поддержали предложение о разработке стандарта на русском языке

16 апреля 2019 года стало известно, что подкомитет ISO /IEC по стандартизации в области искусственного интеллекта поддержал предложение Технического комитета «Кибер-физические системы », созданного на базе РВК , о разработке стандарта «Artificial intelligence. Concepts and terminology» на русском языке в дополнение к базовой английской версии.

Терминологический стандарт «Artificial intelligence. Concepts and terminology» является основополагающим для всего семейства международных нормативно-технических документов в области искусственного интеллекта. Кроме терминов и определений, данный документ содержит концептуальные подходы и принципы построения систем с элементами , описание взаимосвязи AI с другими сквозными технологиями, а также базовые принципы и рамочные подходы к нормативно-техническому регулированию искусственного интеллекта.

По итогам заседания профильного подкомитета ISO/IEC в Дублине эксперты ISO/IEC поддержали предложение делегации из России о синхронной разработке терминологического стандарта в сфере AI не только на английском, но и на русском языке. Ожидается, что документ будет утвержден в начале 2021 года.

Развитие продуктов и услуг на базе искусственного интеллекта требует однозначной трактовки используемых понятий всеми участниками рынка. Стандарт терминологии позволит унифицировать «язык», на котором общаются разработчики, заказчики и профессиональное сообщество, классифицировать такие свойства продуктов на базе ИИ, как «безопасность», «воспроизводимость», «достоверность» и «конфиденциальность». Единая терминология также станет важным фактором для развития технологий искусственного интеллекта в рамках Национальной технологической инициативы – алгоритмы ИИ используют более 80% компаний в периметре НТИ. Кроме того, решение ISO/IEC позволит укрепить авторитет и расширить влияние российских экспертов при дальнейшей разработке международных стандартов.

В ходе заседания эксперты ISO/IEC также поддержали разработку проекта международного документа Information Technology - Artificial Intelligence (AI) - Overview of Computational Approaches for AI Systems, в котором Россия выступает в качестве соредактора. Документ предоставляет обзор современного состояния систем искусственного интеллекта, описывая основные характеристики систем, алгоритмы и подходы, а также примеры специализированных приложений в области AI. Разработкой этого проекта документа займется специально созданная в рамках подкомитета рабочая группа 5 «Вычислительные подходы и вычислительные характеристики систем Искусственного интеллекта» (SC 42 Working Group 5 «Computational approaches and computational characteristics of AI systems»).

В рамках работы на международном уровне делегации из России удалось добиться ряда знаковых решений, которые будут иметь долгосрочный эффект для развития в стране технологий искусственного интеллекта. Разработка русскоязычной версии стандарта, еще и со столь ранней фазы – гарантия синхронизации с международным полем, а развитие подкомитета ISO/IEC и инициация международных документов с российским соредакторством – это фундамент для дальнейшего продвижения интересов российских разработчиков за рубежом», - прокомментировал.

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

По направлению искусственный интеллект ТК «Кибер-физические системы» на базе РВК ведет разработку ряда национальных стандартов, утверждение которых запланировано на конец 2019 – начало 2020 года. Кроме того, совместно с рыночными игроками идет работа по формированию Плана национальной стандартизации (ПНС) на 2020 год и далее. ТК «Кибер-физические системы» открыт для предложений по разработке документов со стороны заинтересованных организаций.

2018: Разработка стандартов в области квантовых коммуникаций, ИИ и умного города

Технический комитет «Кибер-физические системы» на базе РВК совместно с Региональным инжиниринговым центром «СэйфНет» 6 декабря 2018 года начали разработку комплекса стандартов для рынков Национальной технологической инициативы (НТИ) и цифровой экономики . К марту 2019 года планируется разработать документы технической стандартизации в области квантовых коммуникаций , и , сообщили в РВК. Подробнее .

Влияние искусственного интеллекта

Риск для развития человеческой цивилизации

Влияние на экономику и бизнес

  • Влияние технологий искусственного интеллекта на экономику и бизнес

Влияние на рынок труда

Предвзятость искусственного интеллекта

В основе всего того, что является практикой ИИ (машинный перевод, распознавание речи, обработка текстов на естественных языках, компьютерное зрение , автоматизация вождения автомобилей и многое другое) лежит глубинное обучение. Это подмножество машинного обучения , отличающееся использованием моделей нейронных сетей , о которых можно сказать, что они имитируют работу мозга, поэтому их с натяжкой можно отнести к ИИ. Любая модель нейронной сети обучается на больших наборах данных , таким образом, она обретает некоторые «навыки», но то, как она ими пользуется - для создателей остается не ясным, что в конечном счете становится одной из важнейших проблем для многих приложений глубинного обучения. Причина в том, что такая модель работает с образами формально, без какого-либо понимания того, что она делает. Является ли такая система ИИ и можно ли доверять системам, построенным на основе машинного обучения? Значение ответа на последний вопрос выходит за пределы научных лабораторий. Поэтому заметно обострилось внимание средств массовой информации к явлению, получившему название AI bias. Его можно перевести как «необъективность ИИ» или «пристрастность ИИ». Подробнее .

Рынок технологий искусственного интеллекта

Рынок ИИ в России

Мировой рынок ИИ

Сферы применения ИИ

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

ИИ - это не монолитная предметная область. Более того, некоторые технологические направления ИИ фигурируют как новые подотрасли экономики и обособленные сущности, одновременно обслуживая большинство сфер в экономике.

Развитие применения использования ИИ ведет к адаптации технологий в классических отраслях экономики по всей цепочке создания ценности и преобразует их, приводя к алгоритмизированию практически всего функционала, от логистики до управления компанией.

Использование ИИ в целях обороны и в военном деле

Использование в образовании

Использование ИИ в бизнесе

ИИ в борьбе с мошенничеством

11 июля 2019 года стало известно о том, что всего через два года искусственный интеллект и машинное обучение будут использоваться для противодействия мошенничеству в три раза чаще, чем на июль 2019 года. Такие данные были получены в ходе совместного исследования компании SAS и Ассоциации сертифицированных специалистов по расследованию хищений и мошенничества (Association of Certified Fraud Examiners, ACFE). На июль 2019 года такие антифрод -инструменты уже используют в 13% организаций, принявших участие в опросе, и в еще 25% заявили, что планируют их внедрить в течение ближайшего года-двух. Подробнее .

ИИ в электроэнергетики

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

ИИ в производственной сфере

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

ИИ в банках

  • Распознавание образов - используется в т.ч. для узнавания клиентов в отделениях и передачи им специализированных предложений.

ИИ на транспорте

  • Автоиндустрия на пороге революции: 5 вызовов эры беспилотного вождения

ИИ в логистике

ИИ в пивоварении

ИИ в судебной системе

Разработки в области искусственного интеллекта помогут кардинально изменить судебную систему, сделать ее более справедливой и свободной от коррупционных схем. Такое мнение высказал летом 2017 года доктор технических наук, технический консультант Artezio Владимир Крылов.

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

«Ежедневно просматривая новостные сообщения о разработках в области ИИ только поражаешься неисчерпаемости фантазии и плодотворности исследователей и разработчиков в этой области. Сообщения о научных исследований постоянно чередуются с публикациями о новых продуктах, врывающихся на рынок и сообщениями об удивительных результатах, полученных с помощью применения ИИ в различных областях. Если же говорить об ожидаемых событиях, сопровождаемых заметным хайпом в СМИ, в котором ИИ станет снова героем новостей, то я, наверное, не рискну делать технологических прогнозов. Могу предположить, что ближайшим событием станет появление где-то предельно компетентного суда в форме искусственного интеллекта, справедливого и неподкупного. Случится это, видимо, в 2020-2025 году. И процессы, которые пройдут в этом суде приведут к неожиданным рефлексиям и стремлению многих людей передать ИИ большинство процессов управления человеческим обществом».

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

Музыка

Живопись

В 2015 году команда Google тестировала нейронные сети на предмет возможности самостоятельно создавать изображения. Тогда искусственный интеллект обучали на примере большого количества различных картинок. Однако, когда машину «попросили» самостоятельно что-нибудь изобразить, то оказалось, что она интерпретирует окружающий нас мир несколько странно. Например, на задачу нарисовать гантели, разработчики получили изображение, в котором металл был соединён человеческими руками. Вероятно, произошло это из-за того, что на этапе обучения анализируемые картинки с гантелями содержали руки, и нейронная сеть неверно это интерпретировала.

26 февраля 2016 года в Сан-Франциско на специальном аукционе представители Google выручили с психоделических картин, написанных искусственным интеллектом, порядка $98 тыс. Данные средства были пожертвованы на благотворительность. Одна из наиболее удачных картин машины представлена ниже.

Картина, написанная искусственным интеллектом Google.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» Т.К. Кацаран, Л.Н. Строева МАШИНА ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ Учебное пособие для вузов Издательско-полиграфический центр Воронежского государственного университета 2008 Утверждено научно-методическим советом факультета ПММ 25 мая 2008 г., протокол № 9 Рецензент д. т. н., проф. кафедры математических методов исследования операций Т.М. Леденева Учебное пособие подготовлено на кафедре нелинейных колебаний факуль- тета ПММ Воронежского государственного университета. Рекомендуется для студентов 1 курса факультета ПММ ВГУ, Староосколь- ского и Лискинского филиалов ВГУ. Для специальности 010500 – Прикладная математика и информатика ВВЕДЕНИЕ Слово «алгоритм» происходит от algorithmi – латинского написания имени узбекского математика и астронома, жившего в VIII–IX веках (783– 850 гг.), Мухаммеда бен Мусы аль-Хорезми. Под этим именем в Средневе- ковой Европе знали величайшего математика из Хорезма (город в совре- менном Узбекистане). В своей книге «Об индийском счете» он сформули- ровал правила записи натуральных чисел с помощью арабских цифр и пра- вила действий над ними. Затем понятие алгоритма стало использоваться в более широком смысле и не только в математике. Как для математиков, так и для практиков понятие алгоритма имеет важное значение. Таким образом, можно сказать, что алгоритм – это точное предписа- ние о выполнении в определенном порядке некоторой системы операций для решения всех задач одного и того же типа, определяющее последова- тельность действий, обеспечивающую получение требуемого результата из исходных данных. Заметим, что это не определение понятия «алгоритм», а только его описание, его интуитивный смысл. Алгоритм может быть предназначен для выполнения его как челове- ком, так и автоматическим устройством. Данное представление об алгоритме не является строгим с матема- тической точки зрения, так как в нем используются такие понятия как «точное предписание» и «исходные данные», которые, вообще говоря, строго не определены. Особенностью любого алгоритма является его способность решать некоторый класс задач. Например, это может быть алгоритм решения сис- тем линейных уравнений, нахождение кратчайшего пути в графе и т. д. Создание алгоритма, пусть даже самого простого, – процесс твор- ческий. Он доступен исключительно живым существам, а долгое время считалось, что только человеку. Другое дело – реализация уже имеюще- 3 гося алгоритма. Ее можно поручить субъекту или объекту, который не обязан вникать в сущность дела, а возможно, и не способен его понять. Такой субъект или объект принято называть формальным исполнителем. Примером формального исполнителя может служить стиральная маши- на-автомат, которая неукоснительно исполняет предписанные ей дейст- вия, даже если вы забыли положить в нее порошок. Человек тоже может выступать в роли формального исполнителя, но в первую очередь фор- мальными исполнителями являются различные автоматические устрой- ства, и компьютер в том числе. Каждый алгоритм создается в расчете на вполне конкретного исполнителя. Те действия, которые может совер- шать исполнитель, называются его допустимыми действиями. Совокуп- ность допустимых действий образует систему команд исполнителя. Ал- горитм должен содержать только те действия, которые допустимы для данного исполнителя. Поэтому обычно формулируют несколько общих свойств алгорит- мов, позволяющих отличать алгоритмы от других инструкций. Алгоритм должен обладать следующими свойствами. Дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмот- ренное алгоритмом, исполняется только после того, как закончилось ис- полнение предыдущего. Определенность – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойст- ву выполнение алгоритма носит механический характер и не требует ника- ких дополнительных указаний или сведений о решаемой задаче. Результативность (конечность) – алгоритм должен приводить к ре- шению задачи за конечное число шагов. 4 Массовость – алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, раз- личающихся только исходными данными. При этом исходные данные мо- гут выбираться из некоторой области, которая называется областью при- менимости алгоритма. Теория алгоритмов – это раздел математики, который изучает общие свойства алгоритмов. Различают качественную и метрическую теорию ал- горитмов. Основной проблемой качественной теории алгоритмов является про- блема построения алгоритма, обладающего заданными свойствами. Такую проблему называют алгоритмической. Метрическая теория алгоритмов исследует алгоритм с точки зрения их сложности. Этот раздел теории алгоритмов известен также как алго- ритмическая теория сложности. При отыскании решений некоторых задач долго не удавалось най- ти соответствующий алгоритм. Примерами таких задач являются: а) ука- зать способ, согласно которому для любой предикатной формулы за ко- нечное число действий можно выяснить, является ли она тождественно- истинной или нет; б) разрешимо ли в целых числах диофантово уравне- ние (алгебраическое уравнение с целыми коэффициентами). Так как для решения этих задач найти алгоритмов не удалось, возникло предполо- жение, что такие алгоритмы вообще не существуют, что и доказано: первая задача решена А. Черчем, а вторая – Ю.В. Матиясевичем и Г.В. Чудновским. Доказать это с помощью интуитивного понятия алго- ритма в принципе невозможно. Поэтому были предприняты попытки дать точное математическое определение понятия алгоритма. В середине 30-х годов ХХ века С.К. Клини, А.А. Марков, Э. Пост, А. Тьюринг, А. Черч и другие предположили различные математические определения 5 понятия алгоритма. Впоследствии было доказано, что эти различные формальные математические определения в некотором смысле эквива- ленты: вычисляют одно и то же множество функций. Это говорит о том, что, по-видимому, основные черты интуитивного понятия алгоритма правильно отражены в этих определениях. Далее рассмотрим математическое уточнение алгоритма, предло- женное А. Тьюрингом, которое называют машиной Тьюринга. 6 1. МАШИНА ТЬЮРИНГА § 1. Математическая модель машины Тьюринга Идея создания машины Тьюринга, предложенная английским мате- матиком А. Тьюрингом в тридцатых годах XX века, связана с его попыт- кой дать точное математическое определение понятия алгоритма. Машина Тьюринга (МТ) – это математическая модель идеализиро- ванной цифровой вычислительной машины. Машина Тьюринга является таким же математическим объектом, как функция, производная, интеграл, группа и т. д. Так же как и другие мате- матические понятия, понятие машины Тьюринга отражает объективную реальность, моделирует некие реальные процессы. Для описания алгоритма МТ удобно представлять некоторое устрой- ство, состоящее из четырех частей: ленты, считывающей головки, устрой- ства управления и внутренней памяти. 1. Лента предполагается потенциально бесконечной, разбитой на ячейки (равные клетки). При необходимости к первой или последней клет- ке, в которой находятся символы пристраивается пустая клетка. Машина работает во времени, которое считается дискретным, и его моменты зану- мерованы 1, 2, 3, … . В каждый момент лента содержит конечное число клеток. В клетки в дискретный момент времени может быть записан толь- ко один символ (буква) из внешнего алфавита A = {L, a1 , a 2 ,..., a n -1 }, n ³ 2 . Пустая ячейка обозначается символом L, а сам символ L называется пустым, при этом остальные символы называются непустыми. В этом ал- фавите A в виде слова (конечного упорядоченного набора символов) ко- дируется та информация, которая подается в МТ. Машина «перерабатыва- ет» информацию, поданную в виде слова, в новое слово. 2. Считывающая головка (некоторый считывающий элемент) пере- мещается вдоль ленты так, что в каждый момент времени она обозревает 7 ровно одну ячейку ленты. Головка может считывать содержимое ячейки и записывать в нее новый символ из алфавита А. В одном такте работы она может сдвигаться только на одну ячейку вправо (П), влево (Л) или оста- ваться на месте (Н). Обозначим множество перемещений (сдвига) головки D = {П, Л, Н}. Если в данный момент времени t головка находится в край- ней клетке и сдвигается в отсутствующую клетку, то пристраивается новая пустая клетка, над которой окажется головка в момент t + 1 . 3. Внутренняя память машины представляет собой некоторое конеч- ное множество внутренних состояний Q = { q0 , q1 , q 2 , ..., q m }, m ³ 1 . Бу- дем считать, что мощность |Q | ³ 2. Два состояния машины имеют особое значение: q1 – начальное внутреннее состояние (начальных внутренних состояний может быть несколько), q0 – заключительное состояние или стоп-состояние (заключительное состояние всегда одно). В каждый момент времени МТ характеризуется положением головки и внутренним состоя- нием. Например, под ячейкой, над которой находится головка, указывается внутреннее состояние машины. ¯ a2 a1 L a2 a3 q1 4. Устройство управления в каждый момент t в зависимости от счи- тываемого в этот момент символа на ленте и внутреннего состояния ма- шины выполняет следующие действия: 1) изменяет считываемый в момент t символ ai на новый символ a j (в частности оставляет его без изменений, т. е. ai = a j); 2) передвигает головку в одном из следующих направлений: Н, Л, П; 3) изменяет имеющееся в момент t внутреннее состояние машины 8 qi на новое q j , в котором будет машина в момент времени t +1 (может быть, что qi = q j). Такие действия устройства управления называют командой, которую можно записать в виде: qi ai ® a j D q j , (1) где qi – внутреннее состояние машины в данный момент; a i – считываемый в этот момент символ; a j – символ, на который изменяется символ a i (может быть ai = a j); символ D есть или Н, или Л, или П и указывает направление движения головки; q j – внутреннее состояние машины в следующий момент (может быть qi = q j). Выражения qi ai и a j D q j называются левой и правой частями этой команды соответственно. Число команд, в которых левые части попарно различ- ны, является конечным числом, так как множества Q \ {q 0 } и A конечны. Не существует команд с одинаковыми левыми частями, т. е. если про- грамма машины T содержит выражения qi ai ® a j D q j и qt at ® ak D qk , то qi ¹ qt или ai ¹ at и D О {П, Л, Н } . Совокупность всех команд называется программой машины Тьюринга. Максимальное число команд в программе равно (n + 1) Ч m , где n + 1 = A и m + 1 = Q . Считается, что заключительное состояние команды q0 может стоять только в правой части команды, начальное состояние q1 может стоять как в левой так и в правой части команды. Выполнение одной команды называется шагом. Вычисление (или ра- бота) машины Тьюринга является последовательностью шагов одного за другим без пропусков, начиная с первого. Итак, МТ задана, если известны четыре конечных множества: внешний алфавит A , внутренний алфавит Q , множество D перемещений головки и программа машины, представляющая собой конечное множество команд. 9 § 2. Работа машины Тьюринга Работа машины полностью определяется заданием в первый (на- чальный) момент: 1) слова на ленте, т. е. последовательности символов, записанных в клетках ленты (слово получается чтением этих символов по клеткам ленты слева направо); 2) положения головки; 3) внутреннего со- стояния машины. Совокупность этих трех условий (в данный момент) на- зывается конфигурацией (в данный момент). Обычно в начальный момент внутренним состоянием машины является q1 , а головка находится либо над первой слева, либо над первой справа клеткой ленты. Заданное слово на ленте с начальным состоянием q1 и положение головки над первым словом называется начальной конфигурацией. В про- тивном случае говорят, что машина Тьюринга не применима к слову на- чальной конфигурации. Другими словами, в начальный момент конфигурация представима в следующем виде: на ленте, состоящей из некоторого числа клеток, в каж- дой клетке записан один из символов внешнего алфавита A , головка нахо- дится над первой слева или первой справа клеткой ленты и внутренним со- стоянием машины является q1 . Получившееся в результате реализации этой команды слово на ленте и положение головки называется заключи- тельной конфигурацией. Например, если в начальный момент на ленте записано слово a1La 2 a1a1 , то начальная конфигурация будет иметь вид: a1 a2 L a1 a1 q1 (под клеткой, над которой находится головка, указывается внутреннее со- стояние машины). 10