
18.02.2003 №1 Введение.
Теор-я ав-в(Т/А) заним-ся изучением абстрактных выч.уст-в или машин. В 30е гг ХХвека Тьюринг исследовал абстрактную машину, кот.по крацней мере в обл-ти выч-й обладала всеми возможностями совр.выч.машин. Целью исследования Тьюринга было определить границу м/у что м/т делать выч.маш-а и что не м/т. Пол-ые им рез-ты явл-ся фундаментальными и лежат в основе построения совр.прог.обеспечения и совр.комп-в.
В 40-50гг ХХ века многие ученые занимались исслед-ми простейших машин, кот-е наз-сь конечными авт-ми – эти модели первон-но были предложены как модели функционирования челов-го мозга, но вскоре они показали свою полезность и в ряде др-х областей знаний.
В к.50гг ХХвека лингвист Хомский занялся изучением формальных грамматик. Не явл-сь машинными в точном смысле этого слова, гр-ки тесно связанны с абстрактными авт-ми и служат основой для построения ПО и в частности компиляторов.
В 1969г мат-к Кук развил рез-ты Тьюринга о выч-ти и о невыч-ти. Ему удалось разбить все задачи на те кот-е м.б. эффективно решенымаш-ой и на те, кот-е впринципе м.б.решены, но для своего решения требуют так много Маш-го времени, что компил-р оказывается бесполезным для решения всех экземпляров задач, за исключением небольших. Послед-е задачи наз-ся трудно-разрешимыми или NP-трудными. Даже при экспотенциальном росте быстродействие ЭВМ весьма вероятно, что задачи этого типа м.б.решены.
Все эти соображения получены в середине прошлого века актуальны и сегодня. Напр-р, конечные ав-ты и некоторые типы формальных гр-к эфф-но исп-ся и сегодня при разработке компонентов П.О. Модель Тьюринга помогает оценить принципиальные возможности П.О. Теория слож-ти вычислений позволяет ответить на вопрос : можем ли мы решить задачу влоб, составив прог-му, или н/о искать обходные пути,. Иногда отказываться от точного решения задачи, т/о для того чтобы решить ее с заданной точностью за приемлемое время.
В силу сказанного Т.А. и теория сложности выч-й явл-ся ядром инф-ки, в частности рез-ты этих теорий исп-ся при:
1) создании ПО, используемого для создания и проверки цифровых схем
2) В лексич-х анализ-рах стандар-го компилятора, т.е.в той части коп-ра, кот.отвечает за разбивку исходного текста на такие логические единицы как идентификаторы, ключевые слова, знаки пунктуации и т.д.
3) В ПО для сканирования таких больших текстовых массивов, как наборы Webстраниц, при поиске слов, фраз и др-х последовательностей символов.
4) В ПО для проверки различного рода симс-м, таких как протоколы связи или протоколы защищенного обмена инф-ей, кот-е м/т нах-ся в конечном числе различных состояний.
Конечный авт-т.
Сущ-т мн-во разл.сис-м и компонентов, кот-е м/о рассм-ть как наход-ся в каж.момент времени в определ-ом состоянии из заданного мн-ва состояний. Назначением каж-го состояния явл-ся запоминание опред-го момента истории сис-мы. Т.к.число состояний сис-мы конечно, а история м/т длиться достаточно долго, то заполнить всю историю невозможно и => сис-у н/о стороить так, чтобы запоминать т/о действ-но важную инф-ию и забывать несущ-ную. Необх-ть иметь конечное число состояний обусловлена тем, что сис-ма долна быть реализована либо виде прог-мы, либо виде схемы.
Расс-м в качестве пр-ра простейшего нетривиального ав-та переключатель:включено-выкл-но. Это уст-во помнит свое текущее состояние и от него зависит рез-т нажатия кнопки. Из состояния вык-но при поступлении сигнала нажатие, ав-т переходит в состояние вкл-но и наоборот.
начало
нажатие
Состояния
ав-та обозначены кружками а дуги,
указывающие
нажатие
направления
переходов помечены входными символами,
воздействующими на сис-у(нажатие). Одно из состояний явл-ся начальным, ччто помечается входной стрелкой, в нашем сл-е это состояние выкл-но.
Часто выделяют одно или неск-ко заключительных или допускающих состояний., попав в одно из них из начального состояния, после совершения неск-ких переходов мы можем считать что в некотором смысле входная посл-ть была хорошей. Напр-р, для нашего авт-та состояние вкл-но м/о считать допускающим, т.к. попав в него вкл-ет какую-то дальнейшую сис-у и она будет работать. В дальнейшем допускающие состояния буд. Обозначать двойными кружками или прямлугольником.
Расс-м др.пр-р, кот.м.б.частью лексического анализ-ра. Пусть ав-т обнаруживает слово them.
t h e m
начало
каж-е из кот-х предс-т собой позицию
в слове them, эти позиции соответствуют
префиксам этого слова от пустой цепрочки (никакая позиция в слове еще не достигнута) до целого слова. Каж-е из 5 сост-й авт-ой модели обозначена частью слова, прочитанного на данном шаге. Входным сигналам этого ав-та соотв-ют буквы. М/о считать, что данный лексический анал-тор на каж-м шаге просматривает по одному символукомпилируемой программы. Состояние, обозначенное символом Themдостигается, когда введено все это слово, т.к.задачей данного ав-та явл-ся распознование именно словаthem, то последнее состояние явл-ся единственным допускающим состоянием.
Т.о., дисциплина ТА явл-ся той теорит-ой базлй, кот-я лежит в основепостроения дискретных уст-в любой слож-ти и любого назначения, а также проектирования ПО, в частности компиляторов, распознователей и т.д.