2021/06/10の記録

Uncategorized

2021/06/10の勉強記録です。

動的計画法というアルゴリズム、計算機の除算と小数点表示についてです。

最短路問題

動的計画法

動的計画法は、「a地点からc地点を経由してb地点まで行く最短の経路は、a→c間の最短路とc→b間の最短路を通ればいい」みたいな考え方で最短路を求める方法です。

上の図中のa市からb市までの最短経路を求めるとします。

b市にはc村,d村,e村から直接いけるとした場合、

  • acの最短経路+bc
  • adの最短経路+bd
  • aeの最短経路+be

のうち、いちばん短い道を選べばいいわけです。

さらにacの最短経路は

  • adの最短経路+dc
  • afの最短経路+fc
  • agの最短経路+gc

のうちいちばん短い道で…というように、おおきい区間の最短路を求めるために、小さい区間の最短路を求めていきます。

弾性マッチング

さらに、動的計画法の応用として、コスト最小弾性マッチングがあります。

コスト最小弾性マッチングは、パターン認識などに使われます。

パターン認識は、認識したいデータと(多数の)サンプルデータを比べて、一番近いサンプルデータを選びます。

この「一番近い」を判断するための認識データとサンプルデータの「違い」を求めるために、動的計画法を使います。

計算機

除算

人間が筆算などでやるわり算を、どうやって計算機に行わせるか、という話です。

たとえばA=1010,B=10としてA÷Bを求めるとします。
このA,Bは2進数です。

まずAの上1桁「1」に対して、Bとの大小を比べます。
Bのほうが小さいので、商の上1桁目は0です。

次にAの上2桁「10」に対して、Bとの大小を比べます。
「10」=Bのなので、商の上2桁目は1です。

また、R=「10」-Bの計算をしておきます。ここではR=0です。

最後に、Rとの上3桁目をくっつけた「00」とBを比べます。
Bのほうが大きいので、商の3桁目は0です。

A÷Bの結果は「010」です。

ということを言語化します。

固定小数点表示

数字表現に8ビットが与えられたときに、たとえば

「整数部分に4ビット、小数点以下に4ビット」

というように、整数と小数桁を決めておくことを固定小数点表示と言います。

この例だと、8ビット列の4桁目と5桁目の間に小数点が固定されています。

浮動小数点表示

小数を

$$\pm 1.○○ \times 2^n$$

の形で表します。

例えば、符号(\(\pm\))に1桁、指数(\(n\))に8桁、仮数(○○)に23桁、といった感じです。

 

 

おわりー。

コメント

タイトルとURLをコピーしました