Тема 3. Рекурсія та найменша нерухома точка. Неперервність операторів
Озн. ω-областю називаємо повну, частково впорядковану множину з мінімальним елементом.
Озн. Ланцюгом будемо називати довільну послідовність елементів {d0, d1, …} ω-області, що задовольняють умові : d0 ≤ d1 ≤… , де ≤ - відношення часткового порядку на ω-області.
Озн. Відображення φ : неперервне, якщо для ланцюга d0 ≤ d1 ≤… з ω-області D виконується
Лема : Нехай φ – n - вимірне відображення : φ : , де D - ω-область. φ – неперервне відображення, тоді і тільки тоді, коли φ – неперервне відносно кожного зі своїх аргументів.
Завдання 3.1. Довести неперервність оператора IF(p, f, g), де f і g неперервні.
Розв’язок.
Доведемо неперервність IF(p, f, g) за аргументом f. Візьмемо довільний ланцюг f0 ≤ f1 ≤ … . Доведемо рівність : . Маємо
Враховуючи неперервність і те, що fi утворює ланцюг маємо :
Аналогічно доводиться неперервність IF(p, f, g)відносно аргументу g.
Доведемо тепер неперервність IF(p, f, g)відносно аргументу p. Візьмемо довільний ланцюг p0 ≤ p1 ≤ … . Доведемо рівність : .
Використовуємо неперервність pі і те, що pі утворюють ланцюг, покладемо k=max(k1,k2). Маємо:
Отже неперервність відносно аргументів доведеною Отже IF(p, f, g)–неперервна функція своїх аргументів.
Завдання 3.2. Довести неперервність оператора , де f і g неперервні.
Розв’язок.
Для того, щоб показати неперервність оператора F, нам потрібно довести його неперервність по f і g:
|
|
1)
2)
Доведемо 1) – неперервність по f:
1)
а)
б)
Аналогічно доводиться для 2).
Тема 4. Натуральна семантика
Завдання 4.1. Нехай Program(a,b) – програма знаходження результату ділення a на b – res та залишку ділення ost (див. завдання 1.2). Обчислити за натуральною семантикою результат застосування програми Program(a,b) до даного .
Розв’язок.
Текст програми:
Program(a,b) =
Begin
rez:= 0;
k:= 0;
if (a = 0) then skip else
if (a < b) then skip else
while k <= a – b do
begin
res:= res+1;
k:= k+b
end;
ost:= a – k
End
Спочатку введемо скорочення для фрагментів програми:
Program(a,b) = Begin res:=0; k:=0; if (a=0) then skip else if (a<b) then skip else while k<=a-b do begin res:=res+1; k:=k+b end; ost:=a-k End | P1 = res:=0; k:=0; if (a=0) then skip else if (a<b) then skip else while k<=a-b do begin res:=res+1; k:=k+b end; ost:=a-k | P2 = k:=0; if (a=0) then skip else if (a<b) then skip else while k<=a-b do begin res:=res+1; k:=k+b end; ost:=a-k |
P3 = if (a=0) then skip else if (a<b) then skip else while k<=a-b do begin res:=res+1; k:=k+b end; ost:=a-k | P4 = if (a<b) then skip else while k<=a-b do begin res:=res+1; k:=k+b end; ost:=a-k |
Нехай = , тоді:
Результат:
Завдання 4.2. Нехай GCD(M,N) – програма обчислення найбільшого спільного дільника за алгоритмом Евкліда (див. завдання 1.1).
|
|
Обчислити за натуральною семантикою результат застосування програми GCD(M,N) до даного [M->19,N->8].
Розв’язок.
GCD(M,N)=
begin
while M N do
if M>N then M:=M-N else N:=N-M
end
Застосуємо програму до вхідного даного та обчислимо за натуральною семантикою результат станом [M->19,N->8].
Початковий стан:
Композиційний семантичний терм програми:
Отже,
(1.1):
(1.2):
(2):
(2.1):
(2.2):
(3):
(3.1):
(3.2):
(4):
(4.1):
(4.2):
(5):
(5.1):
(5.2):
(6):
(6.1):
(6.2):
(7):
Результат:
Завдання 4.3. Нехай Sum_fac(n) – програма обчислення суми факторіалів до вхідного n≥0 (включно) через множення і додавання.
Обчислити за натуральною семантикою результат застосування програми Sum_fac(n) до даного [n->2].
Розв’язок.
Sum_fac(n) =
Begin
i:=0;
fac:=1;
res:=1;
while i ≠ n
Begin
i:=i+1;
fac:= fac*i;
res:=res+fac
End
End
Введемо позначення:
Sum_fac(n) = i:=0; fac:=1; res:=1; while i ≠ n begin i:=i+1; fac:= fac*i; res:=res+fac end | P = i:=0; fac:=1; res:=1; while i ≠ n begin i:=i+1; fac:= fac*i; res:=res+fac end | P1 = fac:=1; res:=1; while i ≠ n begin i:=i+1; fac:= fac*i; res:=res+fac end |
P2 = res:=1; while i ≠ n begin i:=i+1; fac:= fac*i; res:=res+fac end | W = while i ≠ n begin i:=i+1; fac:= fac*i; res:=res+fac end |
Обчислення за натуральною семантикою:
|
|
(0.3) =
Результат:
Дата добавления: 2018-04-05; просмотров: 351; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!