DX・デジタル
注目記事
サステナブルなモノづくりのために No.98
2025.05.01
第147回「コンピュータの乱数 と 乱数の再現性」
2025.06.01
わたしの旧twitter(X)にはいろいろな技術情報が流れてきます。気になったものはその情報をたどって詳細を確認するのですが、少し前に「乱数をつくる」手法が流れてきました。メカトロの専門の範囲で、また様々な目的で、乱数を使うため関心対象です。生産設備などを動かすときにランダムさは無縁そうに見えますが、ロボット分野では乱数を使う手法が様々ありますし、我々の日常でも乱数のお世話になっています。 乱数、乱数列は、文字通りランダムな数値です。それまでに出てきた数値列から、次に出る数値は予想できません。乱数を得るという作業(サイコロをふるとか、関数の実行など)のたびになにか数値を得ます。一方、一般的なコンピュータの計算にはランダムな要素がないため、コンピュータのプログラムで作り出した乱数は、乱数っぽく見えても何か規則があって、かつ非常に長い周期の繰り返しがあり、擬似乱数と呼ばれます。 擬似乱数にはいくつもの生成方法が提案され、使われています。それら方法を比較するための主な評価指標は、計算の手間と乱数としての性質の良さです。前者については、たまにしか使わないものであれば負担になりませんが、ランダムな信号の生成では使用回数が多くなりますし、ロボット制御分野にもひたすら乱数を使うような手法があり、その場合は簡単な演算で済むに超したことはありません。後者はどのくらい本来の乱数の性質に近いかという観点で、単純にはその繰り返しの周期の長さ、ある程度の数量の乱数を作った時にその列から次の値を予想し得るかどうかなどがあります。 コンピュータの乱数はちょっとしたゲームを作ろうとしたときなどにも(たとえばじゃんけんでも)必須なので、私はプログラムを作るようになった早い段階から触れていました。プログラミング言語標準の乱数ではしばしば、「0~ある上限」までの整数が一様に出てくるため、たとえば、{1,2,3}から一つ出るものが欲しいという場合は、 (得た乱数÷3の余り)+1のような計算をします。この使い方をしたときにも綺麗な乱数かという観点もあります。 あるとき、画面上で上下左右にランダムに動き回る点をつくろうとしました。4で割った余り(より正確には下位2ビットを使用)の0123で4方向を決めるプログラムを書いて実行したところ、動きません。正確には、上下左右の動きを規則的に繰り返して、小さな往復運動をしていました。当時は乱数とはランダムなもので、このような現象が起き得るという知識はなかったため、移動方向を画面に連続して表示させて現象を特定しても何が悪いのかわかりませんでした。ふと、「5で割って余り0123は移動、4は乱数出し直し」としてみたらランダムっぽく動き回ったので、そのときはそれで良しとしました。擬似乱数の方式によってはこのような問題があることを知ったのは、ずっと後のことでした。 技術全般に「いいところしかない」なら、特許等の制約がないなら、その手法が席巻するはずですが、複数が共存しているのは利点欠点の取捨選択があるためです。冒頭の、流れてきた手法は原理を理解しきれませんでしたが、小型のマイコンで動かすのにも軽そうな方法に見えました。
第145回「正十二面体づくりと工学に生きる心得」
2025.04.01
正多面体は辺の長さが等しい一種類の正多角形を組み合わせ、かつ各頂点の周りの面の数が等しい多面体です。正三角形による正四・八・二十面体、正方形による正六面体(立方体)、正五角形による正十二面体の五種類があります。その形や展開図はあちこちで紹介されるため、ご存じの方も多いとは思います。正多角形でできるものには他に、サッカーボール型といわれる切頂二十面体(正五角形×12、正六角形×20)などもあります。
サステナブルなモノづくりのために No.97
2025.04.01
デンソーがロボットを使って廃車を自動精緻解体するプロジェクトBlueRebirthを環境省の支援を得て進めていて、これが面白い。