Научная статья на тему 'Основные системы интеллектуальных мобильных устройств'

Основные системы интеллектуальных мобильных устройств Текст научной статьи по специальности «Автоматика. Вычислительная техника»

426
78
Поделиться
Ключевые слова
АВТОНОМНЫЙ АГЕНТ / ИНТЕЛЛЕКТУАЛЬНОЕ МОБИЛЬНОЕ УСТРОЙСТВО / ДОМАШНИЙ РОБОТ / НАВИГАЦИЯ / РАСПОЗНАВАНИЕ РЕЧИ

Аннотация научной статьи по автоматике и вычислительной технике, автор научной работы — Корягин Е. В., Ложкин П. В., Прокопович П. А.

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

Похожие темы научных работ по автоматике и вычислительной технике , автор научной работы — Корягин Е. В., Ложкин П. В., Прокопович П. А.,

Some general parts and systems of autonomous agents of intelligent mobile devices are represented. A mobile home robot an object of strong artificial intelligence is taken as an example. Partly completed blocks of navigation system and natural speech recognition system are described here. Question of feelings and mentality simulation is concerned.

Текст научной работы на тему «Основные системы интеллектуальных мобильных устройств»

Список литературы

62

1. Толстель О. В., Шарапаев Л. А. Нейросетевое управление манипулятором домашнего робота // Конференция «Нейроинформсатика-2007»: Сб. тр. конф. М., 2007. Т. 2. С. 144-152.

2. Толстель О. В. Система управления антропоморфным роботом и способ управления. Заявка о выдаче патента на изобретение №2007107468 от 28.02.2007.

3. Толстель О. В., Арзуметов А. М. Автономное адаптивное устройство управления мобильным объектом. Заявка о выдаче патента на полезную модель № 2008127291 от 04.07.2008 (решение о выдаче патента — от 18.08.2008).

Об авторе

О. В. Толстель — канд. техн. наук, доц., РГУ им. И. Канта.

УДК 681.5

Е. В. Корягин, П. В. Ложкин, П. А. Прокопович

ОСНОВНЫЕ СИСТЕМЫ ИНТЕЛЛЕКТУАЛЬНЫХ МОБИЛЬНЫХ УСТРОЙСТВ

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

Some general parts and systems of autonomous agents of intelligent mobile devices are represented. А mobile home robot — an object of strong artificial intelligence — is taken as an example. Partly completed blocks of navigation system and natural speech recognition system are described here. Question of feelings and mentality simulation is concerned.

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

1. Система управления

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

Вестник РГУ им. И. Канта. 200S. Вып. 10. Физико-математические науки. С. 62 — 72.

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

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

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

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

4. СУ состоит из ряда блоков, взаимодействующих между собой:

Рис. 1. Взаимодействие систем робота 2. Задача навигации мобильного робота

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

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

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

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

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

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

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

Рис. 2. План комнаты проведения испытания движений робота

1. Необходимо найти кратчайший путь до целевой точки.

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

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

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

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

6. По возможности нужно избегать попадания в «красные» участки.

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

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

3. Волновой алгоритм: построение кратчайшего маршрута

Существует большое количество трaссировщиков (прогрaмм для рaзводки плa,ты [17]), основaнных ня не меньшем количестве различ-

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

Переформулируем условия в терминах постановки задачи.

Имеется поле Р(М х Ы), где М и N — размер поля по вертикали и горизонтали, или просто массив М х N (й1тР(М, Ы)). Каждая клетка поля (элемент массива) может обладать большим числом свойств, но для нас важно только два — ее проходимость (или непроходимость) и «опасность» участка. Дальше: имеется некоторая стартовая точка, где находится робот, и конечная точка, куда ему необходимо попасть.

Приведем алгоритм нахождения кратчайшего маршрута между двумя точками для такой задачи.

1. Создаем рабочий массив К(МхКГ), где йгтК(МхЫ) = <ймР(МхК1)

2. Каждому элементу массива И(1, ]) присваиваем некоторое значение в зависимости от свойств элемента игрового поля Р(1, ]) по следующим правилам:

• Если поле Р(1, ]) непроходимо, то И(1, ]):= 255;

• Если поле Р(1, ]) проходимо, то И(1, ]):= 254;

• Если поле Р(1, ]) является целевой (финишной) позицией, то И(1, ]):= 0;

• Если поле Р(1, ]) является стартовой позицией, то И(1, ]):= 253.

3. Этап «Распространения волны». Вводим переменную N1 — счетчик итераций (повторений) и присваиваем ей начальное значение 0.

4. Вводим константу №с, которую устанавливаем равной максимально возможному числу итераций.

5. Построчно просматриваем рабочий массив И (т. е. организуем два вложенных цикла: по индексу массива 1 от 1 до М, по индексу массива ] от 1 до N3.

6. Если И(1, ]) = N1, то просматриваем соседние элементы И(1+1, ]), И(1-1, ]), И(1, ]+1), И(1, ]-1) по следующему правилу (в качестве примера возьмем И(1+1,]):

• Если И(1+1, ]) = 253, то переходим к пункту 10;

• Если И(1+1, ]) = 254, выполняется присваивание И(1+1, ]):= N1+1;

• Во всех остальных случаях И(1+1, ]) остается без изменений.

Аналогично поступаем с элементами И(1-1, ]), И(1, ]+1), И(1, ]-1).

7. По завершению построчного просмотра всего массива увеличиваем N1 на 1.

8. Если N1 > Nк, то поиск маршрута неудачен. Выход из программы.

9. Переходим к пункту 5.

10. Этап построения маршрута перемещения. Присваиваем переменным Х и У значения координат стартовой позиции.

11. В окрестности позиции И(Х, У) ищем элемент с наименьшим значением (т. е. для этого просматриваем И(Х+1, У), И(Х-1, У), И(Х, У+1), И(Х, У-1). Координаты этого элемента заносим в переменные Х1 и У1.

12. Совершаем перемещение объекта по полю из позиции [X, У] в [Х1, У1].

13. Если И(Х1,У1)=0,то переходим к пункту 15.

14. Выполняем присваивание Х:= Х1, У:= У1. Переходим к пункту 11.

15. Конец.

Решение задачи. Робот двигается вперед, опираясь на следующую информацию:

1) расстояние до цели должно сокращаться;

2) переход на другую подстилку (красные участки) крайне нежелателен;

3) проход по ранее посещенным местам нежелателен;

4) чем ближе до цели и чем дольше ездит робот, тем больше вероятность, что он пойдет на «таран» цели.

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

4. Блок распознавания речи

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

Важную роль в распознавании звука играет микрофон. Для достижения приемлемых результатов с дистанции до 5 метров в пределах комнаты и под любым углом был куплен мощный конденсаторный микрофон Nady SCM1000 и усилитель M-Audio Audio Buddy. Микрофон обладает низким уровнем собственных шумов, имеет большую двойную диафрагму, фильтр низких частот, а также 3 диаграммы направленности: круговую, в форме восьмерки и кардиоидную. С помощью круговой диаграммы возможно качественное распознавание с любого угла по отношению к микрофону, т. е. робот может услышать звук, источник которого находится в том числе и позади него.

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

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

68

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

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

5. Система анализа текстовых команд

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

Под морфологическим анализом (МА) понимается обработка словоформ вне связи с контекстом. Словоформой — отрезок текста между двумя соседними пробелами. Функцией морфологического анализа является идентификация словоформы с приписыванием ей характеризующего комплекса морфологической информации [7]. Алгоритм МА в решающей степени зависит от принятого в системе способа хранения информации. Существуют два основных метода реализации МА: декларативный и процедурный. В декларативном методе реализации МА в словаре системы хранятся все возможные словоформы каждого слова с приписанной им морфологической информацией (МИ). По сути дела, в декларативном МА нет собственно морфологического анализа, а хранится его результат. Задача декларативного МА состоит только в поиске словоформы в словаре и переписывании из словаря комплекса МИ, соответствующего данной словоформе.

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

При процедурном МА в словаре системы хранятся основы слов. Процедурный МА выполняет следующие функции: выделяет в словоформе основу, идентифицирует ее (найдя в словаре основ) и приписывает данной словоформе соответствующий ей комплекс МИ. С возможными подходами и деталями выполнения процедурного МА можно ознакомиться в работе Белоногова и Новоселова [6].

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

На данный момент мир робота ограничивается пределами одной комнаты, предметами и мебелью, находящейся в ней (столы, стулья, шкафы, шарики, кубики). Данные о мире (комнате) хранятся в файле в виде списка фреймов (табл.). К этому файлу обращаются другие приложения (блок движения, СТЗ). Например, по координатам и формам указанных в базе объектов робот строит карту комнаты и по ней ориентируется, определяет, где находятся препятствия. Преграды, возникающие в процессе его движения, но не обозначенные на карте, определяются с помощью ИК-датчиков. Система технического зрения использует данные из файла (форма, цвет) для распознавания корректных образов. Подробнее о работе всех блоков робота можно узнать из [8 — 11].

Массив фреймов, используемый в программе

69

№ name size color material shape coord

l стол стеклянный круглый 35 20 5

2 кресло маленькое белое квадратный lO lO 20 lO

З кресло большое квадратный 50 lO 60 lO

4 диван большой белый квадратный 20 30 50 40

5 секция коричневая деревянная квадратная 0 lO 5 30

б шкаф большой коричневый деревянный квадратный 60 l5 70 30

7 ТВ квадратный 30 2 40 l2

S мяч синий резиновый

9 мяч красный резиновый

lO мяч большой кожаный

ll кубик

l2 пол паркетный

із робот круглый lO 20 2

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

action — действие;

object + obj_prop — предмет действия и его свойство (например, мяч + синий);

location + location_prop — место действия (например, стеклянный стол).

В соответствии с этой структурой и разбивается внутренний словарь робота на словарь действий, словарь объектов, мест (предметов мебели) и словарь свойств предметов.

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

70

Рис. З. Блок-схема алгоритма программы

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

6. Система управления приборами «умного дома»

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

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

7. Моделирование пространственного мышления антропоморфного мобильного робота

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

8. Выводы

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

Список литературы

1. Афонин В. Л., Макушкин В. А. Интеллектуальные робототехнические системы. М.:, 2005.

2. Седов А. [Электрон. ресурс]. Режим доступа: http://www.proklondike.com.

3. Роджерс Д., Адамс Дж. Математические основы машинной графики. М., 2001.

4. Бондаренко И. Ю., Гладунов С. А., Федяев О. И. Сегментно-целостная структура канала речевого управления программными системами / / Труды X национальной конференции по искусственному интеллекту с международным участием КИИ-2006. М., 2006. Т. 3.

5. Поиск текстовой информации в базах проиндексированных документов по запросу пользователя на естественном языке // Научно-производственная фирма Стокона. [Электрон. ресурс]. Режим доступа: http://stocona.ru.

6. Белоногов Г. Г., Новоселов А. П. Автоматизация процессов накопления, поиска и обобщения информации. М., 1979.

7. Попов Э. В. Общение с ЭВМ на естественном языке. М., 2004.

8. Толстель О. В., Шарапаев Л. А, Корягин Е. В., Ложкин П. В. Гибридная система искусственного интеллекта домашнего робота // Тр. IV Междунар. науч.-практ. конф. «Интегрированные модели и мягкие вычисления в искусственном интеллекте». М., 2007. Т. 1.

72

9. Корягин Е. В., Толстель О. В. Управление устройствами «Умного дома» домашним роботом / / Сборник статей IV Всероссийской научно-технической конференции. Пенза, 2006.

10. Ложкин П. В., Кащенко Н. М., Корягин Е. В., Толстель О. В. Интеллектуальная система — домашний робот // Международная научно-техническая конференция «Интеллектуальные системы ЛЮ'07». Дивноморское, 2007.

11. Корягин Е. В., Ложкин П. В. Интеллектуальная система управления автономными агентами и мобильными устройствами. Калининград, 2007.

12. Системы домашней автоматики, «умный дом». [Электрон. ресурс]. Режим доступа: http://www.udom.ru.

13. Сергин А. В. Биологически правдоподобный нейросетевой детектор края // Научная сессия МИФИ-2005. НЕЙР0ИНФ0РМАТИКА-2005. Ч. 1.

14. Куницын С. М., Толстель О. В., Шарапаев Л. А. Разработка прототипа домашнего робота // Труды X национальной конференции по искусственному интеллекту с международным участием КИИ-2006. М., 2006. Т 2.

15. Хренников А. Ю. Моделирование процессов мышления в р-адических системах координат. М., 2004.

16. Анохин П. К. Философские аспекты теории функциональной системы. М., 1978.

17. Редько В. Г. Эволюция, нейронные сети, интеллект. Модели и концепции эволюционной кибернетики. М., 2005.

18. Турчин В. Ф. Феномен науки. М., 1993.

19. Солсо Р. Л. Когнитивная психология М., 1995.

Об авторах

Е. В. Корягин — асп., РГУ им. И. Канта, johnkorn@yandex.ru. П. В. Ложкин — асп., РГУ им. И. Канта, mrabbit@bk.ru.

П. А. Прокопович — асп., РГУ им. И. Канта.