ITの基礎知識|ITパスポート・基本情報

オートマトン

2017.09.20

この記事での学習内容 基本情報 応用情報

有限オートマトンの概念、形式言語との関係、チューリング機械との関係、状態遷移表、状態遷移図を理解する。

用語例:プッシュダウンオートマトン

オートマトン

プログラミング言語などの形式言語で記述された分を解釈するための仮想的な機械概念をオートマトンといいます。
コンピュータそのものを数学的な観点からモデル化し、アルゴリズム(=問題解決のための処理手順)を定型化したものです。

元々は「自動人形」を意味している言葉で、現代のコンピュータ技術の基礎原理の一つとして、様々な場面で応用されています。

オートマトンのモデルでは、コンピュータを外部からの入力に応じて内部の状態が変化し外部に出力を行うものとして扱います。

なお、オートマトンとコラム「コンピュータの歴史」で紹介した「チューリング機械」というのは非常に似たものとなっていて、オートマトンの定義を拡張したものがチューリング機械となっています。

チューリング機械は無限の記憶領域を持つとされているが、0と1という記号の並びを入力として、順次処理を行い、後戻りしない、という共通点があります。

有限オートマトン

オートマトンの中で有限個の状態を扱うものを、特に「有限オートマトン」と呼びます。有限オートマトンでは、開始時点の状態(=初期状態)が決まっています。そして、入力によって他の状態へ変化(=遷移)します。最後に成功して終了する状態(=受容状態)のどれかに遷移すれば終了とします。

以下に有限オートマトンの特徴をまとめました。

  • 一つの初期状態を取る。
  • 有限な記憶領域を持つ。
  • 記号列を入力とし、一度に1つずつ読み込む。
  • 後戻りしない。
  • 入力に応じて、他の状態の遷移する。
  • 特定の状態のどれかで終わっていれば成功。受容状態となる。

例えば、「ノートパソコンの電源投入状態」を有限オートマトンで考えてみましょう。
このノートパソコンは、閉じると休止状態となり、開くと休止状態から復帰するものとします。

  • 初期状態は、電源が入っていない「停止」状態です。
  • 「電源スイッチON」という入力によって、状態は「動作」に遷移します。
  • 「動作」状態でパソコンを閉じると「休止」に遷移します。
  • 「休止」状態でパソコンを開くと「動作」に遷移します。
  • 「シャットダウン」という入力によって、「停止」に遷移し、終了します。

他に身近な例では、有限オートマトンの考え方で表現できるものとしては、「自動販売機」があります。

状態遷移表と状態遷移図

オートマトンの状態を表すものには、「状態遷移表」と「状態遷移図」があります。

どの状態の時に、どの入力があると、どの状態に変化(遷移)するのかを示す規則を、表にしたものが状態遷移表、図にしたものが状態遷移図です。

先述のノートパソコンの例を元に、状態遷移表と状態遷移図を確認してみましょう。

まずは、状態遷移表を示します。

縦が遷移前の状態、横が入力、表の中は遷移後の状態を表しています。なお、標柱の横棒は遷移がないことを示します。

次に状態遷移図を見てみましょう。

状態を楕円形で、入力を矢印によって、状態の遷移を視覚的に分かりやすいように表現しています。

プッシュダウンオートマトン

有限オートマトンの「状態」と「入力」に加えて、無限の容量の「スタック」を持っているのが、プッシュダウンオートマトンと呼ばれるものです。

スタックを持つことに加え、以下の点で有限オートマトンとは異なっています。

  • スタックのトップ(=最上位の要素)でなすべき状態遷移を判断する。
  • 遷移実行の一部として、スタック操作を行うことが出来る。

 

正当性理論

2017.09.19
この記事での学習内容 応用情報プログラムの正当性理論とは何か、部分正当性、全正当性の基本的な考え方、仕組みを理解する。用語例: 停止問題プログラムの正当性プログラム開発においては、不具合(=バグ)の発生はなかなか避けられないものです。このバグの除去のために作成するプログラムに対して、テストや検証を行いますが、「検証」を行うことで、プログラムの正当性を証明することができます。...

Read more...

形式言語

2017.09.19
この記事での学習内容 基本情報 応用情報形式言語とは何か、言語の定義、演算、種類、文法を理解する。また、BNF、構文図式などの表記法、正規表現、文脈自由文法を理解する。用語例: 逆ポーランド表記法自然言語と形式言語日本語や英語などの言語は人間が暮らしていく中で自然に発生したため、必ずしも厳密な文法に従っているとは限りません。こういった言語を自然言語といいます。それに対し、特定の...

Read more...

述語論理

2017.09.19
この記事での学習内容 基本情報 応用情報述語論理の考え方、演繹推論と帰納推論の違いを理解する。用語例: 関係データベース述語論理述語論理とは、命題の内部の構造を主語と述語の二つの構成要素に分解し、その中の術後部分を扱う理論です。命題文章や式で表された事象について、それが真であるか偽であるかが明確に決まるもの。命題論理審議の解っている既存の命題をつなげて新しい命題を作...

Read more...

コンピュータで使われている文字コードの説明のうち、適切なものはどれか。 ア: ASCIIコードはアルファベット、数字、特殊文字及び制御文字からなり、漢字に関する規定はない。 イ: EUCは文字コードの世界標準を作成しようとして考案された16ビット以上のコード体系であり、漢字に関する規定はない。 ウ: Unicodeは文字の1バイト目で漢字か分かるようにする目的で制定され、漢字とAS...

Read more...

音声信号をデジタル化する。図の時刻1から時刻5のタイミングで標本化を行い、4段階に量子化(標本点に最も近い段階を選択)を行なった。その後2ビットで符号化を行なった。結果は「11 01 00 10 11」であった。同じ手法でデジタル化を行うと、「01 00 10 11 01」となる音声信号を表す図はどれか。

Read more...

文字の表現

2017.09.14
この記事での学習内容 ITパスポート 基本情報 応用情報代表的な文字コードを理解する。用語例: ASCIIコード、EUC(Extended UNIX Code)、JISコード、シフトJISコード、Unicode、UCS文字コードアルファベットやかな、漢字といった文字データを扱うために、コンピュータ内部ではそれぞれの文字に、0と1からなるコード番号を割り当てています。これを文字コード...

Read more...