Глаубер

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

Glauber был написан, среди прочих программ, Пэтом Лэнгли, Гербертом А. Саймоном , Г. Брэдшоу и Дж. Житковым, чтобы продемонстрировать, как научные открытия могут быть получены с помощью методов решения проблем , в их книге «Научные открытия, вычислительные исследования творческого разума » . [1]

Их программы моделируют исторические научные открытия на основе эмпирических данных, известных на момент открытия.

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

Вкратце закон:

Кислота + Щелочь --> Соль

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

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

Глаубер был весьма успешным достижением в теоретической химии , выполненным с помощью компьютера, и он, наряду с аналогичными системами, разработанными Гербертом А. Саймоном, включая Stahl (которая исследует окисление ) и DALTON (которая вычисляет атомный вес ), помог сформировать основу всего современного автоматизированного химического анализа.

Метод Глаубера

Представление информации (структуры данных)

Глаубер использует два предиката: Reacts и Has-Quality, представленные в списках Lisp следующим образом:

(Реакции Входы {реагент 1 реагент 2 ...} Выходы {продукт 1 продукт 2 ...})
(Имеет-Качество Объект {субстанция} качество {значение})

Для своего эксперимента авторы использовали следующие факты:

(Реакции Входы {HCl NaOH} Выходы {NaCl})
(Реакции Входы {HCl KOH} Выходы {KCl})
(Реакция Входы {HNO 3 NaOH} Выходы {NaNO 3 })
(Реакции Входы {HNO 3 KOH} Выходы {KNO 3 })
(Объект качества {HCl} имеет вкус {кислый})
(Объект имеет качество {HNO 3 } Вкус {Кислый})
(Объект качества {NaOH} имеет вкус {горький})
(Объект качества {KOH} имеет вкус {горький})
(Объект качества {NaCl} имеет вкус {Соленый})
(Объект качества {NaNO 3 } Вкус {Солёный})
(Объект качества {KCl} имеет вкус {Соленый})
(Объект имеет качество {KNO 3 } Вкус {Соленый})

Обнаружение следующих классов законов и эквивалентностей:

Соли: {KNO3 , KCl, NaNO3 , NaCl}
Кислоты: {HCl, HNO 3 }
Щелочи: {NaOH, KOH}
∀ щелочь ∀ кислота ∃ соль (Реагирует Входы {кислота, щелочь} Выходы {соль})
∀ соль (Объект имеет качество {соль}, имеет вкус {соленый})
∀ кислота (Объект имеет качество {кислота}, вкус {кислый})
∀ щелочь (Объект имеет качество {щелочь} Вкус {горький})

Современная нотация со строками типа: NaOH, HCl и т. д. используется просто как краткие названия веществ. Здесь не имеется в виду химическая структура веществ, которая не была известна на момент открытия; программа работает с любым названием, используемым в 17 веке, например, царская водка , соляная кислота и т. д.

Процедуры

Glauber основан на двух процедурах: Form-Class и Define-Quantifier. Процедура Form-Class обобщает предикаты Reacts, заменяя названия веществ переменными, ранжирующимися по классам эквивалентности, определяемым качеством, значение которого отличает вещества в каждом классе. В эксперименте, разработанном его авторами, вещества разделены на три класса на основе значения вкусового качества, основанного на их значениях: кислоты (кислые), щелочи (горькие) и соли (соленые).

Основная процедура Глаубера

Входные данные : наборы предикатов Reacts и Has-Quality
Вывод : При успешном выполнении возвращает обобщенную версию предиката Reacts, переменные которого находятся в пределах классов эквивалентности, и новый предикат Class, который похож на Has-Quality, но имеет имя-класс вместо имени субстанции: (Has-Quality {имя-класса} качество {значение})
  1. Если в предикатах Reacts больше нет названий субстанций, то закончите
  2. обработать предикаты Reacts с помощью процедуры Form-Class
  3. обработать результат предыдущего шага с помощью Define-Quantifier
  4. перейти к шагу 3

Форма-Класс

Входные данные : наборы предикатов Reacts и Has-Quality
Вывод : новый класс веществ, новый Has-Quality и новый набор предикатов Reacts
  1. Подсчитайте количество вхождений каждого качества {value} в предикатах Has-Quality
  2. Выберите значение качества с наибольшим количеством вхождений, какие вещества находятся в предикатах Reacts
  3. Придумайте название для класса.
  4. Сгенерируйте новый набор предикатов Has-Quality, удалив все предикаты в Has-Quality с выбранным качеством {value} и добавив предикат (Has-Quality {class-name} quality {value}) к предикатам Class, где class-name — это имя, полученное на шаге 3.
  5. Сгенерируйте новый набор предикатов Reacts, заменив имя вещества в классе, сформированном на шаге 2, на имя, созданное на шаге 3.
  6. Создайте новое расширение класса, связав имя, сгенерированное на шаге 3, с набором всех веществ в классе, выбранном на шаге 2.

Определить-Квантификатор

Входные данные : наборы предикатов Reacts, Has-Quality и Class (сгенерированные Form-Class)
Выходные данные : преднамеренный квантифицированный класс, соответствующий экстенсиональному классу, сгенерированному Form-Class, новый набор предикатов Reacts, расширенный соответствующим квантификатором последнего обнаруженного класса, полученного от Form-Class.
  1. Универсально количественно определить правило для определения класса
    (Имеет-Качество {имя-класса} качество {значение}) => (∀ имя-класса (Имеет-Качество {имя-класса} качество {значение}))
  2. Сгенерировать предикаты Reacts, заменив каждое вещество в новом классе на его имя класса в предикатах Reacts.
  3. если все предикаты, сгенерированные на предыдущем шаге, содержатся в исходном наборе
    затем количественно определить универсально
    иначе количественно определить экзистенциально


Ссылки

  1. ^ Лэнгли, Патрик; Саймон, Герберт А.; Брэдшоу, Г.; Зитков, Дж. (1987). Научное открытие, вычислительные исследования творческого разума . Кембридж, Массачусетс: MIT Press. ISBN 0-262-62052-9.
Взято с "https://en.wikipedia.org/w/index.php?title=Глаубер&oldid=1032218699"