<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://mis.martin-simunek.cz/skins/common/feed.css?301"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>http://mis.martin-simunek.cz/index.php?action=history&amp;feed=atom&amp;title=Kone%C4%8Dn%C3%BD_automat</id>
		<title>Konečný automat - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="http://mis.martin-simunek.cz/index.php?action=history&amp;feed=atom&amp;title=Kone%C4%8Dn%C3%BD_automat"/>
		<link rel="alternate" type="text/html" href="http://mis.martin-simunek.cz/index.php?title=Kone%C4%8Dn%C3%BD_automat&amp;action=history"/>
		<updated>2026-04-18T20:09:35Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.17.0</generator>

	<entry>
		<id>http://mis.martin-simunek.cz/index.php?title=Kone%C4%8Dn%C3%BD_automat&amp;diff=3282&amp;oldid=prev</id>
		<title>Spravce: Přidán odkaz na stránku Regulární výrazy.</title>
		<link rel="alternate" type="text/html" href="http://mis.martin-simunek.cz/index.php?title=Kone%C4%8Dn%C3%BD_automat&amp;diff=3282&amp;oldid=prev"/>
				<updated>2017-12-06T08:09:36Z</updated>
		
		<summary type="html">&lt;p&gt;Přidán odkaz na stránku &lt;a href=&quot;/index.php/Regul%C3%A1rn%C3%AD_v%C3%BDrazy&quot; title=&quot;Regulární výrazy&quot;&gt;Regulární výrazy&lt;/a&gt;.&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 6. 12. 2017, 08:09&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 38:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Poznámky: ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Poznámky: ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;minus;&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# Konečné automaty jsou samozřejmě velmi základní, jednoduchý mechanismus, umožňující rozpoznávat pouze tzv. ''regulární jazyky''. Ale i tak jsou v matematice/informatice užitečné pro dokazování správnosti algoritmů, nebo lepší představu, jak algoritmy fungují.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# Konečné automaty jsou samozřejmě velmi základní, jednoduchý mechanismus, umožňující rozpoznávat pouze tzv. ''regulární jazyky'' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(stejně jako třeba [[Regulární výrazy|regulární výrazy]]&lt;/ins&gt;. Ale i tak jsou v matematice/informatice užitečné pro dokazování správnosti algoritmů, nebo lepší představu, jak algoritmy fungují.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# Uvedené příklady jsou deterministické. NEDETERMINISTICKÝ konečný automat může mít pro jeden symbol více přechodů z jediného stavu. Takže třeba ze stavu q0 mohu při načtení písmene A přejít zároveň do stavů q4 a q6. Je to zjednodušení při návrhu, oba koncepty jsou stejně výpočetně silné, pro každý nedeterministický automat lze vyrobit deterministický takový, že přijímá stejný formální jazyk. ;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# Uvedené příklady jsou deterministické. NEDETERMINISTICKÝ konečný automat může mít pro jeden symbol více přechodů z jediného stavu. Takže třeba ze stavu q0 mohu při načtení písmene A přejít zároveň do stavů q4 a q6. Je to zjednodušení při návrhu, oba koncepty jsou stejně výpočetně silné, pro každý nedeterministický automat lze vyrobit deterministický takový, že přijímá stejný formální jazyk. ;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;== Související stránky ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Regulární výrazy]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Spravce</name></author>	</entry>

	<entry>
		<id>http://mis.martin-simunek.cz/index.php?title=Kone%C4%8Dn%C3%BD_automat&amp;diff=2254&amp;oldid=prev</id>
		<title>Spravce: Vytvoření stránky</title>
		<link rel="alternate" type="text/html" href="http://mis.martin-simunek.cz/index.php?title=Kone%C4%8Dn%C3%BD_automat&amp;diff=2254&amp;oldid=prev"/>
				<updated>2015-01-09T12:28:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vytvoření stránky&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:VSE]][[Category:Informatika]][[Category:Matematická logika]][[Category:Principy IT]][[Category:Stránky_s_obrázky]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;Poznamka&amp;quot;&amp;gt;Tato stránka je velmi neformální. O něco formálnější popis najdete třeba na [http://cs.wikipedia.org/wiki/Kone%C4%8Dn%C3%BD_automat Wikipedii &amp;amp;rarr; Konečný automat].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konečný automat je abstraktní model výpočetního stroje (počítače/programu), který čte vstupní data (třeba posloupnost ''symbolů'' &amp;amp;mdash; třeba čísel či písmen) a na základě přečtených symbolů přechází z jednoho stavu do druhého.&lt;br /&gt;
&lt;br /&gt;
== Příklad ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;Priklad&amp;quot;&amp;gt;&lt;br /&gt;
Z burzy mi přichází do počítače informace o poklesu nebo vzrůstu hodnoty akcií konkrétní firmy (třeba jednou za den). Je to zjednodušený příklad, takže předpokládejme, že přijde vždy jen informace (+) nebo (-) pro pokles nebo vzrůst.&lt;br /&gt;
Chci, aby se mi rozsvítila kontrolka na monitoru, když nastal třikrát po sobě pokles.&lt;br /&gt;
&lt;br /&gt;
Takovouto jednoduchou situaci umím namodelovat konečným automatem. V podstatě rozliším 4 stavy:&lt;br /&gt;
# Hodnota rostla, nebo jsem právě začal se sledováním.&lt;br /&gt;
# Hodnota poprvé klesala.&lt;br /&gt;
# Hodnota dvakrát po sobě klesala.&lt;br /&gt;
# Hodnota třikrát po sobě klesala – kontrolka svítí.&lt;br /&gt;
&lt;br /&gt;
Budu mít tedy konečný automat se 4 stavy, označím si je q0,…, q3. Jeden stav je počáteční (stav q0). Koncový stav (kontrolka svítí, nastala hledaná situace) je stav q3.&lt;br /&gt;
(Zakreslit to mohu jako 4 kolečka popsaná q0,…, q3, mezi nimi budu kreslit šipky přechodů mezi symboly.)&lt;br /&gt;
&lt;br /&gt;
[[Image:konecny_automat.png]]&lt;br /&gt;
&lt;br /&gt;
Tedy začínám v počátečním stavu q0. Dokud se objevuje (+) (růst), zůstávám v q0. (Lépe řečeno: přecházím znovu do q0, automat vždy do nějakého stavu přejde.) Jakmile přijde (-), přejdu do q1. Dalším (-) pokračuji do q2, (+) by mě vrátilo do q0. Atd. až se dostanu do stavu q3, který je konečný.&lt;br /&gt;
&lt;br /&gt;
Automat tedy tzv. PŘIJÍMÁ formální jazyk nad abecedou ze dvou symbolů: {+, -}. Formální jazyk, který automat přijímá, je složen z posloupností, končících třemi a více symboly (-). (Pokud je automat v koncovém stavu, znamená to, že právě přečetl SLOVO, které patří do JAZYKA, který tento automat přijímá. ;)&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Kreslení ==&lt;br /&gt;
Na kreslení můžeme použít třeba [http://www.lucidchart.com LucidChart.com].&lt;br /&gt;
&lt;br /&gt;
== Úkol ==&lt;br /&gt;
Zkuste si nakreslit konečný automat, který má jako abecedu písmena {a, b, c} a přijímá jazyk slov, která obsahují alespoň 3 písmena b (mohou být kdekoli ve slově a je jedno, kolik jakých jiných písmen ve slově je. Takže přijímá třeba slova:&lt;br /&gt;
* abaacbbac&lt;br /&gt;
* bbb&lt;br /&gt;
* baccbacaaab&lt;br /&gt;
* ccccbbccacb&lt;br /&gt;
* …&lt;br /&gt;
&lt;br /&gt;
=== Poznámky: ===&lt;br /&gt;
# Konečné automaty jsou samozřejmě velmi základní, jednoduchý mechanismus, umožňující rozpoznávat pouze tzv. ''regulární jazyky''. Ale i tak jsou v matematice/informatice užitečné pro dokazování správnosti algoritmů, nebo lepší představu, jak algoritmy fungují.&lt;br /&gt;
# Uvedené příklady jsou deterministické. NEDETERMINISTICKÝ konečný automat může mít pro jeden symbol více přechodů z jediného stavu. Takže třeba ze stavu q0 mohu při načtení písmene A přejít zároveň do stavů q4 a q6. Je to zjednodušení při návrhu, oba koncepty jsou stejně výpočetně silné, pro každý nedeterministický automat lze vyrobit deterministický takový, že přijímá stejný formální jazyk. ;)&lt;/div&gt;</summary>
		<author><name>Spravce</name></author>	</entry>

	</feed>