<<
>>

3.2. Структуры данных и знаний экспертной системы

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

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

Структура фрагмента реляционной базы данных - банка данных по составу и структуре микробиоценозов для модели (42) представлена ниже:

Рис. 19. Структура фрагмента базы данных для модели (42).

На рис. 19. таблицы SP_MICR, SP_SUBSTR, SP_PRODUCT - справоч-

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

дуктах метаболизма соответственно. Таблицы              MICRSUBSTR,

MICR_PRODUCT и PRODUCT MICR содержат информацию, отражающую

характер взаимосвязей между элементами микробиоценозов. По запросу к

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

микроорганизмов, необходимую для моделирования. Таким образом, полно-

та и достоверность данных во многом будут определять адекватность полу-

ченных результатов.

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

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

1

Рис. 20. Структура банка дифференциальных моделей.

Таблица SP_DMODEL - справочник моделей (табл.

6), PAR - параметры (коэффициенты) моделей (табл. 7), FPER- фазовые переменные (табл. 8). Ниже представлено содержание таблиц банка дифференциальных моделей для двух моделей.

Таблица 6. Фрагмент записей таблицы SP_DMODEL, для двух моделей.

DMODEL ID

CODE

NAME

N

Nk

DY

100

21

Модель развития двух популяций («Биологическая защита»)

5

16

dX/dt=mx*X*S/((ksx+S)*(l+kpyx*Py)

*( 1 +kpxx*Px))-bxx*X*Px-byx*X*Py-bx*X*X;

dS/dt=-qsx* X* S/((ksx+S) *( 1 +kpyx* Py) *(l+kpxx*Px))-qsy*Y*S/((ksy+S)*(l+kpyy*Py));

dPx/dt=qpx*X* S/((ksx+S)*( 1 +kpyx*Py) *(l+kpxx*Px));

dY/dt=my*Y*S/((ksy+S)*(l+kpyy*Py))-byy*Y*Py -by*Y*Y;

dPy/dt=qpy*Y*S/((ksy+S)*(l+kpyy*Py));

120

17

Модель развития одной популяции

3

7

dX/dt=m*X*S/((ks+S)*(l+kp*P))-bl*X*P-b2*X*X;

dS/dt=-qs*X*S/((ks+S)*( 1 +kp*P)); dP/dt=qp*X*S/((ks+S)*(l+kp*P));

Таблица 7. Фрагмент записей таблицы PAR, для двух моделей.

DMODEL ID

NUM PP

NAME

LNAME

DEF VALUE

100

1

Максимальная удельная скорость роста

mx

0,19

100

2

Максимальная удельная скорость роста

my

0,84

1

DMODEL ID

NUM PP

NAME

LNAME

DEF VALUE

100

3

Максимальная удельная  скорость потребления субстрата

qsx

0,075

100

4

Коэффициент насыщения

ksx

50

100

5

Максимальная удельная скорость выработки метаболита

qpx

0,06

100

6

Максимальная  удельная  скорость потребления субстрата

qsy

0,065

100

7

Коэффициент насыщения

ksy

40

100

8

Максимальная  удельная  скорость выработки метаболита

qpy

0,07

100

9

Коэффициент

kpxx

0,001

100

10

Коэффициент

kpyx

0,001

100

11

Коэффициент

kpyy

0,001

100

12

Коэффициент

bxx

0,002

100

13

Коэффициент

byx

0,005

100

14

Коэффициент

bx

0,001

100

15

Коэффициент

byy

0,002

100

16

Коэффициент

by

0,001

120

1

Максимальная удельная  скорость роста

m

0,75

120

2

Коэффициент

bl

0,002

120

3

Коэффициент

b2

0,001

120

4

Коэффициент

kp

0,01

120

5

Коэффициент насыщения

ks

119

120

6

Максимальная удельная скорость потребления субстрата

qs

0,09

120

7

Максимальная удельная  скорость выработки метаболита

qp

0,03

Таблица 8. Фрагмент записей таблицы FPER, для двух моделей.

DMODEL ID

NUM PP

NAME

LNAME

DEF VALUE

DESCRIPTION

100

1

численность

X

75

-

100

2

субстрат

S

513

-

100

3

метаболит

Рх

1

-

100

4

численность

Y

1

-

100

5

метаболит

РУ

1

-

120

1

численность

X

4

-

120

2

субстрат

S

562

-

120

3

метаболит

Р

2

-

Строковое поле DY в таблице SP_DMODEL содержит представление системы дифференциальных уравнений в общепринятом виде.

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

Ниже представлен вариант кода на алгоритмическом языке Pascal, содержащий запись системы уравнений модели 21 (табл. 6) для интерпретатора FastScript 1.7. В процессе инициализации модели устанавливаются значения элементов массива коэффициентов к и выполняется интерпретирование представленного ниже кода, а при решении системы уравнений для получения значений массива производных Dy задаётся массив значений переменных Yt в момент времени t, затем происходит вызов процедуры pDy, после чего массив Dy считывается основной программой, var

t: extended; //время

k: array [0..15] of extended; // массив значений коэффициентов

Yt: array[0..4] of extended; //массив значений переменных в момент времени t

Dy: array[0..4] of extended; // массив значений производных в момент времени t

//.                                         

//Система дифференциальных уравнений

procedure pDy;

begin

Dy[0] :=k[0]*YttO]*Yt[l]/((k[3J+Yt[l])*(l+k[9]*Yt[4])*(l+k[8]*Yt[2])gt; k[ll]1"Yt[0]*Yt[2]-k[12]HcYt[0]*Yt[4]-k[13]*Yt[0]*Yt[0];

Dy[l] := -k[2]*Yt[0]*Yt[l]/((k[3]+Yt[l])*(l+k[9]*Yt[4])*(l+k[8]*Yt[2]))-k[5]*Yt[3]*Yt[l]/((k[6]+Yt[l])*(l+k[10]*Yt[4]));

Dy[2] := k[4]*Yt[0]*Yt[l]/((k[3]+Yt[l])*(l+k[9]*Yt[4])*(l+k[8]*Yt[2]));

Dy[3] := k[l]*Yt[3]*Yt[l]/((k[6]+Yt[l])*(l+k[10]*Yt[4]))-k[14]*Yt[3]*Yt[4]-k[15]*Yt[3]*Yt[3];

Dy[4] := k[7]*Yt[3]*Yt[l]/((k[6]+Yt[l])*(l+k[10]*Yt[4]));

end;

//-             

begin

end.

Блок-схема алгоритма предварительной интерпретации системы уравнений для банка дифференциальных моделей представлена на рис.

21.

Рис. 21. Блок-схеме алгоритма предварительной интерпретации.

1

Интерпретатор FastScript 1.7. компании FastReports реализован как компонент среды разработки приложений Borland Delphi, и позволяет программам интерпретировать во время выполнения код на различных алгоритмических языках (PascalScript, BasicScript, JavaScript, C++Script).

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

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

Рис. 22. Структура банка интегрированных моделей.

1

На рис. 22. таблицы SPINTGMODEL, SPREGMODEL - справочники интегрированных и регрессионных моделей соответственно, таблицы PAR, FPER, REGPAR, REG_PER - содержат информацию о коэффициентах и переменных моделей. Таблица rNTG_REG содержит информацию о регрессионных зависимостях применяемых в интегрированной модели, однако конкретный вид зависимости и значения её коэффициентов будут определяться, в результате обработки экспериментальных данных согласно алгоритму, представленному на рис. 18.

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

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

 

<< | >>
Источник: Давыдов Лхтям Анверович. Имитационное моделирование динамики взаимодействия популяций микроорганизмов в технологияк производства сырокопчёных колбас. [Электронный ресурс]:  Дис.   ...   канд.   техн. наук  :   05.13.18   .-М.:  РГБ,   2005. 2005

Еще по теме 3.2. Структуры данных и знаний экспертной системы: