Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Слэйгл Д. Искусственный интеллект. Подход на основе эвристического программирования

.pdf
Скачиваний:
13
Добавлен:
25.10.2023
Размер:
12.47 Mб
Скачать

О Б Щ И Й Р Е Ш А Т Е Л Ь З А Д А Ч

(GPS)

 

 

 

 

 

181

N e w e l l

A.,

S h a w

J.

С ,

S i m о п H . ,

«A

Variety

of

Intel-

lisent Learning in a GenerdI

Problem-Solver, см. Yuvits

M. C.

ami

Camerun

S. (eiis. ), «Sei I-Urganizint;

Systems», Pergamun

Press,

New

York 1У60. pp.

153—10У; русский .іереиид: см. в сб. «Само­

организующиеся

системы»,

гид-ьо

»Л\ир»,

196-1.

 

 

Q u i n t a n

J.

R.,

«A

la^k-l ndependent Experience

Gathering

Sciieme fur a Problem Sulver», Proc.

Intern.

Joint Coni.

A r t i f i ­

cial

intelligence,

1У69,

pp.

193—198.

 

 

 

 

9 Программы, управляющие

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

В этой главе рассматриваются некоторые оставленные до сих пор не освещенными вопросы, касающиеся много­ целевых программ и программ для решения задач. Ана­ лиз основной решающей процедуры, используемой в про­ грамме, управляющей сборочными конвейерами, указы­ вает на то, что эта программа является многоцелевой в том же самом смысле, что и GPS или MULTIPLE. Эта программа, по-видимому, войдет в практику как эффек­ тивный по своим вычислительным возможностям метод балансирования работы сборочного конвейера. Программа, способная составлять нетривиальные программы, могла бы усовершенствовать одну из своих собственных про­ грамм и, применяя эту усовершенствованную программу, последовательно улучшать свои характеристики. Опи­

сываемые здесь

две

программы для

составления

про­

грамм— всего

лишь

предварительные

попытки сделать

первый шаг на

пути

к достижению этой далекой

цели.

Методы составления программ «Эвристическим Компиля­

тором»

подобны методам,

используемым при решении

задач

программой

GPS.

Была составлена программа,

сочиняющая музыку

в соответствии с правилами конт­

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

1 Итальянский композитор X V I в. — Прим.

перев.

Р А З Л И Ч Н Ы Е И Н Т Е Л Л Е К Т У А Л Ь Н Ы Е П Р О Г Р А М М Ы

183

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

9.1. ПРОГРАММА

Д Л Я

Б А Л А Н С И Р О В А Н И Я

С Б О Р О Ч Н Ы Х К О Н В Е Й Е Р О В

Фред Тонге

(1965)

создал машинную программу для

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

смысле,

что

и

решающие процедуры, используемые в

GPS (гл.

8)

или

MULTIPLE (гл. 7). При сравнительно

малом числе попыток эта программа нашла очень хоро­ шие решения. Она, по-видимому, найдет практическое применение как эффективный по своим вычислительным возможностям метод балансирования работы сборочного конвейера.

Задача балансирования работы сборочного конвейера. В задаче балансирования работы сборочного конвейера задается время выполнения цикла и множество операций Ui- Выполнение каждой операции требует известного времени очередность выполнения операций частично упорядочена. На фиг. 9.1 показана задача с временем

цикла 21 и с частично упорядоченным множеством

опера­

ций — каждая вершина

определяет операцию и

связан­

ное с ней время,

а стрелки

показывают

порядок

выпол­

нения

операций.

Операция

ІІг имеет время выполнения

ty

4, и она должна

быть

выполнена

до операций U2

и

U3.

Решение задачи состоит в распределении операций

по рабочим местам, причем должны выполняться следую­ щие условия:

А. Каждая операция должна быть рассчитана на вы­ полнение в точности на одном рабочем месте.

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

184

Г Л А В А 9

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

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

Эвристика А: Выбрать операцию с наибольшим вре­ менем выполнения.

Эвристика Б: Выбрать операцию, за которой следуют наиболее срочные операции

7

Ф и г . 9.1. Задача балансирования сборочного конвейера.

Время цикла равно 21.

Р А З Л И Ч Н Ы Е И Н Т Е Л Л Е К Т У А Л Ь Н Ы Е П Р О Г Р А М М Ы

185

Общая

и специальная вероятностные процедуры. О б-

щ а я вероятностная

процедура объясняется

ниже на

конкретном

примере

балансирования работы

конвейера.

A.

Начать

работу.

 

 

B.

Начать

попытку

поиска

решения.

C.

Охарактеризовать

(через

признаки) ситуацию.

D.Выбрать по вероятностному закону решающее правило.

E.Применить правило для изменения ситуации.

F.Если попытка иаитн решение не завершена, пе­ рейти к шагу С.

G.Оценить решение. Если получилось лучшее реше­ ние, повысить вес использованного решающего правила

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

*данным набором признаков. Если получилось худшее решение, понизить веса использованного решающего пра­ вила.

H .

Если работа не

завершена,

перейти

к

шагу

В.

I . Выдать наилучшее решение на печать и остано­

виться.

 

 

 

 

 

 

С п е ц и а л ь н а я

вероятностная процедура

при

распределении операций

по рабочим

местам на

сборочной

линии

выбирает по вероятностному

закону

эвристику, в

соответствии с которой определяется следующая опера­

ция, добавляющаяся к уже назначенным на

данное рабо­

чее место операциям. Специальная процедура

описывается

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

бочее место. Так, в нашем примере

имеется 21

признак

(первое задание, второе задание,

двадцать

первое

задание), с каждым из которых связаны пара правил

(эвристики А и Б) и вероятности,

характеризующие воз­

можность их

использования

для

каждого

из заданий.

В силу того что

с каждым из

21

признака

связаны оба

правила выбора,

имеются 42 вероятности. Работа была

прекращена

после 20 попыток.

 

 

Что касается обучения, то вес каждого правила для каждой категории первоначально равнялся 50. Каждое успешное применение правила «поощрялось» добавлением к его весу числа 10. «Наказание» заключалось в вычита-

186

ГЛАВА 9

нии числа

10. Значения весов не могли уменьшаться ниже

+ 5. Вероятность выбора правила для конкретного при­ знака равнялась ее весу, деленному на сумму весов правил, связанных с этим признаком.

Выводы. Описанная выше специальная вероятностная процедура пспытывалась на многих задачах балансиро­ вания работы сборочных конвейеров. После сравнитель­ но небольшого числа попыток она находила очень хоро­ шие решения. Она, вероятно, войдет в практику как эф­ фективный по своим вычислительным возможностям ме­ тод балансирования работы сборочных конвейеров. Вви­ ду небольшого числа (20) попыток процедура обучения была малоэффективной. Таким образом, для оценки про­ цедуры обучения необходимы эксперименты с задачами, в которых потребуется большее число попыток.

Действия специальной вероятностной процедуры во многих задачах управления сборочными линиями сравни­ вались с действиями в этих же задачах трех других про­ цедур. В одной процедуре применялась лишь эвристика А, в другой — лишь эвристика Б. Вероятностное объедине­ ние эвристик привело к равноценному или лучшему балан­ сированию (во всех задачах, кроме одной), чем при при­ менении эвристик, взятых порознь. Специальная вероят­ ностная процедура проявила себя также лучше, чем третья изучаемая процедура, в которой по случайному закону выбирались не эвристики, а операции.

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

Р А З Л И Ч Н Ы Е И Н Т Е Л Л Е К Т У А Л Ь Н Ы Е П Р О Г Р А М М Ы

187

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

дизъюнктивного поиска (описанную в разд.

6.1).

которая

работает с упорядоченным списком разных

подцелей —

от наилучшей к наихудшей. Конечная цель

G

внешнего

дизъюнктивного дерева — это балансирование конвейера

сборки. Каждая

связь

соответствует

назначению набо­

ра операций на

рабочее

место. При

каждом определен­

ном способе назначения операций на первое рабочее место

возникает подцель G,- уровня

1,

соответствующая задаче

размещения по сборочной

линии

оставшихся операций,

т. е. тех операций, которые

не

представлены связью

от G

к G,-. Каждая цель уровня

2

состоит в размещении

опе­

раций, оставшихся после распределения операций по первым двум рабочим местам и т. д.

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

каждого

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

цель на

внешнем дереве. Выходной сигнал состоит из

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

ва

повторяющихся

подцелей.

 

 

 

Разработанная

Тонге

общая

вероятностная

процедура

в

значительной степени

столь

же универсальна, как и

GPS или MULTIPLE. Тем самым ей ПРИСУЩИ

рассматри­

вавшиеся в гл. 7 положительные свойства многоцелевых процедур. Общая вероятностная процедура представляется

188

ГЛАВА 9

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

9.2. "ПРОГРАММА, СОСТАВЛЯЮЩАЯ ПРОГРАММЫ

В этом и следующем разделах описываются две про­ граммы для составления программ. Эти программы не являются обычными компиляторами (такими, например, как компилятор с ФОРТРАНа), которым дается описание программ на входном языке (например, на ФОРТРАНс) с тем, чтобы они превратили ее в программы па машин­ ном языке. Составление нетривиальной программы пред­ ставляет собой сложную интеллектуальную задачу. Она вызывает большой интерес еще и в силу того, что про­ грамма, способная составлять нетривиальные програм­ мы, может усовершенствовать одну из своих собственных подпрограмм и тем самым улучшить свои характеристики. В частности, программа может усовершенствовать те подпрограммы, которые ответственны за составление про­ грамм. Описываемые ниже две программы представляют собой лишь предварительные попытки совершить первый шаг на пути к этой далекой цели. Для составления про­ грамм использовались также программы, в которых во­ площен принцип резолюции (Грин, 19G9; Уолдпнджер и Ли, 1969).

Разработанный Г. Саймоном (1963) «Эвристический Компилятор» представляет собой в действительности две

более

или

менее

независимые

программы — «Компиля­

тор Описания

Состояний»

и «Компилятор Описания Про­

грамм». Обе

эти

части составляют программы подобно

тому,

как

решает

задачи

GPS.

Обе части составляют

программы на языке программирования ИПЛ-Ѵ (Ныоэлл, 1961), созданном для оперирования списковыми структу­ рами. Саймон стремился при этом углубить свое понима­

ние

принципов решения

задач, которые используются

при

программировании,

а также типов языков и средств

представления, которые необходимы для разработки бо­ лее сложных компиляторов.

Компилятор Описания Состояний, входящий в Эври­ стический Компилятор, оперирует описаниями входных

Р А З Л И Ч Н Ы Е И Н Т Е Л Л Е К Т У А Л Ь Н Ы Е П Р О Г Р А М М Ы

189

и выходных состояний. Описание входных и выходных состоянии для программы на языке МП Л-Ѵ — это опи­ сание содержимого используемых ячеек до и после вы­ полнения программы. Первоначально Компилятору Опи­ сания Состояний дается список элементарных операто­ ров (команд на языке 1-ІПЛ-Ѵ). Вместе с каждой такой командой дается описание входного состояния I, описа­ ние выходного состояния О и различие, которое эта ко­ манда призвана устранять. После этого компилятору дается ряд целей. Каждая цель заключается в составле­ нии на языке ИПЛ-Ѵ такой программы, которая преоб­ разует описание данного входного состояния Іа в описа­

ние

данного выходного состояния 0 0 .

Если Іа совпадает

с 00 ,

компилятор сообщает о достижении цели. Этот ком­

пилятор, действуя почти как GPS, определяет различие

между Іа и 0„, a затем соответствующую

команду ИПЛ-Ѵ,

которая способна устранить это различие. Если эта коман­ да преобразует описание начального состояния \ь в опи­ сание выходного состояния ОЬ, то первоначальная цель преобразуется в конъюнкцию двух целей, а именно пре­

образовать Іа в \ь и

преобразовать 0 0

в Оа . Часто одна

из этих целей (или

обе) оказываются

непосредственно

достижимы, если к ним применить унификацию, т. е.

если, например, после подстановки

в 0 0

константы вместо

переменной цель ОЬ превращается

в

цель 0 о . Данный

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

программу на языке ИПЛ-Ѵ, состоящую из двух

команд.

Для

Компилятора

Описания

Программ — составной

части

Эвристического

Компилятора — входным

сигна­

лом является словесное описание

программы,

которую

надо написать на языке ИПЛ-Ѵ. Словесное описание — это предложение на ограниченном английском языке. Первая фаза состоит в том, что Компилятор Описания Программ ищет в списке программ на языке ИПЛ-Ѵ такую программу, словесное описание которой как можно ближе соответствует словесному описанию той програм­

мы, которую

требуется

написать. Конечная фаза состоит

в том, что

компилятор

преобразует (аналогично GPS)

словесное описание найденной программы, на языке ИПЛ-Ѵ

190

 

 

Г Л А ВА 9

в словесное описание желаемой программы.

Компилятор

соответствующим

образом преобразовывает

найденную

на языке ИПЛ-Ѵ

программу в

желаемую

программу.

Компилятор Описания Программ

составил

программы

на языке ИПЛ-Ѵ из двух команд

и из семи

команд.

9.3.ПРОГРАММА, КОТОРАЯ ОБУЧАЕТСЯ СОСТАВЛЯТЬ ПРОГРАММЫ

Фридберг, Данхэм и Норт (1958, 1959) разработали программу, которая в некотором смысле обучается со­ ставлять программы. Эта программа составляет програм­ мы решения самых простых задач па простейшей гипоте­ тической вычислительной машине. На самом деле имеют­ ся три программы (названные «студентами») для состав­ ления программ, и они в условиях эксперимента сравни­ ваются друг с другом. Каждый студент представляет «свою» программу на рассмотрение «своего» учителя, ко­ торым является другая программа. Поведение, которому программа обучилась, в экспериментальных условиях значительно уступало поведению, формируемому по слу­ чайному закону, но способность осуществлять декомпо­ зицию задачи на части и оперировать с этими частями в порядке их сложности оказалась полезной.

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

В каждой задаче указывается состояние входных ячеек, выходных ячеек и критерия, по которому учитель опреде­ ляет успех или неудачу. Например, в задаче IDENTITY (ТОЖДЕСТВО) необходимо, чтобы выходной двоичный код (т. е. 0 или 1) был тождествен входному двоичному коду. В задаче AND (КОНЪЮНКЦИЯ) выходному

Соседние файлы в папке книги из ГПНТБ