02.10.2017
1
Automatizační technika
Algebra blokových schémat,
vývojové diagramy
Akademický rok 2017/2018
Připravil: Radim Farana
Obsah
• Algebra blokových schémat
• Vývojové diagramy
2
Algebra blokových schémat
Velikou výhodou popisu vlastností lineárních dynamických
členů pomocí přenosů je možnost používání blokových
schémat, ve kterých každý člen je vyjádřen blokem s vepsaným
přenosem, sčítání či odčítání veličin je vyjádřeno sumačním
uzlem, a větvení veličin informačním uzlem.
3
U s( )G s( )
Y s( )
a) b)U s1( )
U s2( )
U s3( )
Y s( ) Y s( )
c) Y s( )
Y s( )
Y s( )
Vyjádření: a) dynamického členu blokem, b) sčítání či odečítání veličin
sumačním uzlem, c) větvení veličin informačním uzlem
02.10.2017
2
Algebra blokových schémat
4
Pro blok platí
)()()( sUsGsY
pro sumační uzel
)()()()( 321 sUsUsUsY
Ze sumačního uzlu může vycházet pouze jeden výstup.
Vyplněný segment vyjadřuje znaménko minus. Někdy místo
vyplněného segmentu se znaménko minus napíše u příslušné
veličiny
Sériové zapojení
5
Pro sériové zapojení bloků platí
)()()()()(
)(
)()()(
)()()(
)()()(
321
11
122
23
sGsGsGsGsU
sY
sUsGsX
sXsGsX
sXsGsY
U sériového zapojení platí, že výsledný přenos je dán součinem
jednotlivých přenosů (na pořadí nezáleží).
Paralelní zapojení
6
G s1( )Y s1( )
Y s( )G s3( )
U s( )G s( )
Y s( )Y s2( )
G s3( )Y s3( )
U s( )
U s( )
U s( )
G s2( )
Pro paralelní zapojení bloků platí
)()()()()(
)(
)()()(
)()()(
)()()(
)()()()(
321
33
22
11
321
sGsGsGsGsU
sY
sUsGsY
sUsGsY
sUsGsY
sYsYsYsY
U paralelního zapojení platí, že výsledný přenos je dán součtem
jednotlivých přenosů s uvažováním příslušných znamének u
součtového uzlu.
02.10.2017
3
Zpětnovazební zapojení
7
G s1( )U s( ) X s1( ) Y s( )
G s2( )
U s( )G s( )
Y s( )
X s2( )
±
PŘÍMÁ VĚTEV
ZPĚTNOVAZEBNÍVĚTEV
Zpětnovazební zapojení bloků je velmi důležité celou teorii
automatického řízení. Platí pro něj vztahy
)()(1
)()(
)(
)(
)()()(
)()()(
)()()(
21
1
22
21
11
sGsG
sGsG
sU
sY
sYsGsX
sXsUsX
sXsGsY
U zpětnovazebního zapojení je výsledný přenos dán přenosem v přímé
větvi podělený záporným (u kladné zpětné vazby), resp. kladným (u
záporné zpětné vazby) součinem přenosů v přímé i zpětnovazební větvi
zvětšeným o jedničku.
Základní úpravy blokových schémat
8
Přesunutí informačního uzlu před blok
GY
Y
U
G
Y
Y
UG
Přesunutí informačního uzlu za blok
YUG
U
YU
U
G
1
G
Základní úpravy blokových schémat
9
Přesunutí sumačního uzlu před blok
YG
U2
U1
Y
U2
U1G
1
G
Přesunutí sumačního uzlu za blok
YG
U2
U1
YG
U2
U1
G
02.10.2017
4
Základní úpravy blokových schémat
10
Přesunutí bloku z paralelní větve
U Y
G2
G1
U YG2
G1
1G2
Přesunutí bloku ze zpětnovazební větve
U Y
G2
G1
U YG2
G1
1G2
Příklad 1
11
Blokové schéma je třeba zjednodušit za předpokladu, že za výstupní
veličiny jsou uvažovány obrazy Y a E.
Z důvodu jednoduchosti a přehlednosti u přenosů a obrazů veličin není
uváděna nezávisle proměnná – komplexní proměnná s.
W G R
Y
V
G S
G MČ
G P
E
Řešení příkladu 1a
12
a) Nejdříve předpokládáme, že výstupní veličina je Y a vstupní veličina
W, a proto uvažujeme V = 0. Postupná úprava a zjednodušení blokového
schématu je:
YRG SG
W
MČG
SRGGW Y
MČG
Z posledního schématu již plyne výsledný přenos
MČSR
SRwy
GGG
GGG
1
02.10.2017
5
Řešení příkladu 1a
13
Nyní jako vstupní veličina je uvažována V a výstupní Y.
GSGMČ
V Y
GR
GP
GSGMČ
V Y
GR
GP
G G GR S MČ
V YGP
Vstupní veličina W = 0 a
sumační uzel se
znaménkem minus se
přesune
Výsledný přenos má tvar
(na pořadí přenosů
v součinu GRGSGMČ
nezáleží)
MČSR
Pvy
GGG
GG
1
Řešení příkladu 1a
14
Pro výstupní veličinu Y platí rovnice VGWGY vywy
které odpovídá zjednodušené blokové schéma
Gvy
Gwy
W
V
Y
Řešení příkladu 1b
15
b) Nyní předpokládáme, že výstupní veličina je E. Pro vstupní veličinu
W za předpokladu V = 0 je výchozí blokové schéma:
pro vstupní veličinu V za předpokladu W = 0 je výchozí blokové
schéma:
GMČGR
W E
GS
GMČGR
V E
GS
GMČGP
02.10.2017
6
Řešení příkladu 1b
16
Pro obě bloková schémata lze napsat výsledné přenosy přímo
MČSR
weGGG
G
1
1
MČSR
MČPve
GGG
GGG
1
Pro výstupní veličinu E platí rovnice
VGWGE vewe Gve
Gwe
W
V
E
Příklad 2
17
Pro následující zapojení je třeba určit výsledný přenos Gwy
GK
GR
WGS
Y
Řešení příkladu 2a
18
Sumační uzel mezi bloky s přenosy GR a GS se postupně přesune tak,
aby pak již bylo možné jednoduše určit hledaný přenos Gwy.
Na základě pravidel pro paralelní a zpětnovazební zapojení lze psát
GR
WGS
Y
G
GK
R
GR
WGS
Y
G
GK
R
SR
SRSK
SR
SR
R
Kwy
GG
GGGG
GG
GG
G
G
W
YG
111
02.10.2017
7
Řešení příkladu 2b
19
Výsledný přenos Gwy můžeme získat ještě snadněji. Blokové schéma
upravíme
GK
GR
WGS
Y
W
WGG
GGGGW
GG
GGW
GG
GGY
SR
SRSK
SR
SK
SR
SR
111
Pro výstupní veličinu Y (tj. její obraz) platí
Algoritmus
• Algoritmus je přesný předpis
definující výpočtový proces
vedoucí od měnitelných
výchozích údajů až k žádaným
(vždy správným) výsledkům. Tento předpis
se skládá z jednotlivých výpočtových kroků,
které jsou zapsány v určitém pořadí. Počet
výpočtových kroků musí být konečný.
Vlastnosti algoritmu
• determinovanost - shrnuje přesnost, srozumitelnost a jednoznačnost. V každém okamžiku řešení musí být jasné, jakou operaci má algoritmus provádět.
• hromadnost (masovost) - algoritmus musí popisovat zpracování celé skupiny příbuzných hodnot.
• rezultativnost - algoritmus musí vždy dospět ke správnému výsledku, a to pomocí konečnéhopočtu kroků.
• opakovatelnost - při stejných hodnotách vstupních dat musí algoritmus vždy dospět ke stejnému výsledku.
02.10.2017
8
Algoritmus versus program
• program = posloupnost příkazů,
– dokumentuje se výpisem programu,
– je chráněn autorským zákonem.
• algoritmus = postup práce,
– dokumentuje se zápisem algoritmu,
– je možné ho patentovat.
• Program realizuje algoritmus (algoritmy),
algoritmus je jeho nutnou součástí.
Popis algoritmu
• Slovní popis
– pracovní postup,
– strukturovaný text, zápis pomocí grafu,
– pseudokód (programovací).
• Grafický zápis
– vývojový diagram,
– diagram aktivit UML,
– Kopenogram, NS-diagram,
– strukturogram.
Vývojový diagram
• Popis algoritmů pro FORTRAN
(FORmula TRANslator)
• IBM v r. 1954
• Formalizován
různými normativy
(ČSN 36 9030)
začátek
čti číslo
číslo = 0 konec
piš číslo
číslo je sudé
piš „sudé“piš „liché“
+
-
+-
+
02.10.2017
9
Diagram aktivit UML
• Diagramy aktivit se podobají
vývojovým diagramům, ale
jsou nástrojem
komplexního CASE
(Computer-Aided Software
Engineering) systému
s názvem Unified Modeling
Language, ve zkratce UML.
Zpracování souboru dat
čti číslo
piš číslo
piš "liché" piš "sudé"
<>0
=0
Strukturogram
• Michael A. Jackson, 1975
• Základní struktury:
– sekvence (posloupnost operací),
– selekce (větvení).
– opakování – zvláštní případ sekvence.
• Snadné postupné upřesňování algoritmu
• Jednoznačný vztah mezi daty a algoritmem
Michael Anthony Jackson
* 1936http://mcs.open.ac.uk/mj665/index.html
Strukturogramvstup výstup
čísla nula
číslo
*
znázorněníopakování čísel
začátek tělo konec
příprava čti číslo
*řádek
piš číslo vstup
číslo je sudé/
napiš
"sudé"
/
napiš
"liché"
text
čti číslo
Vstupní soubor dat Algoritmus zpracování1 : 1
1 : 1
1 : 1
1 : 1
02.10.2017
10
Základní struktury Pseudojazyk Vývojový diagram Diagram aktivit Strukturogram
Programový celek (rutina, podrogram, procedura a pod.) - definice
název (parametry)
.
.
. end název
začátek
.
.
.
konec
jeden celý strukturogram
programový celek - použití (volání)
název (parametry) název(par.) název(par.) název (par.)
Podmíněná činnost, rozhodování Pseudojazyk Vývojový diagram Diagram aktivit Strukturogram
Provedení konkrétní činnosti
popis činosti
Podmíněná činnost (provádí se pouze pokud je splněna určitá podmínka)
if podmínka
činnost činnost
popis činnosti popis činnosti
podmíněná
činnost end if
podmínka
+
-
podmínka
Rozhodování (pokud platí určená podmínka, provede se činnost 1, jinak činnost 2)
if podmínka
činnost 1 činnost 1
činnost 1
end if
podmínka + - podmínka
else
činnost 2 činnost 2 činnost 2
popis činnosti
[podmínka
]
činnost 1 činnost 2
podmínka
sloučení
jinak
smysl má jen
rozhodování
Opakování s pevným počtem opakování
Větvení (podle hodnoty výrazu se provádí určená činnost)
case výraz=hodnota 1
činnost 1
činnost
case výraz=hodnota 2
činnost 2
case else
činnost při neznámé hodnotě
end case
výraz =
hodnota1
výraz =
hodnota činnost1
činnost při neznámé hodnotě
činnost n
-
+
-
+
výraz =
hodnota1 výraz
= hodnota2
činn.1 činn.2 činnost
hodnotě při nezn.
for počítadlo=začátek
to konec step krok
end for
počítadlo=začátek
počít. >
konec +
-
činnost
počítadlo=počítadlo+krok
# počet opakování
Pseudojazyk Vývojový diagram Diagram aktivit Strukturogram
činnost
.......
n
...
[podm. 1]
činnost 1 činnost n
jinak
[podm. 2]
činnost 2
je nutno sestavit
z ostatních značek
podobně jako
u vývojového
diagramu
02.10.2017
11
Opakování Pseudojazyk Vývojový diagram Diagram aktivit Strukturogram
Opakování s testem na začátku (dokud platí podmínka, činnost se opakuje - pokud na
začátku opakování není podmínka splněna, činnost se vůbec neprovede)
while podmínka
end while
Opakování s testem na konci (opakování končí, pokud je splněna podmínka - i když
podmínka platí již na začátku opakování, činnost se jednou provede)
neexistuje
činnost -
+ činnost
podmínka
činnost
* podmínka
(v některých jazycích -
+
činnost
podmínka
repeat
činnost
until podmínka
while činnost
end while podm.)
je nutno sestavit
z ostatních značek
podobně jako
u vývojového
diagramu
je nutno sestavit
z ostatních značek
podobně jako
u vývojového
diagramu
Zvláštní činnosti
Jako každá
jiná činnost
Přípravná činnost
Vstupní nebo výstupní operace
popis činnosti jako každá jiná aktivita Jako každá jiná činnost
Neexistuje Neexistuje Neexistuje číslo číslo
Jako každá
jiná činnost popis činnosti
Jako každá jiná činnost
Spojka (činnost končí v jedné části algoritmu a pokračuje v jiné části)
Pseudojazyk Vývojový diagram Diagram aktivit Strukturogram
jako každá jiná aktivita
Algoritmus násobení dvou
čísel Single
začátek tělo konec
Acc= 0 #
bit
násobení
Bit(B, I)=1 /
přičti
/
posun
Násobení čísel
Exp = exponent(A)
+ exponent(B) -1 I = 1 to 24
Acc=Acc + A normalizace
Shift(A)
Bit(Acc, 0)=1 /
uprav
/
Shift(Acc) Shift(A) Exp = Exp + 1
Proměnné:
A, B – činitelé
(normalizované mantisy)
Acc – akumulátor
Exp – exponent
I – celočíselné počítadlo
Funkce:
Shift(x) – bitová rotace vpravo
exponent(x) – exponent čísla
02.10.2017
12
Testování algoritmuProměnné:
A : 0,110011001100110011001100 . 2-3
B : 0,100011001100110011001100 . 2-3
Acc :
Exp:
I:
-7
0
1
1,0011001100110011001100101,001100110011001100110010
0,011001100110011001100110
-6
0,001100110011001100110011
2
začátek tělo konec
Acc= 0 #
bit
násobení
Bit(B, I)=1 /
přičti
/
posun
Násobení čísel
Exp = exponent(A)
+ exponent(B) -1 I = 1 to 24
Acc=Acc + A normalizace
Shift(A)
Bit(Acc, 0)=1 /
uprav
/
Shift(Acc) Shift(A) Exp = Exp + 1
0,000110011001100110011001
3
Chyba opisu,
riziko ručního
testování
atd.
Hodnocení složitosti
algoritmů• Vypočitatelnost algoritmu
– Turingův stroj (Alan M. Turing, 1936)
– abstraktní model počítače,
– s Alonzem Churchem vyslovili domněnku, že je
ekvivalentní s počítačem (s nekonečnou pamětí),
– Dokázal, že nelze
sestavit stroj, který
určí, zda se
libovolný stroj zastaví.
nekonečná
páskačtecí
hlava
procesor
Další krok závisí
na vnitřním stavu
a přečtené hodnotě
Deterministický Turingův stroj
Alan Mathison Turing
* 23. 6. 1912. London
+ 7. 6. 1954 Wilmslow
Časová složitost algoritmu
• Čas na vykonání algoritmu vyjádřený
v počtu elementárních operací.
• Všechny operace trvají stejně dlouho.
• Složitost algoritmu je funkcí vstupu (n).
• Konstantní rozdíly se ignorují.
• Nechť f(n), g(n) jsou funkce z množiny
přirozených čísel do množiny reálných čísel, pak
f(n) = O(g(n)), pokud existuje konstanta c, že pro
velké n platí: f(n) cg(n).
02.10.2017
13
Výpočet složitosti algoritmu
Sub NasobeniCtvercovychMatic(a(n n),b(n n),c(n n))
For I = 1 to n
For J = 1 to n
c(I, J) = 0
For K = 1 to n
c(I, J) = c(I, J) +
a(I, K)*b(K, J)
Next K
Next J
Next I
End Sub
Násobení dvou čtvercových matic rozměru (n n)
n *(2+
n *(2+1+
n *(2+
3
)
)
)
f(n) = n(2+n(2+1+n(2+3)))=5n3+3n2+2n
f(n) = n( n( n( 1 )))= n3zjednodušení
Složitost algoritmů
• Polynomiální složitost: výpočet
vyžaduje O(kd) bitových operací
– sčítání d = 1,
– násobení d = 2.
• Nepolynomiální složitost: složitost
výpočtu s rostoucím n roste rychleji.
– n! - O(nlog22(n)) = O(2kk2).
– an
Příklady funkcíFunkce Přibližné hodnoty
n 10 100 1000
nlog2(n) 33 664 9966
n3 1000 1000000 1000000000
2n 1024 1,27E+30 1,07E+301
nlog2
(n) 2099 1,94E+13 7,90E+29
n! 3628800 9,33E+157 4E+2567
Průběh funkcí (v logaritmickém měřítku)
0
2
4
6
8
10
12
14
16
18
20
0 5 10 15 20
n
log
(f(n
))
n
nlog2(n)
n^3
2^n
n^log2(n)
n!
02.10.2017
14
Třídy NP a NP-úplných
problémů• P – schůdné algoritmy běžící nejhůře
v polynomiálním čase (PT) – násobení,
• NP problém (nondeterministic polynomial)
– neschůdné algoritmy, v PT lze pouze
ověřit správnost řešení – faktorizace ,
• NP-úplný problém – NP problémy
vzájemně mapovatelné v PT – obchodní
cestující, (existuje P transformace jednoho
na druhý).