Помощь в учёбе, очень быстро...
Работаем вместе до победы

Пример работы процесса

РефератПомощь в написанииУзнать стоимостьмоей работы

Четыре ограничения (3) можно проинтерпретировать на этапе генерации Н-сети, и тогда нижние и верхние границы x и y станут равными 0 и 100 соответственно. Таким образом, на первом шаге поцесса потоковых вычислений имеем. Функция проверки корректности (обозначим ее PRDint) проверяет, чтобы нижняя граница Н-числа не превосходила верхнюю. Операции для таких Н-чисел определяются в соответствии… Читать ещё >

Пример работы процесса (реферат, курсовая, диплом, контрольная)

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

x + y =12;

(2).

2 * x =y;

Предположим, что значения x и y ограничены следующими неравенствами:

0 x 100; 0 y 100. (3).

Множество объектов X данной модели содержит две целочисленные переменные (x, y), множество ограничений R — два уравнения и четыре неравенства.

Для определения соответствующей Н-модели требуется выбрать некоторый вид Н-расширения целого числа. Пусть недоопределенное целое число (Н-число) будет представлено Н-расширением Interval (см. раздел 1). Функция присваивания (обозначим ее PRint) реализует следующее правило изменения значений Н-числа: нижняя граница может только увеличиваться, а верхняя только уменьшаться.

Функция проверки корректности (обозначим ее PRDint) проверяет, чтобы нижняя граница Н-числа не превосходила верхнюю. Операции для таких Н-чисел определяются в соответствии с правилами интервальной математики [21].

Так как множество X содержит две переменные типа Н-число, множество функций присваивания (W) и множество функций проверки корректности (C) содержат по два элемента:

W = { PRint(x), PRint(y) }; C = { PRDint(x), PRDint(y) };

Множество функций интерпретации уравнений (2) состоит из четырех элементов (f1 — f4):

f1: y 12 — x; f2: x 12 — y;

f3: y 2 * x; f4: x y / 2;

Согласно правилам интервальной арифметики, семантика функций интерпретации (f1— f4) представляется следующим образом:

f1: [y Lo, y Up] [12 — x Up, 12 — x Lo];

f2: [x Lo, x Up] [12 — y Up, 12 — y Lo];

f3: [y Lo, y Up] [min {2 * x Lo, 2 * x Up }, max { 2 * x Lo, 2 * x Up }];

f4: [x Lo, x Up] [min {x Lo / 2, x Up / 2 }, max { x Lo / 2, x Up / 2 }];

Четыре ограничения (3) можно проинтерпретировать на этапе генерации Н-сети, и тогда нижние и верхние границы x и y станут равными 0 и 100 соответственно. Таким образом, на первом шаге поцесса потоковых вычислений имеем.

x = [0,100]; y = [0,100];

В табл. 1 приведена последовательность шагов исполнения потокового процесса для данной задачи. В таблице предполагается, что на каждом шаге исполняется первая функция из множества активных функций (она отделена от остальных символом `|'). На первом шаге итерации исполняется функция f1. В результате работы этой функции получаем значение y = [-8, 12]. После этого вызывается функция присваивания PRint (y). Текущее значение y равно [0, 100], новое [-88, 12]. Функция присваивания вырабатывает значение [0, 12] и присваивает его y. Как видим, у переменной y изменилась только верхняя граница (так как новая нижняя граница (-88) меньше текущей (0)). Изменение значения y в целом все-таки произошло (Флаг = да), поэтому вызывается функция проверки корректности PRDint (y). Условие корректности для y (0 12) не нарушается, и процесс исполнения Н-модели продолжается, т. е. происходит активация функций интерпретации f2 и f4, для которых y является входным аргументом.

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

Вычисления заканчиваются тогда, когда нижняя и верхняя границы как x, так и y становятся равными друг другу. Это произойдет при значениях xLo и xUp равными 8, а yLo и yUp равными 4. При таких значениях исполнение любой функции f1 — f4 не изменяет значения своего результата и множество активных функций становится пустым.

Таблица 1. Протокол исполнения Н-модели.

N.

Активные функции.

Н-значения текущее | новое.

Флаг.

Добавить функции.

f1 | f2 —f4.

y=[0,100] | [0,12].

да.

f2, f4.

f2 | f3, f4.

x=[0,100] | [0,12].

да.

f1, f3.

f3 | f4, f1.

y=[0,12] | [0,12].

нет.

f4 | f1.

x=[0,12] | [0,6].

да.

f1, f3.

f1 | f3.

y=[0,12] | [6,12].

да.

f2, f4.

f3 | f2, f4.

y=[6,12] | [6,12].

нет.

f2 | f4.

x=[0,6] | [0,6].

нет.

f4 |.

x=[0,6] | [3,6].

да.

f1, f3.

f1 | f3.

y=[6,12] | [6,9].

да.

f2, f4.

f3 | f2, f4.

y=[6,9] | [6,9].

нет.

f2 | f4.

x=[3,6] | [3,6].

нет.

f4 |.

x=[3,6] | [3,4].

да.

f1, f3.

f1 | f3.

y=[6,9] | [8,9].

да.

f2, f4.

f3 | f2, f4.

y=[8,9] | [8,8].

да.

f2, f4.

f2 | f4.

x=[3,4] | [4,4].

да.

f1, f3.

f4 | f1, f3.

x=[4,4] | [4,4].

нет.

f1 | f3.

y=[8,8] | [8,8].

нет.

f3 |.

y=[8,8] | [8,8].

нет.

Показать весь текст
Заполнить форму текущей работой