Интерфейс клавиатуры

Традиционная клавиатура PC представляет собой унифицированное устройство ввода со стандартным разъемом и последовательным интерфейсом связи с систем­ной платой. В настоящее время используются так называемые расширенные (enhanced) клавиатуры AT пли PS/2, имеющие более 100 клавиш. Они вытеснили первые 84-клавишные клавиатуры AT и тем более клавиатуры XT. По электри­ческому интерфейсу клавиатуры XT и AT совпадают, за исключением того, что двунаправленный интерфейс позволяет клавиатуре AT принимать команды от системной платы. Однако по логическому интерфейсу они несовместимы (клави­атура AT иногда имеет переключатель режима XT/AT). Клавиатура PS/2 отли­чается от AT только исполнением разъема, при необходимости можно использо­вать переходник.

Клавиатуры имеют внутренний микроконтроллер, способный определить факты нажатия и отпускания клавиш, при этом можно нажимать очередную клавишу, даже удерживая несколько ранее нажатых. При нажатии клавиши клавиатура передает идентифицирующий ее скан-код. При удержании клавиши в нажатом положении через некоторое время клавиатура начинает автоповтор передачи скан-кода нажатия этой клавиши. Задержка автоповтора (typematic delay) и скорость автоповтора (typematic rate) для клавиатур AT программируются. Расширенная клавиатура позволяет выбирать 1 из 3 наборов скан-кодов.

С распространением шины USB появились клавиатуры и с этим интерфейсом; они имеют и встроенный хаб, например для подключения мыши USB. Клавиатура USB питается от шины. Для клавиатуры USB требуется специальная поддержка со стороны BIOS; она имеется в современных системных платах.

Для подключения клавиатуры предназначен последовательный интерфейс, со­стоящий из двух обязательных сигналов KB-Data и KB-Clock. Необязательный сиг­нал KB-Reset сбрасывает клавиатуру низким уровнем сигнала. Интерфейс на системной плате XT реализован аппаратной логикой — регистром сдвига, па­раллельный выход которого подключается ко входам порта А системного ин­терфейса 8255. По приему байта от клавиатуры логика вырабатывает запрос аппаратного прерывания IRQ2, обработчик которого может прочитать принятый байт из порта 60h. С помощью бит 7 и 6 порта 61h возможна программная блокировка и сброс клавиатуры соответственно. Сброс клавиатуры XT осущест­вляется принудительным обнулением линии KB-Clock.

Интерфейс клавиатуры AT построен на микроконтроллере 18042, обеспечи­вающем в отличие от XT двунаправленный интерфейс с клавиатурой. Передача информации к клавиатуре используется для управления индикаторами ее со­стояния и программирования параметров (автоповтор, набор скан-кодов).

Хотя электрический интерфейс клавиатур XT и AT совпадает (за исключени­ем возможности двунаправленного обмена в AT), логические форматы посылок существенно отличаются. POST способен производить диагностику клавиатуры, причем подключение клавиатуры неподходящего типа или не подключенную клавиатуру он воспримет как ошибку. Если проверка клавиатуры разрешена в BIOS Setup, то по этой ошибке POST будет сколь угодно долго дожидаться получения кода нажатия клавиши F1.

Конструктивно возможны два варианта разъема — обычная 5-контактная розетка DIN (аналогичная применяемой в бытовой радиоаппаратуре) или ма­логабаритная розетка mini-DIN, пришедшая от компьютеров семейства PS/2, На этот же разъем через плавкий предохранитель поступает и напряжение пи­тания клавиатуры +5 В. Электрически и логически интерфейс клавиатуры PS/2 повторяет интерфейс клавиатуры AT, поэтому для согласования типа разъема применяют специальные переходники. Питание от разъема клавиатуры часто используется такими устройства­ми, как внешние накопители или адаптеры локальных сетей, подключа­емыми к параллельному порту.

Семиотическая база знаний

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

1. Именованность. Информационная единица, которая претендует на то, чтобы называться знанием, должна иметь некоторую собственную метку – имя, выделяющую ее как индивидуальность среди остальных информационных единиц. Если именованность отсутствует, то нет возможности найти информационную единицу среди других единиц. В частности, в системах, где именованность отсутствует, нет надежды получить ответы на вопросы типа: «Что ты знаешь о собаках» или «Верно ли, что Джон любит Мэри?»

2. Структурированность. Информационная единица должна обладать своей внутренней структурой. Например, эта структура такая, как показано на рис.1, то информационная единица является знаком. В этой книге структурированность информационных единиц понимается именно в данном смысле. Отсутствие структурированности приводит к тому, что имена становятся единственным отличительным признаком информационной единицы, и все ее специфические свойства становятся свойствами этого имени.

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

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

5. Активность. В сетях знаков становится возможной реализация принципа «активизация знаний – источник активизации процедур», что приближает сети знаков к тем когнитивным структурам, которые есть у человека. Отсутствие этого свойства не позволило бы сделать свойство активизации «внутренним», зависящим от наличия у системы информации о внешнем мире, а потребовало бы обязательного вмешательства человека для активизации системы.

6. Рефлексивность. Появление метауровня позволяет системе рассуждать о самой себе, о характере имеющейся у нее информации об окружающем мире. Не имея способности к рефлексии нельзя было бы ставить задачу о качестве имеющейся у системы информации, ее полноте и корректности.

Перечисленные шесть особенностей информационных единиц при их наличии (конъюнкции) позволяют говорить о переходе от данных к знаниям.

Определение 2. Система информационных единиц, обладающая свойствами именованности, структурированности, иерархичности, связности, активности и рефлексивности, называется системой знаний.

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

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

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

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

На рис.11 показано три уровня представления знаков и метазнаков. В реальных системах знаний их может быть любое нужное количество.

Определение 3. Система представления знаний, структура которой такова, что в ней реализуются механизмы, обеспечивающие функционирование связей, обозначенных нами цифрами от 1 до 9, называется семиотической базой знаний (СБЗ).

Чтобы сделать это определение более содержательным, сведем характеристики основных процедур, присущих СБЗ, в таблицу 2.

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

Термин «семиотическая база знаний» подчеркивает знаковый характер информации, хранящейся в такой базе знаний. Особый характер подобной базы требует специальных языков для описания хранящихся в ней сведений, специальных моделей для их представления на теоретическом уровне и специальных приемов для использования такого рода информации при решении конкретных практических задач.

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

 

Таблица 2. Основные процедуры в СБЗ

Индекс связи

Название процедуры

Суть действия процедуры

1

поиск информации по имени

по имени в знаке-фрейме ищется вся информация, касающаяся понятия, связанного с этим именем

1

поиск имени

по информации об особенностях сущности (может быть неполной) ищется имя этой сущности

2

порождение представления

 

2

порождение представления

экземпляр сущности порождается в виде представления на основании информации об этом экземпляре

3

приписывание имени

некоторой сущности, о которой система получает информацию через представление (экземпляр), приписывается имя или находится ранее                              приписанное имя

3

порождение

представления

по имени и некоторым дополнительным условиям (если они имеются) порождается некоторое представление экземпляра сущности

4

поиск обоснования для процедуры

по имени фрагмента сети ищется информация о возможных действиях и последствиях этих действий

4

поиск имени фрагмента сети

по информации о содержании некоторой деятельности ищется имя фрагмента сети, который может активизировать эту деятельность

5

поиск нестандартного отклика

по информации о возможных действиях, являющихся следствием активизации определенного фрагмента сети, выбирается конкретная процедура

5

поиск объяснения для процедуры

ищется объяснение активизации и выполнения данной процедуры

6

поиск стандартного отклика

по имени фрагмента сети знаков активизируется стандартная для этого имени процедура

     6

поиск имени процедуры

по выполняемой процедуре определяется ее имя или имя фрагмента сети, вызвавшего ее активизацию

7

обобщение знаков

реализуется переход от знаков одного уровня к знакам большего уровня общности путем применения каких-либо процедур из имеющегося набора (агрегирования, абстрагирования обобщение по признакам и т.п.)

7

конкретизация знаков

осуществляется переход к знакам более низкого уровня общности за счет использования тех или иных процедур из имеющегося арсенала

8

поиск фрагмента в сети знаков

на основании информации об особенностях фрагмента осуществляется его поиск на   определенном уровне и ему присваивается имя

8

воздействие на фрагмент сети знаков

реализуется процедура, активизированная на определенном уровне метазнаков, целью которой является внесение в сеть знаков изменений, определяемых постусловиями продукций

9

композиция процедур

формирование процедур из более мелких процедур ниже лежащего уровня

9

декомпозиция процедур

разбивка процедуры вышележащего уровня на отдельные более мелкие процедуры

Метауровень описания

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

Для подобного метауровня уровень сети знаков-фреймов выступает в качестве того ментального мира, который содержит денотаты для формирования метазнаков. Такими денотатами могут быть определенные фрагменты сети знаков-фреймов. На рис.9 внизу показан фрагмент сети знаков-фреймов, совпадающий с тем, который был показан на рис.7а. Этот фрагмент несет в себе конфликт, который может иметь имя «Конфликт из-за собаки». На метауровне возникает знак (или метазнак) с таким именем. Ему соответствует треугольник в верхней части рис.9. Активизация вершины- имени вызывает активизацию двух других вершин треугольника. Вершина-понятие несет в себе информацию о смысле конфликта, его семантике. И прежде всего информацию о том, чем опасен подобный конфликт, чем он грозит Джону (если именно ментальные представления Джона отражены на рис.9). Наконец, вершина-представление не просто рисует нам картину последствий этого конфликта, как это было для знаков обычного уровня. Она несет в себе и информацию о способах преодоления конфликта, т.е. информацию о тех процедурах, которые можно использовать для устранения конфликта.

Таким образом, метазнаки, в отличие от знаков, несут в себе «заряд активности». Одним из примеров метазнаков можно считать правила или продукции – специальные конструкции из инструментария ИИ, связанные с выполнением определенных действий. Они обычно имеют вид [21,27]

C; Если A, то B; H

Основной частью продукции (ее обычно называют ядром) является секвенция «Если A, то B», понимаемая в ИИ значительно шире того, как понимается секвенция в логике. В системах искусственного интеллекта вполне могут встречаться, например, такие продукции [27]:

Если звезды зажигают, то это кому-то нужно.

Если враг не сдается, то его уничтожают.

Если я заболею, то к врачам обращаться не стану.

Если прошел дождь, то асфальт будет мокрым.

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

Две остальные компоненты в задании продукции, отличные от ядра, показывают условия при которых активизируется продукция (C) и те последствия, которые возникнут после применения продукции (H).

Вернемся к рис.9. В треугольнике, показанном наверху, роль A играет информация о наличии конфликта из-за собаки. В зависимости от того, чем опасен такой конфликт, выполняется или не выполняется условие C. Информация о нем хранится в верхней вершине треугольника для метазнака. Если Джон считает, что конфликт опасен и не нужно оттеснять его из активной зоны внимания, то реализуется B, информация о котором представляется той вершиной треугольника, которая на рис.9 названа «Что делать?». В ней имеется информация о возможных (согласно рис.7) процедурах, которые могут вывести из конфликта. Анализируя постусловия применения этих процедур (т.е. результаты, к которым может привести их применение), Джон выберет для исполнения ту из них, которая соответствует наиболее благоприятному для него значению H.

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

На рис.10 мы имеем ситуацию, в чем-то сходную с той, которая была показана на рис.1. Только теперь вместо денотата реального мира имеется определенный фрагмент из сети знаков-фреймов. Этот фрагмент обладает собственным именем, специальным кодом, выделяющим данный метазнак среди остальных метазнаков. Знания о свойствах выделенного фрагмента составляют понятие об этом фрагменте, т.е. определяют семантику метазнака, а рекомендации о действиях в виде записей по типу продукций позволяют реализовать тот раздел знака-фрейма, который назывался в параграфе 7 «условия активности». Каждый элемент этого раздела имеет вид: (условие i; имя процедуры). Используя обозначения, принятые для продукций, можно представить эти элементы в виде:

(Ci, Ai, Hi; Bi).

Здесь в результате анализа условий применимости продукции Ci, когда Ai активизировалось, и с учетом оценки последствий Hi принимается решение об активизации процедуры с именем Bi .

Метауровень в знаковых представлениях нужен не только для реализации активности. Наличие метауровня позволяет делать гораздо большее. С помощью метазнаков можно проводить рассуждения о знаках, отвечать на вопросы о том, как устроена знаковая система (например, как выглядит или насколько сложна сеть из знаков-фреймов). Таким образом, появление метауровня позволяет реализовать свойство рефлексии или способности к самонаблюдению и самоанализу. Возможность рефлексивных рассуждений [28] существенно приближает знаковые системы к тем, которыми пользуется в своей повседневной практике человек.

Вернемся к рис.10. Как и в базовом треугольнике, определяющем знак, в треугольнике, определяющем метазнак, имеются внутренние связи. Связь, обозначенная цифрой 4, позволяет по имени (синтаксическому выражению знака) получать всю имеющуюся информацию о той сущности, с которой субъект столкнулся. И наоборот, некоторое описание, хранящееся в метазнаке, может получить при необходимости соответствующее ему синтаксическое выражение.

Связь, отмеченная цифрой 5, позволяет делать объяснения причин выполненных процедур («я хотел, чтобы Мери полюбила собак»), а в обратную сторону эта связь позволяет формировать действия на основании анализа той ситуации, которая характеризуется данным знаком (и, в частности, планировать наиболее целесообразную последовательность действий).

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

В системе, где используются знаки и метазнаки, должны также присутствовать специальные средства, с помощью которых могли бы реализоваться все процедуры, связанные с 4, 5 и 6. В системах ИИ подобная совокупность процедур обычно реализуется в блоках, называемых «планировщик» или «решатель». От того, насколько хорошо реализованы эти процедуры, во многом зависит эффективность работы интеллектуальных систем.

Основная семиотическая конструкция: треугольник Фреге

Термин «данные» распространен весьма широко. Он используется при решении задач на компьютерах, в системах передачи информации, в статистике и во многих других случаях. Его всеобщность такова, что никто не пытался давать точного определения понятия «данные». Этого и не требовалось до тех пор, пока не появился новый термин «знания», в какой-то мере противопоставляемый термину «данные». Такая ситуация требует уточнения того, что понимается под данными и знаниями.

Табл. 1. Сравнительный анализ основных характеристик

 

      ФОРМАЛЬНЫЕ СИСТЕМЫ

 

 

  СЕМИОТИЧЕСКИЕ СИСТЕМЫ

 

ЕДИНСТВЕННАЯ КЛАССИЧЕСКАЯ ЛОГИКА

 

 

СОСУЩЕСТВОВАНИЕ РАЗЛИЧНЫХ ЛОГИК (АЛГЕБР)

 

 

ВЫПОЛНЯЕТСЯ ЗАКОН ИСКЛЮЧЕННОГО ТРЕТЬЕГО

 

ЗАКОН ИСКЛЮЧЕННОГО ТРЕТЬЕГО НЕСПРАВЕДЛИВ

    

 

ЗАМКНУТЫЕ МИРЫ

 

 

ОТКРЫТЫЕ МИРЫ

 

 

МОНОТОННЫЙ ВЫВОД

 

НЕМОНОТОННЫЙ ВЫВОД

 

 

ПОСЛЕДОВАТЕЛЬНЫЙ  ВЫВОД

 

ПАРАЛЛЕЛЬНАЯ АРГУМЕНТАЦИЯ

 

 

НЕТ МУЛЬТИРЕЗОЛЮЦИИ

 

 

МУЛЬТИРЕЗОЛЮЦИЯ ВОЗМОЖНА

 

СТАТИЧЕСКИЕ МОДЕЛИ ЗНАНИЙ

 

 

ДИНАМИЧЕСКИЕ МОДЕЛИ ЗНАНИЙ

 

ПОСТОЯННАЯ ИНТЕРПРЕТАЦИЯ

 

ПЕРЕМЕННАЯ ИНТЕРПРЕТАЦИЯ

 

Нечто аналогичное было в информатике до тех пор, пока термин «алгоритм» не потребовал уточнения. Такая необходимость возникла с обнаружением алгоритмически неразрешимых проблем, т.е. проблем, для решения которых общий алгоритм построен быть не может. И тогда встал вопрос: «Что именно нельзя построить?» Ответ на него был невозможен без уточнения самого понятия «алгоритм». Это привело к появлению таких формальных конструкций, уточняющих понятие алгоритма, как машина Тьюринга или нормальный алгорифм Маркова.

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

Но прежде необходимо ввести несколько важных для дальнейшего изложения понятий. На рис.1 схематически показана конструкция, известная в семиотике как треугольник Фреге[20]. В реальном мире, окружающем человека, имеются некоторые сущности: объекты, явления, процессы. Их принято называть денотатами. Эти сущности, если они вычленяются человеком из общего фона реального мира, как-то отражаются в его сознании. В результате отражения возникают представления о денотатах. Представления могут быть образными, акустическими, тактильными или интегральными, объединяющими различные модальности нашего восприятия окружающего мира. Представления - это тот интегрированный образ (в психологии его часто называют гештальт), с которым имеет дело человек. Денотат, скрывающийся за гештальтом, непосредственно человеку недоступен, а постигается им лишь через некоторые представления, формулируемые его органами чувств или другими источниками информации о реальном мире.

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

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

Описанная схема возникновения треугольника, показанного на рис.1, весьма поверхностна. Здесь не хотелось бы вдаваться в подробное описание процесса формирования таких первичных представлений. Это – дело психологов и специалистов по теоретической семиотике. Но, в основных чертах, суть происходящего мы сохранили. Наблюдения за единичными проявлениями некоторой сущности вызывают необходимость дать ей имя (или узнать его), а затем формируют обобщенное представление об этой сущности (понятия).

Понятие о системе оптимального проектирования. Особенности организации программного комплекса.

 

Системой оптимального проектирования называется совокупность методов, алгоритмов и программ, реализующих с помощью ЭВМ автоматизированный поиск на математической модели проектируемого объекта таких конструктивных параметров, при которых критерий оптимальности конструкции имеет минимально (или максимально) возможное значение при условии выполнении ограничений, накладываемых требованиями стандартов, технических условий и технологии. Реализация на ЭВМ процедур оптимизации проектируемого технического объекта требует создания сложного программного комплекса. Основными требованиями к такому комплексу являются:

1) Гибкая система ввода-вывода информации, позволяющая вносить оперативные изменения в модель проектируемого объекта, а так же в исходные данные, как по результатам вычислений, так и в процессе счета.

2) Обеспечение эффективного использования алгоритмов оптимизации, включенных в систему, путем реализации процессов адаптации при поиске, предусматривающих своевременную смену алгоритмов в процессе решения задачи оптимизации.

3) Возможность расширения системы за счет включения в нее дополнительных алгоритмов.

4) Простота управляющего языка системы, делающая ее доступной для широкого круга пользователей.

5) Возможность использования программного комплекса автоматизации оптимального проектирования в системах коллективного пользования.

Обобщенная структура программного комплекса, реализующего оптимальное проектирование на ЭВМ, представлена на рис. 1.3.

image

1.3. Структура программного комплекса оптимального параметрического проектирования.

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

clip_image008 (6)

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

Управление алгоритмами включает в себя изменение поискового алгоритма, изменение процедур вычисления некоторых характеристик (градиента, гессиана и др.), а так же критерия прекращения поиска оптимума.

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

Управление специальными подсистемами проектирования предоставляет конструктору широкие возможности для исследования оптимального варианта изделия. Специальные подсистемы в режиме диалога могут осуществлять:

· Анализ окрестности оптимума с помощью представления на экране линий или поверхностей уровня критерия оптимальности, а так же отдельных проекций допустимой области;

· Выделение ограничений, существенных в точке оптимума, и варьирование их для определения возможностей улучшения определенных технико-экономических характеристик изделия за счет ослабления некоторых из ограничений;

· Варьирование проектировщиком отдельных проектируемых параметров с целью анализа выбранного технического решения;

· Наглядное представление результатов поиска оптимума в виде таблиц и графиков.

Определение системных ресурсов ПЭВМ

Цель работы: изучение и использование функций BIOS и DOS, системных данных и таблиц для решения задачи определения состава, типов и параметров присоединенного оборудования и некоторых других системных ресурсов и данных ПЭВМ:

1. типа персонального компьютера;

2. размера основной и дополнительной памяти;

3. даты изготовления базовой системы ввода/вывода;

4. числа и типов накопителей на магнитных дисках;

5. типа и параметров видеосистемы;

6. типов и числа других периферийных устройств;

7. номера версии установленной операционной системы.

Краткие теоретические сведения:

Для решения указанных задач предлагается составить программу на языке Turbo Pascal с использованием его расширенных возможностей, таких как : размещение переменных по абсолютным адресам памяти, непосредственный доступ к ячейкам памяти и портам, организация программных прерываний и системных вызовов, программирование на низком уровне. Кратко рассмотрим эти возможности Turbo Pascal. В Turbo Pascal имеются средства размещения переменных по конкретным адресам оперативной памяти. Такие переменные называются абсолютными. Для описания абсолютных переменных предназначено зарезервированное слово Absolute. Формат описания переменных этого типа выглядит так :

Var <идентификатор> : <тип> Absolute BA:BS;

Здесь BA:BS - абсолютный адрес ячейки оперативной памяти (байта памяти), начиная с которой отводится место для хранения значения переменной <идентификатор> указанного типа <тип>;

BA - базовый адрес сегмента; BS - смещение внутри этого сегмента.

Для работы с абсолютными переменными (определения абсолютных адресов переменных, записи и считывания информации из конкретных ячеек памяти) в Turbo Pascal имеется ряд стандартных подпрограмм : Addr, CSeg, DSeg, Ofs, Ptr, Seg, SSeg.

В Turbo Pascal определены пять предварительно объявленных массивов : Mem, MemW, MemL, Port и PortW. Первые три массива обеспечивают непосредственный доступ (запись и чтение) к любому участку памяти по абсолютному адресу, два других массива - доступ к портам ввода/вывода.

Для осуществления работы с регистрами процессора ПЭВМ, организации программных прерываний, использования большинства возможностей операционной системы MS-DOS предназначен системный модуль DOS Turbo Pascal.

Реализация всех этих возможностей практически всегда предполагает обращение к регистрам центрального процессора.

Для этих целей в модуле DOS определен специальный тип данных Registers :

Type Registers = Record

Case Integer of 0 : (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : Word);

1 : (AL, AH, BL, BH, CL, CH, DL, DH : Byte)

End;

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

Для организации программных прерываний и выполнения системных функций MS-DOS в модуле DOS Turbo Pascal имеются две стандартные процедуры Intr и MsDos.

Первая процедура Intr инициирует программное прерывание с требуемым номером:

Intr(Num_Int : Byte; var Regs : Registers);

Здесь : Num_Int - номер программного прерывания, которое не обходимо вызвать (0..255);

Regs - запись, в которой процедуре обработки прерывания с номером Num_Int передаётся содержимое регистров и в ней же возвращается выходная информация.

Язык Turbo Pascal допускает три основные возможности для использования средств программирования на низком уровне (язык машинных команд и фрагменты на языке Ассемблера) :

1. Можно написать одну или несколько процедур на языке Ассемблера (вне среды Turbo Pascal), оттранслировать их, получив объектные модули этих процедур, и затем подключить эти модули к Pascal-программе. Для этого в Turbo Pascal существует служебное слово External, указываемое в заголовке процедуры, и директива компилятора $L.

2. Turbo Pascal позволяет непосредственно включать в текст программы фрагменты, написанные на машинном коде. Это достигается использованием inline-операторов и inline-процедур.

3. Начиная с шестой версии Turbo Pascal появилась возможность включения в текст Pascal-программы фрагментов на языке Ассемблера. Средства, поддерживающие эту возможность, называют "встроенный Ассемблер".

ТЕКСТ ПРОГРАММЫ:

program xyz;

uses crt,dos,art,PRINTER;

type zapis=record

OS_Pam,DOP_PAm,Video_Pam:word;

Tip_Kompa,data_biosa:string[20];

NZMD,GMDA,GMDB,Displai,so_proch,igr,_print,MSDOS:string;

posled_port,paral_port:integer;

end;

var st:array [1..4] of string;

ch:integer;

My:zapis;

function type_Pc:string;

var s:byte absolute $F000:$FFFE;

begin

case s of

$FF:type_Pc:='Тип компьютера IBM PC';

$FD:type_Pc:=' Тип компьютера IBM PCjr';

$FE:type_Pc:= Тип компьютера IBM PC/XT';

$FC:type_Pc:=' Тип компьютера IBM PC/AT';

end;

end;

function MS_DOS:string;

var Regs:Registers;

s1,s2:string;

begin

Regs.AH:=$30;

MsDos(Regs);

str(Regs.AL,s1);str(Regs.AH,s2);

MS_DOS:='Версия MS-DOS '+s1+'.'+s2;

end;

procedure SIZE_MEM(var os:word;var dp:word;var video:word);

var Regs:Registers;

begin

os:=memw[$0000:$0413];

Intr($15,Regs);

dp:=Regs.AX;

video:=memw[$40:$4C];

end;

function Date_Bios:string;

var i:integer;

stroka:string;

W:byte;

begin

stroka:='';

write('Дата создания биоса ');w:=$0004;

for i:=1 to 8 do

begin

w:=w+1;

stroka:=stroka+chr(mem[$ffff:w]);

end;

Date_Bios:=stroka;

end;

function video_sys:string;

var regs:Registers;

begin

Regs.AH:=$1A;Regs.AL:=$00;

intr($10,regs);

case Regs.BL of

$00:video_sys:='Монохромный дисплей';

$01:video_sys:='Монохромний адаптер - Монохромный дисплей';

$02:video_sys:='Адаптер CGA-цветной дисплей';

$04:video_sys:='Адаптер EGA-цветной дисплей';

$05:video_sys:='Адаптер EGA-монохромный дисплей';

$07:video_sys:='Адаптер VGA-монохромный аналоговый дисплей';

$08:video_sys:='Адаптер VGA- цветной аналоговый дисплей';

$0A:video_sys:='Адаптер VGA- цветной цифровой дисплей';

end;

end;

function Kol_GMD(var s:string):string;

var i:integer;

k:byte;

begin

for i:=1 to 2 do

begin

port[$70]:=$10;

k:=port[$71];

if i=1 then k:=k shr 4 else k:=k shl 4;

case k of

0:s:='Дисковода нет или его тип не известен';

1:s:=' на 360 Kb, для дискет диаметром 5.25';

2:s:=' на 1.2 Mb, для дискет диаметром 5.25';

3:s:=' на 720 Kb, для дискет диаметром 3.5';

4:s:=' на 1.44 Mb, для дискет диаметром 3.5';

5:s:=' на 2.88 Mb, для дискет диаметром 3.5';

6:s:=' не установлен’;

end;

if i=1 then Kol_GMD:=s;

end;

end;

function kol_ZMD:string;

var k:byte;

s:string;

begin

k:=mem[$45:$75];

str(k,s);

kol_ZMD:='Колличество жеских магнитных дисков-'+s;

end;

function soproch:string;

var k:word;

begin

k:=memw[$40:$10] and 2;

k:=k shr 1;

if k=1 then soproch:='есть математический сопроцессор'

else soproch:=' математический сопроцессор отсутсвует';

end;

function igr_adap:string;

var k:word;

begin

k:=memw[$40:$10] and 4096;

k:=k shr 13;

if k=1 then igr_adap:='есть игровой адаптер '

else igr_adap:='игровой адаптер отсутсвует';

end;

function Kol_posled_port:integer;

var k:word;

begin

k:=memw[$40:$10];

k:=k shl 4;k:=k shr 13;

Kol_posled_port:=k;

end;

function Kol_paral_port:integer;

var k:word;

begin

k:=memw[$40:$10];

k:=k shr 14;

Kol_paral_port:=k;

end;

function print:string;

var k:word;

begin

k:=memw[$40:$10] and 4096;

k:=k shr 14;

if k=1 then print:='установлен последовательный принтер'

else print:=' последовательный принтер не установлен’;

end;

procedure zopolnenie;

begin

with my do

begin

tip_kompa:=type_pc;

size_mem(os_pam,dop_pam,video_pam);

data_biosa:=Date_Bios;

GMDA:=Kol_GMD(GMDB);

displai:=video_sys;

NZMD:=kol_ZMD;

so_proch:=soproch;

igr:=igr_adap;

_print:=print;

posled_port:=Kol_posled_port;

paral_port:=Kol_paral_port;

MSDOS:=MS_DOS;

end;

end;

procedure vivod_disp;

begin

clrscr;

with my do

begin

textcolor(2);writeln(' ОБЩИЕ СВЕДЕНИЯ'); textcolor(7);

writeln(tip_kompa);writeln(MSDOS);

writeln('Дата создания BIOSa-',data_biosa);

textcolor(2);Writeln(' ПАМЯТЬ ');textcolor(7);

writeln('Колличество основной памяти (Kб)-',os_pam);

writeln('Колличество дополнительной памяти(Kб)-',dop_pam);

writeln('Память видео страницы(байт)-',video_pam);

textcolor(2);writeln(' ДИСКИ');textcolor(7);

writeln('Дисковод A:',GMDA);

writeln('Дисковод B:',GMDB);

writeln(NZMD);

textcolor(2);writeln(' ВИДЕО');textcolor(7);

writeln(displai);

textcolor(2);writeln(' ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ');textcolor(7);

writeln(so_proch);

writeln(igr);

writeln(_print);

writeln('Колличество последовательных портов -',posled_port);

writeln(' Колличество паралельных портов -',paral_port);

end;

end;

procedure vivod_fail;

var f:text;

s:string;

begin

clrscr;

write('Введите путь к файлу -');readln(s);

assign(f,s);rewrite(f);

with my do

begin

writeln(f,' ОБЩИЕ СВЕДЕНИЯ');

writeln(f,tip_kompa);writeln(f,MSDOS);

writeln(f,'Дата создания BIOSa-',data_biosa);

Writeln(f,' ПАМЯТЬ');

writeln(f,'Колличество основной памяти (Kб)-',os_pam);

writeln(f,'Колличество дополнительной памяти (Kб)-',dop_pam);

writeln(f,'Память видео страницы (байт)-',video_pam);

writeln(f,' ДИСКИ');

writeln(f,'Дисковод A:',GMDA);

writeln(f,'Дисковод B:',GMDB);

writeln(f,NZMD);

writeln(f,' ВИДЕО');

writeln(f,displai);

writeln(f,' ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ ');

writeln(f,so_proch);

writeln(f,igr);

writeln(f,_print);

writeln(f,'Колличество последовательных портов -',posled_port);

writeln(f,' Колличество паралельных портов -',paral_port);

end;

close(f);

end;

procedure vivod_print;

var Lst:text;

s:string;

begin

clrscr;

write('Введите путь к файлу -');readln(s);

assign(Lst,s);reset(lst);

while not eof(Lst) do

begin

readln(Lst,s);

writeln(Lst,s);

end;

close(Lst);

end;

BEGIN

clrscr;

st[1]:='Вивод информации на дисплей';st[2]:='Вывод информации в файл';

st[3]:='Вывод информации на принтер';st[4]:='Выход';

zopolnenie;

repeat

ch:=menu_s(st,4,0,0);

case ch of

1:begin vivod_disp;readln;end;

2:vivod_fail;

3:vivod_print;

end;

until ch=4 ;

END.

РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ:

OBCHIE SVEDENIYA

Tip kompa IBM PC/AT

Versiya MSDOS 5.0

data sozdaniya BIOSa-03/28/02

PAMYAT'

kollicestvo osnovnoi pamyati(Kb)-640

kollicestvo dopolnitel'noi pamyati(Kb)-34336

Pamyat' video stranichi(bait)-4096

DISKI

Diskovod A: na 1.44 Mb, dlya disket diametrom 3.5

Diskovod B:Diskovoda net ili ego tip neizvesten

Kolichestvo zhestkih magnitnih diskov-0

VIDEO

Adapter VGA-chvetnoi analogovii displai

DOPOLNITEL'NIE SVEDENIYA

est' matematicheskii soprochessor

igrovoi adapter otsytstvyet

posledovatel'nii printer ne ystanovlen

kolichestvo poslrdovatel'nih portov-4

kolichestvo paralel'nih portov-3