Технологии Microsoft в теории и практике программирования


Технологии Microsoft в теории и практике программирования - стр. 14


 

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

Горбунов А.Ю.

ННГУ им. Н.И. Лобачевского, Радиофизический факультет.

Нижний Новгород

 

Задача поисковой оптимизации состоит в нахождении наибольшего или наименьшего значения некоторой функции F(X) (целевой функции) на заданном множестве X Í D (области поиска). На настоящий момент опубликовано большое количество методов решения поставленной задачи для случая линейной целевой функции и небольшого размера области поиска. К сожалению, для большинства практических задач данные условия неприменимы. Поставленную задачу предлагается решать на основе методов адаптивного поиска (например, используя генетические алгоритмы, широко описанные в литературе). Поскольку целевая функция в общем случае является многоэкстремальной, то необходимо использовать несколько процедур поиска (спусков) для нахождения оптимального решения. Ввиду потенциально большого размера области поиска имеет смысл проводить процедуры спуска параллельно на нескольких ЭВМ.

 

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

 

Решение в пространстве поиска удобно кодировать в виде бинарной строки с длиной достаточной для представления всей области D. Для того, чтобы объект, представляющий решение, мог быть доступен для клиентов, определяющий его класс должен быть доступен удаленно. Для этого достаточно реализовать в нем интерфейс ISerializable или использовать в его объявлении атрибут SerializableAttribute.


- Начало -  - Назад -  - Вперед -



Книжный магазин