Основы современных компьютерных технологий

         

Описание функций пользователя


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

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

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

343

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

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

Алгоритм решения подзадачи для функций различных типов будет свой. Для процедур-функций он уникален и определяется алгоритмом, который описан в теле процедуры-функции. Для ВМ-функций механизм нахождения решения подзадачи, которую представляет ВМ-функция, един для всех ВМ-функций и определяется он заложенным в ТК Solver алгоритмом планирования вычислений.

Рассмотрим основные правила описания функций пользователя различных типов.



Содержание раздела