私の妻と私が家に引っ越したとき、私の最初の仕事の1つは頻繁に使用される部屋で古いものと新しいものを交換することでした。それがどのように行われたかを理解したら、それは十分に簡単に見えました:サーキットボックスに行き、その特定の部屋のためにサーキットブレーカをオフにしてスイッチを交換してください。
私が作ったまで、すべてがうまくいったように見えたショッキングその部屋のブレーカをオフにした後も、スイッチの1つ(それが何を制御しているのかわからなかった)がまだそれに電力を供給していたという発見。私はサーキットテスターを買うために店に直行しました... しかし、そのスイッチはまだ交換する必要がありました。私は一度に30のブレーカーすべてをオフにすることができましたが、私は本当にどのブレーカーがそのスイッチを制御するかについて興味がありました。

んで、どうする?
最も簡単な方法は、どの回路がスイッチを制御するのかを特定できるまで、一度に1つの回路を試すことです。もちろん、スイッチとコンセントは別の階にあるので、これはまだ面倒です。運が良ければ、すぐに正しいサーキットをオフにします。しかし、運が悪ければ、30回のサーキットで階段を上り下りします。
二分検索?
半分の回路をオンにし、半分の回路をオフにしてバイナリ検索を実行し、スイッチがどのグループに属しているかを把握し、1つのスイッチに到達するまでこのプロセスを繰り返します。しかし、簡単なインターネット検索は可能性があることを明らかにしています二私は最終的にそのスイッチを切り替えることができるように回路はオフに設定する必要があります。一度に1つの方法でも、これには役立ちません。
1つの回路だけをオフにすればよいと確信していますが、そうでない場合はどうなりますか。これは私が設計された実験をすることができたように思えるが、私はランダムノイズの典型的な概念を持っていない、そして私の応答は本質的にバイナリである(スイッチへの電力かどうか)。私が本当に欲しいのはこれらの機能を備えたデザインです。
それがただ一つの回路であるならば、それがどれであるかを正確に教えてください。2つの回路の場合は、両方のブレーカーがオフになっているケースを見たことがあることを確認してください(すべてのスイッチがオフになっているわけではありません)。可能な限り少ないテストで最初の2点を達成してください。結局のところ、私はたった8回のテストでこれを実行することができます。それぞれの実行/テストはいくつかのスイッチをオンにし、いくつかはオフにします。
どうやって?
でディスカバリーサミット2014 John Sallのプレナリートークでは、来年3月にJMP 12で登場するいくつかの素晴らしい新機能のプレビューが示されました。私の個人的なお気に入りは、DOE開発チームの最新メンバーであるJoseph Morganによって実装された、アレイをカバーするためのDOEの新しいJMP Pro 12プラットフォームです。
カバーアレイ?
強さのためにトン与えられたカバー配列トン列、あらゆる可能なレベルの組み合わせが発生します少なくとも一度は 。 たとえば、レベルA1とA2の列(因子)A、およびレベルB1とB2の列Bを持つ2つのカバーを持つ配列の場合、(A1、B1)、(A1、B2)、(A2、B1)、(A2、B2)はデザインに表示する必要があります。
だから、もし要素がレベルオン/オフのスイッチを表す強さ2のカバー配列を持っていたら、私は実験のどこかでスイッチのペアのどちらかで、私は両方のスイッチをオン、オフ、そして両方オフ。
DOEに精通している人にとっては、これは直交配列の定義と同じように聞こえるかもしれません。主な違いは、直交配列では各組み合わせが正確に同じ回数発生する必要があるのに対し、カバー配列では各組み合わせが発生することだけが必要なことです。結局のところ、設定のオン/オフが設定された回路を表すX1〜X30の30の要素があるとすれば、最小の強さ2をカバーする配列はたった8回の実行しかありません。この場合、最初のテストではすべてのスイッチが「オン」に設定されているので、実際には7つのテストしか必要ありません。この場合の直交配列は32回の実行を必要とします。
カバリングアレイはソフトウェアテストで頻繁に使用されます。この場合、アレイの障害によるソフトウェア障害がないことを確認するのに役立ちます。トン要素の双方向の組み合わせ。カバーアレイは、徹底的なテストのコストのほんの一部でこれを達成するのに役立ちます。カバリングアレイは、2006年までさかのぼってJMPの一部をテストするために使用されてきました。
この場合どのように機能しますか?
私が8ランの強さ2をカバーする配列を持っていて、スイッチが各ランのために電気を持っていたかどうかを記録したとしましょう。下の図には最初のいくつかの要因しか示していませんが、実際のデータ表はX30になります。

これはJMP 12で何が起きるのかの単なるプレビューですが、この例では、回線X1が原因であることがわかります。ライトスイッチはX1がオンのときは常に作動し、X1がオフのときは作動しません。これは他のブレーカには当てはまりません。スイッチを変更できるだけでなく、どの回路が実際にそれを制御しているのかという謎を解きました。
最終的な考え
この例では、階段を上がる数回の追加旅行は大したことのようには思えないかもしれませんが、テストが非常に高価になる可能性がある例を想像することができます。特に要因の数が増えるにつれて、アレイをカバーするためのソフトウェアにアクセスできない場合は、見逃してしまう可能性があまりにも多くあります。もっと多くのスイッチを持っていたら、100、200、500と言ったらどうなりますか?カバー配列が大きすぎると対処できないと考えるかもしれません。上記の場合の実行サイズは、それぞれ10、11、および13です。
来年3月にJMP 12がリリースされたときには、配列のカバーについてもっと楽しみにすることができます。
テレサオビス書きました:
Hy Ryan、
私はCover Arrayのエキスパートではありませんが、これはStephen MistlerがSAS Training Postで数独を解決するために使用しているのと同じことのようです(上記のリンクを参照)。
本当?もしそうなら、どうやってJSLで数独を解くことができますか?それはいいね。手伝って頂けますか。
http://blogs.sas.com/content/sastraining/2015/02/05/solving-sudoku-with-sasiml-part-2/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+TheSasTrainingPost+%28The+SAS+Training +投稿%29