Научная статья на тему 'Технология пошаговой детализации при операторном моделировании для доказательства корректности программ'

Технология пошаговой детализации при операторном моделировании для доказательства корректности программ Текст научной статьи по специальности «Математика»

CC BY
101
33
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

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

распределения компоненты с1 (ш) вектора ограничений с.

Если неравенство (24) рассматривать как условие, ограничивающее выбор и wi, то следует добавить ограничение wi > 0 . Если неравенство (25) ограничивает выбор т, и а,, то необходимо учесть дополнительные ограничения а, > 0, ] = 1,п .

Вычисление статистических параметров упрощается в случае, когда неравенства (24) высекают выпуклые множества.

Таким образом, согласно теореме 5 сформулированная стохастическая задача с априорными распределениями (17) - (23) может быть сведена к единственному детерминированному эквиваленту на выпуклом множестве.

Список использованных источников

1. Быкова И.Ю., Коротеев С.В. Особенности изучения потребительского поведения и потребительского выбора в условиях рыночной экономики // Информационные технологии моделирования и управления. Выпуск 14. - Воронеж: Научная книга, 2004, С. 10-18.

2. Быкова И.Ю. Исследование проблем принятия решений в условиях неполноты информации. - Санкт-Петербург: СПбГУ, 1999.

3. Дубов Ю.А., Травкин С.И., Якимец В.Н. Многокритериальные модели формирования и выбора выриантов систем. - М.: Наука, 1986.

4. Мутанов Г.М., Коротеев С.В., Быкова И.Ю. Задачи многокритериальной оптимизации // Международная конференция «Автоматизация и управление: перспективы, проблемы, решения»: Сборник трудов. - Алматы: КазНТУ, 2007, С.79 - 82.

Корчагин А.С., Погодаев А.К.

ТЕХНОЛОГИЯ ПОШАГОВОЙ ДЕТАЛИЗАЦИИ ПРИ ОПЕРАТОРНОМ МОДЕЛИРОВАНИИ ДЛЯ ДОКАЗАТЕЛЬСТВА КОРРЕКТНОСТИ

ПРОГРАММ

Липецкий государственный технический университет

Проблема операторного моделирования при доказательстве корректности программ рассматривалась в [1], идея пошаговой детализации - в [2]. В настоящей статье рассмотрена технология пошаговой детализации при операторном моделировании для доказательства корректности программ.

Пошаговая детализация и соответствие выполнения

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

Пошаговая детализация

Пусть А и В - автоматы. Пошаговая детализация из А в В - частично вычислимая функция г из states(A) в $1а1в$(В), удовлетворяющая следующим двум условиям:

1. Если s еstaгt(A), то s еdomain(г) и ге staгt(B).

2. Если ^ ®a t л ^ е domain(r), то tedomain(r) и

(a) r(s)=r(t) л a=t

(b) r (s) ——®в r (t).

Путём тривиального доказательства по индукции получаем, что множество состояний, для которых r определено, содержит все достижимые состояния A (и, таким образом, является инвариантом этого автомата). Мы пишем A <R B, если существует пошаговая детализация из A в B.

Идею пошаговой детализации впервые предложили Нипков и Слинд (Nipkow and Slind) [10]. Однако, если мы настаиваем на наличии шагов s —L®s для каждого состояния s (общепринятое допущение в моделях реагирующих систем), то условие (2а) в вышеприведённом определении становится избыточным и понятие пошаговой детализации сводится к гомоморфизму между достижимыми подавтоматами [4]. Пошаговая детализация несколько более ограничительна, чем отображения вероятности (называемые слабыми уточнениями в работе Линча и Ваандрагера [8]). В случае отображения вероятности каждому (достижимому) шагу A может быть сопоставлена последовательность шагов B с той же трассой. Это означает, что в приведённом выше определении условие (2) заменяется на:

2. Если s —a t л s е domain(r), то tedomain(r) и у B есть выполняемый фрагмент a, такой, что

first(a)=r(s), trace(a)=trace(a) и last(a)=r(t).

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

Пример 1. Рис. 1 иллюстрирует понятие пошаговой детализации. Заметьте, что t-шагам в A не соответствует ни один шаг в B. Также и c-шагу в A не соответствует ни один шаг в B: и исходное, и конечное состояния этого шага находятся вне области определения пошаговой детализации. Это можно допустить, поскольку оба состояния недостижимы. Обратите внимание, что не существует пошаговой детализации из B в A, но существует отображение вероятности из В в А.

с

s6 •

Рис. 1. Пошаговая детализация

Рис. 2 иллюстрирует другой пример. В этом случае существует пошаговая детализация из A' в B\ но не из B' в A'. Не существует даже отображения вероятности из В' в А'.

Рис. 2. Иной пример пошаговой детализации

Следующее утверждение устанавливает основное свойство корректности пошаговой детализации.

Теорема 1. Отношение <R есть отношение порядка (т.е. транзитивно и рефлексивно).

Доказательство: Функция тождества из states(A) в себя - тривиальный пример пошаговой детализации из A в A. Следовательно, <R рефлексивно. Транзитивность следует из того факта, что если r - пошаговая детализация из A в B и r' - пошаговая детализация из B в C, то композиция функций r'or есть пошаговая детализация из A в C.

Соответствие выполнения

Если существует пошаговая детализация из A в B, то мы можем построить для каждого выполняемого фрагмента A соответствующий выполняемый фрагмент B с той же трассой. Понятие «соответствующий» формализовано ниже.

Предположим, что A и B - автоматы, R с states(A) х states(B), и a=s0a1s1a2s2 и а' = u0b1u1b2u2 - выполняемые фрагменты A и B, соответственно. Пусть index (а) и index (а') обозначают множества индексов а и а'. Тогда а и а' соответствуют посредством R и являются R-связанными, что обозначается как (а, а') е R, если существует отношение индексов над R, т.е. отношение Ic index^x index(а'), такое, что

(1) если два индекса связаны отношением I, то соответствующие состояния связаны отношением R;

(2) I монотонно;

(3) каждый индекс из а связан с индексом из а' и наоборот;

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

Формально мы требуем для i, i' е index (а) andj, j' е index (а'),

a

A*

1. (i, j) є I ^ (si, u) є R

2. (I, у) е I л (Г, У) е I л I < I' ^у <У

3. I и I' являются полными

(Л у) е IЛ (/• +1, у +1) е I ^ ам = Ъ]+1

(/,у) е I л (/+1 у) е I ^ а+1 = т

(/,у) е ]: л (и у+1) е I ^ ъ+1 =т

Мы записываем (А,В) е Я , если для каждого выполнения а автомата А существует выполнение а' автомата В, такое, что (а, а') е Я, и [Л,Б] е Я, если для каждого конечного выполнения а из А существует конечное выполнение а' из В, причём (а, а') е Я. Рис. 3 иллюстрирует соответствие между двумя выполнениями автоматов А и В, изображённых на рис. 1.

50 зЗ ь $4

•--------------------н§--------------------Нк

иО * и2 * и2 Т и2 и2

Рис. 3. Соответствие выполнения

Иное определение соответствия было дано в книге Согаард-Андерсена, Линч и др (Sogaard-Andersen, Lynch et al.) [5, 11] и формализовано Мюллером (Mueller) [9]. В области теории автоматов ввода/вывода соответствие выполнения играет решающую роль в доказательствах сохранения свойств безопасности и живучести. Наше определение содержит больше ограничений по сравнению с более ранней работой [5, 11], но формально проще. Более того, его преимуществом является сохранение свойств ‘until’. В этой статье мы только исследуем характеристики безопасности, и достаточно знать, что трасса соответствующих выполнений одинакова.

Последний факт устанавливается следующей леммой.

Лемма 1. Трасса соответствующих выполняемых фрагментов одинакова.

1. Пусть I - индексное отношение, такое же, какое было указано выше, и (i,j) el. Тогда

trace(s0a1s1- • • aisi) = trace(u0b1u1 • • • bjUj)

2. Если (a, a') e R, то trace(a)= trace(a').

Доказательство: Предположим, что (i,j) el. Индукцией по i+j докажем,

что

trace(s0a1s1- • • a^s) = trace(u0buj • • • bjUj).

Если i+j=0, то оба: i и j равны 0. Очевидно, trace(s0)=trace(u0)=k.

Выполняя шаг индукции, предположим, что i+j >0. С учётом симметрии можно без потери общности считать, что i>0. Пусть j' - наибольший индекс, такой, что j' < j и (i - 1, j') e l. (По свойству монотонности i - 1 может относиться только к индексам, меньшим или равным j, а по свойству полноты существует хотя бы один такой индекс).

Возможны три варианта:

1. j' = j. Тогда at= t. Согласно предположению индукции,

trace(s0a1s1 • • • ai-1si-1) = trace(u0b1u1 • • • bju).

Следовательно, trace(s0a1s1 • • • a^s) = trace(u0b1u1 • • • bju).

2. j' = j - 1. Тогда at= bj . Согласно предположению индукции,

trace((s0a1s1 • • • ai-1si-1) = trace(u0b1u1 • • • bj-1uJ-1).

Следовательно, trace(s0a1s1 • • • a^s) = trace(u0b1u1 • • • bju).

3. j' < j-1. Тогда, в соответствии с условиями (2) и (3), (i, j - 1) e l. Это влечёт за собой bj = т. В соответствии с предположением индукции,

trace(s0a 1s1^aisi) = trace (u0b1u1...bJ-1 uJ-1).

Отсюда, trace(s0a 1s1.aisi) = trace (u0b1u1.bjuj).

Это завершает доказательство шага индукции.

Далее, предположим, что (a, a') e R. Тогда существует отношение l между индексами, связывающее a и a'. Используя то, что и l, и Г1 являются полными, получаем, что каждый конечный префикс trace(a) является также конечным префиксом trace(a') и наоборот. Отсюда trace(a) = trace(a').

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

Следствие 1. (Соответствие выполнения влечёт включение трассы)

1. lf (A,B) e R then [A,B] e R.

2. lf [A,B] e R then A <*T B.

3. lf (A,B) e R then A <T B.

Доказательство: Утверждение (1) следует из определений. Утверждения (2) и (3) следуют непосредственно из Леммы 1 и определений.

Семантическая непротиворечивость и частичная полнота

Следующая теорема утверждает, что если существует пошаговая детализация из A в B, то возможно построить для каждого выполнения A соответствующее выполнение B. Пользуясь Следствием 1, получаем, что Пошаговая детализация представляют собой корректное средство проверки включения трассы. Дополнительно следующая теорема также позволяет нам использовать пошаговую детализацию как корректное средство доказательства отношений реализации между активными автоматами, как в работах [5, 9, 11].

Теорема 2 (Семантическая непротиворечивость пошаговой детализации)

Если r - Пошаговая детализация из A в B, то (A,B) e r.

Доказательство: Предположим, что r - Пошаговая детализация из A в B. Пусть a = s0a1s1... • есть выполнение A.

Индуктивно определим выполнение a' = u0b1u1... автомата B и отношение индексов l, такое, что a и a' являются ^.-связанными посредством l.

Сначала определим u0 = r(s0) и объявим (0, 0) элементом l.

Теперь предположим, что (i, j) e l и i - индекс из a, не являющийся последним. Будем различать два случая:

1. Если r(s) ^ ®Br (s+1), то определим b j+1 = a i+1, u j+1 = r(s i+1) и бу-

дем считать (i+1, j +1) элементом l;

2. В противном случае, будем считать (i + 1, j) элементом l.

По построению, используя взятые из определения свойства Пошаговой детализации, получаем, что l есть отношение индексов. Отсюда следует, что (A,B) e r.

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

Теорема 3. (Частичная полнота пошаговой детализации)

Пусть A - лес, B детерминирован, и A < *T B. Тогда A <R B.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Д

Доказательство: отношение r=after(B) o past (A) является пошаговой детализацией из A в B.

В действительности мы можем даже немного усилить вышеприведённую теорему. Достаточно предположить, что A, ограниченный только своими достижимыми состояниями, является лесом, а автомат B ограниченный своими достижимыми состояниями, детерминированный. На рисунке 3 автомат A, ограниченный только своими достижимыми состояниями, является лесом, а автомат B детерминированный. Как мы уже показали, это - пошаговая детализация из A в B. Даже если мы ограничимся только достижимыми состояниями, автомат B не является лесом, а автомат A - не детерминированный. Как мы уже показали, не существует пошаговой детализации из B в A.

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

Список использованных источников

1. Корчагин А.С., Кравец О.Я. О состоянии проблемы проверки корректности систем и протоколов// Современные проблемы информатизации в моделировании и анализе сложных систем: Сб. тр. Вып. 13. - Воронеж: Научная книга, 2007. - С. 198-207.

2. Корчагин А.С., Погодаев А.К. К методологии операторного моделирования при исследовании корректности программ// Информационные технологии моделирования и управления, №3(37), 2007. - С. 363-370.

3. Devillers M.C.A., Grioen W.O.D., Romijn J.M.T, Vaandrager F.W. Verification of a leader election protocol: Formal methods applied to IEEE 1394. Formal Methods in System Design, 16(3):307-320, June 2000.

4. Ginzburg A. Algebraic Theory of Automata. Academic Press, New York - London,

1968.

5. Gawlick R., Segala R., S0gaard-Andersen J.F., Lynch N.A. Liveness in timed and untimed systems. Technical ReportMIT/LCS/TR-587, Laboratory for Computer Science, MIT, Cambridge, MA, December 1993.

6. Helmink L., Sellink M.P.A., Vaandrager F.W. Proof-checking a data link protocol. In H. Barendregt and T. Nipkow, editors, Proceedings International Workshop TYPES’93, Nijmegen, The Netherlands, May 1993, volume 806 of Lecture Notes in Computer Science, pages 127-165. Springer-Verlag, 1994.

7. Lynch N.A., Tuttle M.R. Hierarchical correctness Proofs for distributed algorithms. In Proceedings of the 6th Annual ACM Symposium on Principles of Distributed Computing, pages 137-151, August 1987. A full version is available as MIT Technical Report MIT/LCS/TR-387.

8. Lynch N.A., Vaandrager F.W. Forward and backward simulations, I: Untimed systems. Information and Computation, 121(2):214-233, September 1995.

9. Mueller O. A Verification Environment for I/O Automata Based on Formalized Meta-Theory. PhD thesis, Technical University of Munich, September 1998.

10. Nipkow T., Slind K. I/O automata in Isabelle/HOL. In P. Dybjer, B. Nordstrom, and J. Smith, editors, Types for Proof and Programs, volume 996 of Lecture Notes in Computer Science, pages 101-119. Springer-Verlag, 1995.

11. Sogaard-Andersen J.F., Lynch N.A., Lampson B.W. Correctness of communication protocols - a case study. Technical Report MIT/LCS/TR-589, Laboratory for Computer Science, MIT, Cambridge, MA, November 1993.

Олейникова С.А.

ИСПОЛЬЗОВАНИЕ МЕТОДОВ СПУ ДЛЯ ДИНАМИЧЕСКИХ

КОНВЕЙЕРНЫХ ЗАДАЧ

Международный институт компьютерных технологий, г.Воронеж

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

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

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.