МЕХАНИЗМЫ ИНТЕРПРЕТАЦИИ ЗНАНИЙ



страница4/7
Дата01.06.2016
Размер2.34 Mb.
ТипУчебное пособие
1   2   3   4   5   6   7

МЕХАНИЗМЫ ИНТЕРПРЕТАЦИИ ЗНАНИЙ


6.1. Интерпретация логических моделей представления знаний,
основанных на исчислениях

Автоматическое доказательство теорем в исчислениях высказываний и предикатов первого порядка как одно из направлений исследований в области искусственного интеллекта [20] берет свое начало в работах французского математика Ж. Эрбрана. В 1930 году он предложил механическую процедуру доказательства общезначимости для формул, которые действительно общезначимы. Однако шестью годами позже американский математик А. Чёрч показал, что в случае произвольной функции эффективной процедуры решения данной проблемы не существует. Поэтому исчисления высказываний и предикатов первого порядка называют полуразрешимыми.

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

Привести правило логического следования к более конструктивному виду позволяют две теоремы [8].



Теорема 1. Формула является логическим следствием формул тогда и только тогда, когда формула

(6.1)

общезначима. При этом формула (6.1) называется теоремой, а заключением теоремы.

Теорема 2. Формула является логическим следствием формул тогда и только тогда, когда формула

(6.2)

противоречива (невыполнима).

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

Надо заметить, что с практической точки зрения удобнее доказывать невыполнимость формулы (6.2), которая, как правило, и берется за основу. Однако в случае использования исчисления предикатов первого порядка, прежде чем перейти к этому, необходимо привести (6.2) к так называемой Сколемовской стандартной форме (ССФ) [8], т.е. конъюнкции дизъюнктов, объединенных кванторами общности:



, (6.3)

где дизъюнкты;

предметные переменные, входящие в дизъюнкты.

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



Далее при доказательстве невыполнимости формулы (6.3) можно оперировать понятием множества дизъюнктов , понимая под невыполнимым множеством невыполнимость формулы (6.3).

С помощью предложенной Ж. Эрбраном механической процедуры [8, 16, 20] проверка невыполнимости множества дизъюнктов осуществляется на множестве интерпретаций, называемом универсумом Эрбрана. Это множество, формируемое в виде последовательности по следующему закону: множество констант, появляющихся в множестве дизъюнктов (если таковых нет, то в включается некоторая константа , т.е. ); где все встречающиеся в n-местные функциональные символы, элементы множества ; i-й уровень , универсум Эрбрана.

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

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

Таким образом, если по определенному закону строить множества фундаментальных примеров дизъюнктов и последовательно проверять их на невыполнимость, то, согласно теореме Эрбрана, для невыполнимого множества после шагов процедура обнаружит невыполнимое множество фундаментальных примеров .

Надо заметить, что число генерируемых и исследуемых фундаментальных примеров дизъюнктов экспоненциально растет с увеличением номера i задействованного уровня универсума Эрбрана. Кроме того, использованный Гилмором в реализации процедуры мультипликативный метод приведения КНФ к ДНФ (для исследования формируемых множеств фундаментальных примеров на невыполнимость) оказывается чрезвычайно неэффективным.



Сформулированный в 1965 году Дж. Робинсоном принцип резолюции определил по сути новое направление развития теории автоматического доказательства теорем. В качестве отправной посылки данного направления можно рассматривать лемму: если в КНФ входят дизъюнкты и , представимые в виде , , то логическим следствием этих дизъюнктов является дизъюнкт , называемый резольвентой формул и .

Вхождения атома в и называются контрарными. Резольвентой однолитерных дизъюнктов и является пустой (ложный) дизъюнкт, обозначаемый символом «».

Принцип резолюции заключается в проверке выводимости из множества дизъюнктов пустого дизъюнкта путем последовательного построения резольвент. Получение пустого дизъюнкта означает противоречивость . Согласно теореме Дж. Робинсона о полноте принципа резолюции, если конечная совокупность дизъюнктов невыполнима, то данный факт можно доказать, основываясь на принципе резолюции.

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



Являясь более эффективным по сравнению с процедурой Эрбрана, принцип резолюции отличается сложностью реализации механизмов выделения контрарных пар и формирования нужных (не бесполезных) резольвент. В его многочисленных модификациях [8, 16] для рационального управления выводом стараются использовать всевозможные эвристические приемы, семантику рассматриваемой предметной области, удаление порождаемых общезначимых дизъюнктов, вычеркивание поглощенных и чистых (состоящих из литер, отрицания которых отсутствуют в ) дизъюнктов.

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



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

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

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



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

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

Получить более детальное представление о рассмотренных и многих других алгоритмах доказательства теорем на основе метода резолюций можно обратившись к источникам [8, 16].
6.2. Интерпретация знаний
в экспертных системах продукционного типа

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

Причинами высокой популярности ЭС продукционного типа являются:



  • совпадение во многом схемы их функционирования со схемой мышления специалиста при решении задач;

  • единообразие структуры (возможность построения и использования оболочек);

  • модульность базы знаний.

Структура экспертной системы продукционного типа представлена на рис. 5.
Основные информационные и программные составляющие ЭС продукционного типа, представленные на рис. 5, выполняют следующие функции.

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

Механизм вывода осуществляет:

  • просмотр и сопоставление фактов из рабочей памяти и правил базы знаний;

  • срабатывание правила, условия активации которого выполняются;

  • добавление в рабочую память новых получаемых фактов;

  • определение порядка просмотра и применения правил;

  • разрешение конфликта в случае выполнения условий применимости нескольких правил;

  • запрос у пользователя дополнительной информации, необходимой для срабатывания очередного правила;

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

Таким образом, в механизме вывода можно выделить две составляющие:

  • компонент вывода, реализующий собственно вывод;

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

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

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



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

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

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

Как при прямом, так и при обратном выводе возможны различные стратегии поиска решений.

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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



  • скелетная форма базы правил, конкретное заполнение которой настраивает инструментарий на тот или иной этап проектирования;

  • рабочая память как информационная структура, отслеживающая состояние процесса проектирования;

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

  • подсистема объяснения, представляющая по требованию пользователя в понятном для него виде цепочку рассуждений, приведшую к тому или иному результату;

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

    1. Иллюстративный пример построения макетной системы,

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

Иллюстративный фрагмент знаний из этой области представлен в виде дерева решений на рис. 3.

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

Базу правил нашей системы организуем в виде четырех массивов:


  • массив идентификаторов переменных антецедентов правил;

  • массив значений переменных антецедентов правил;

  • массив идентификаторов переменных консеквентов правил;

  • массив значений переменных консеквентов правил.

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

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

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



Массив значений переменных консеквентов правил имеет аналогичную предыдущему массиву структуру и ставит в соответствие переменной консеквента (переменной вывода) каждого правила ее значение.

Пример заполнения массивов для двух правил из числа генерируемых по исходному дереву решений (рис. 3) приведен на рис. 7.


Рис. 7. Пример заполнения базы правил
Функции рабочей памяти в нашей системе будет выполнять таблица переменных условий. Каждая строка этой таблицы имеет три поля. Первое – для идентификатора переменной, которая может входить в антецеденты правил и своим значением определять условия их активации. Второе поле – для признака инициализации переменной, фиксирующего факт присвоения ей определенного значения. Третье – для значения, присвоенного переменной.

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

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

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


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

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

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

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

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

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


ВОПРОСЫ И ЗАДАНИЯ ДЛЯ САМОКОНТРОЛЯ


  1. Почему исчисления высказываний и предикатов первого порядка называют полуразрешимыми?

  2. Как формулируется и какими методами может решаться задача в рамках указанных исчислений?

  3. Что представляет собой механическая процедура Ж. Эрбрана?

  4. В чем состоит суть метода резолюций?

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

  6. Определите понятие ЭС продукционного типа.

  7. Какие информационные и программные составляющие включает ЭС продукционного типа?

  8. Какую информацию хранит рабочая память?

  9. Какие функции выполняет механизм вывода?

  10. В чем состоит суть прямого вывода, обратного вывода и циклического (комбинированного) вывода?

  11. В чем состоит различие стратегий вывода (поиска) в ширину и в глубину?

  12. Опишите цикл функционирования механизма вывода, представленный схемой на рис. 6.

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

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


Каталог: assets -> docs
docs -> Общие положения основные интерактивные методы
docs -> Что такое деятельностный подход в образовании? А. А. Леонтьев
docs -> Системы обработки документов. Основные компоненты
docs -> Добро пожаловать в ассоциацию emma!
docs -> Добро пожаловать в ассоциацию emma
docs -> Дистанционное обучение через Интернет
docs -> Прикладные аспекты построения систем на основе документооборота
docs -> Программа актуальна для топ-менеджеров, менеджеров среднего звена. Для всех, кто желает повысить свою эффективность в бизнесе


Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7


База данных защищена авторским правом ©psihdocs.ru 2017
обратиться к администрации

    Главная страница