2013年3月30日土曜日

リソースの事前割り当て


●ITヒント10 ‐ 事前作用
必要な変更(の一部)を事前に行ってみる
予め便利に配置しておき、すぐに動作できるようにしてみる

: リソースの事前割り当て
 メモリなどのリソースはアクセスする前に割り当てておかないといけないので、必要になった段階で動的に割り当てたのでは時間を要してしまう。特に、多くの割り当てを必要とする処理の場合、性能に多大な影響を及ぼしかねない。
 必要となる前にリソースを割り当てておくようにします。
リソースの事前割り当てによる時間の節減


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月29日金曜日

データ圧縮


●ITヒント9 ‐ 事前反作用
     ●有害な影響と有益な効果をあわせ持つ作用を行う必要がある場合、事前に反作用を施して有害な影響を抑制してみる
     ●予め応力を発生させておき、あとで生じる好ましくない使用応力に対抗するようにしてみる

: データ圧縮(送受信や格納読み出しのコストへの対処)
 許容量を超すデータを記憶装置や帯域幅内に収めなければならない。
 データを格納したり送受信したりする前に圧縮することにより、記憶装置や帯域幅に対する要件を緩和させます。記憶装置から読み出したり通信チャネルから受信したりしたデータは、伸長してもとの形に戻してから使います。
データ圧縮による記憶領域の節減


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月28日木曜日

共有コードセグメント


●ITヒント8 ‐ 相殺
好ましくない作用を相殺するために、反対の作用を有する別のものを組み合わせてみる
好ましくない作用を相殺するために、環境と相互作用するようにしてみる

: 共有コードセグメント
 多重プロセスのプログラムにおいて、同じコードセグメント(実行プログラムのマシンコード命令が含まれるメモリ領域)をプロセス毎に個別に用意したのではメモリを無駄にしかねない。
 これらのコードセグメントを一つにまとめた共有コードセグメントを用意し、メモリ上でこの内容を書き換えることなく複数のプロセスが共有するようにします。DLL(ダイナミック・リンク・ライブラリ)はこのような共有コードセグメントの典型例です。
冗長なコードセグメントの個別使用(左図)に比べ、メモリ上の一つのコードセグメントの内容を書き換えることなく複数のプロセスが共有する共有コードセグメントを利用することによってメモリ消費を削減(右図)


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月27日水曜日

OLE


●ITヒント7 ‐ 入れ子
オブジェクトを別のオブジェクトの中に入れたり、順繰りに別のオブジェクトの中に入れてみたりする
あるオブジェクトを別のオブジェクトの中に複数個入れてみる

: Microsoft® Office® OLE
 あるプログラムの結果や機能を別のプログラムで利用できるのは便利だが、あらゆるタスクを実行できるような万能型プログラムがあったとしてもそれを使いこなすのは容易ではない。
 OLE(Object Linking and Embedding)を用いれば、あるプログラムで作成されたオブジェクトを別のプログラムのオブジェクトに埋め込んだりリンクしたりできるので、あるプログラムの機能を別のプログラムで使用することができます。
OLEにより、あるプログラムの機能を別のプログラムで使用する仕組みを提供


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月26日火曜日

ビットマップ


●ITヒント6 ‐ 多機能性
●対象の一部が複数の機能を果たすようにしてみる
他の部分や対象が必要でないようにしてみる

:  ビットマップ
 プログラムで複数のブール値を操作する場合、各ブール値が1バイト占有しかねないが、ブール値当たり実際に必要なのは1ビットだけである。
 複数のブール値をビットマップ配列として格納すれば、各ブール値が必要とするスペースを1ビットに抑えられるので、1バイト当たり8要素収容できます。
ビットマップ配列ではブール値が1ビットしか占有しないので
1バイト当たり8要素を収容可能


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月25日月曜日

マージソート


●ITヒント5 ‐ マージ
同一物あるいは類似物を近づけたり、マージしたり、まとめて並列動作させたりしてみる
作業を連続または並行させたり、同時に行ったりしてみる

: マージソート
 汎用のソートアルゴリズムではクイックソートアルゴリズムが最速だが、このアルゴリズムではデータに対して順次アクセスしかできない連結リストなどの場合、ランダムアクセスによるピボット選択ができない。
 連結リストのソートに最適化されたマージソートアルゴリズム(下図)を利用すれば、比較ベースのアルゴリズムなので、安定しているし、ソート結果における同値要素の順番も保たれます。
マージソートの基本的な考え方: 
1. 未ソートのリストをほぼ同じ長さの二つのサブリストに繰り返し分割する 
2. サブリストをソートする 
3. ソートされたサブリストを繰り返しマージしてソート済みリストを生成する


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月24日日曜日

可変長配列


●ITヒント4 ‐ 非対称性
形を対称から非対称に変えてみる
●すでに非対称な場合には、もっと非対称にしてみる

: 可変長配列
 単純な次元配列では、配列内の各行の長さが揃っていない場合にメモリを浪費してしまう。
 配列の配列、すなわち不調和配列にすれば、次元配列の行自体が可変長な配列となるので、各行の長さが異なっていてもメモリを最適に使用することができます。
使用領域と未使用領域のある固定長の行(左図)から
使用領域しか存在しない可変長な行(右図)への変更


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月23日土曜日

マシン固有コード


●ITヒント3 ‐ 局所性
  • 構造を均一なものから均一でないものに変えたり、外部環境や外部影響を均一なものから均一でないものに変えてみる
  • 各部がその動作に最適な条件で機能するようにしてみる
  • 各部が異なる有用機能を果たすようにしてみる
: マシン固有コードの生成
 特殊命令セットの異なるプロセッサが組み込まれたコンピュータなど、性能の違うマシンで同じオペレーティングシステムを用いる場合、全てのマシンに共通の命令セットしか使わないと、性能を最適化する特殊機能が利用できないために高いパフォーマンスが得られない。
 同じソースコードから各機器構成(プラットフォーム)に特有の実行コードを生成します。
各コンピュータにはそれぞれに特有の実行コード(局所性質)を提供(右図)


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月22日金曜日

コネクション共有(多重化)


●ITヒント2 ‐ 分離
邪魔になる部分や特性を対象から分離してみる
必要な部分や特性だけを対象から選び出してみる

: コネクション共有(多重化)
 2つのノード(例えば、プロセス)の間で複数のデータストリームを転送するためにおのおの個別のコネクションリンクを用意したのでは高くついてしまうことがある。
 多重化と呼ばれるコネクション共有の技術を利用し、単一のコネクションで複数のデータストリームを転送できるようにします。マルチプレクサを用いて複数の入力データをひとつにまとめた上で単一のコネクションに送出し、デマルチプレクサを用いて受信データを元の個別のデータストリームに戻します。この技術を用いることによって複数のデータストリームが単一の通信リンク上で送信可能となり、コストを減らせます。
マルチプレクサで複数の入力データを単一の共通データストリームにまとめ、
デマルチプレクサで受信内容を元の入力データに分解して多重化前の形に復元


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月21日木曜日

データベースの正規化


ITヒント1 ‐ 分割
●対象を複数の独立した部分に分割してみる
対象を分解しやすいようにしてみる
対象の断片化(または分割)の度合いを高めてみる

:  データベースの正規化
 データベースが大きくなると、重複情報が含まれるようになり、その結果、データベースが肥大化してデータの整合性や保全性に関する問題を引き起こしかねない。
 データベースを正規化し、複数のテーブルに重複格納されているような冗長データをなくすとともに、一つのテーブルには関連するデータのみを格納するなど、意味あるデータの依存関係を保つようにします。
正規化されていないと複数箇所に格納されるデータが存在(左図)
正規化状態では、関連データのみが各テーブルに含まれる(右図)
正規化状態への移行は、データに基づくテーブルの分割を意味する


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com/ )

2013年3月19日火曜日

空母


●上位システム推移の法則
 この法則は、システムがその生涯を通して一般的に、単一システムから二重システムや多重システムあるいは異なるシステムの組み合わせに向かって進化していくことをうたっています。

異なるシステムの組み合わせ
 二つ以上の要素で構成されるものは、構成要素が同種のシステムでない限り、異なるシステムの組み合わせです。

例: 空母
空母は、飛行場と船の組み合わせ


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月18日月曜日

飛行機のエンジン


●上位システム推移の法則
 この法則は、システムがその生涯を通して一般的に、単一システムから二重システムや多重システムあるいは異なるシステムの組み合わせに向かって進化していくことをうたっています。
単一システムから二重システムや多重システムへの推移
 この推移の考え方は大変理解しやすいです:
  • ひとつのシステムは単一システムです
  • 2つの同一システムの組み合わせは二重システムです
  • 3つ以上の同一システムの組み合わせは多重システムとなります
以下の例で示されるように
これらの単純な推移によって良いコンセプトや新たな特徴を創出することができます。

例: 飛行機のエンジン
一機あたり一つのエンジンから8つのエンジンへの推移


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月17日日曜日

ゲート


●システムの制御性/柔軟性向上の法則(柔軟性の法則)
 システムの進化は、制御性の向上、剛構造から柔構造、固定パラメーターから可変パラメーターに向かって進みます。剛性要素から成るシステムは動作条件の変化についていけないので、もっと柔軟でダイナミックにする必要があります。剛構造にジョイントが導入され、その数がさらに増え、柔軟なシステムへ推移していきます。システム要素を分子または場のレベルで導入した場合に最大の柔軟性が得られます。

 剛構造から柔構造へ推移するトレンドの一部を下図に示します:

例: 柔軟なゲート
複数のジョイントを用いて作られた柔軟なゲート


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月16日土曜日

パソコン

●ミクロレベル推移の法則
 この法則は、システムが一般的に、その構成要素を分解する方向、特に作動部を分解する方向に進化していくことをうたっています。この法則には2つの主要な考え方が含まれます:
  • 物質のマクロ状態からミクロ状態への推移を利用することによって同じ機能を果たすシステムは、より小さくなり、理想形に近づきます。進化しても大きさが変わらないシステムもありますが、このような場合には、より多くの機能がより高い品質で達成されたり、生産性が向上したり、エネルギー消費量が低減したりしています。
例: パソコン
2つの時代のコンピューターの簡単な比較


出典: TRIZ Technology for Innovation ( http://www.trizsoluton.com )

2013年3月15日金曜日

切削工具


●ミクロレベル推移の法則
 この法則は、システムが一般的に、その構成要素を分解する方向、特に作動部を分解する方向に進化していくことをうたっています。この法則には2つの主要な考え方が含まれます:
  • 物質がマクロ状態からミクロ状態へ推移することによってパラメーターをより効果的で柔軟に制御できるようになります
物質がマクロ状態からミクロ状態へ推移するトレンド

例: 切削工具
切削工具におけるモノリス状態から電磁界状態への推移


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月14日木曜日

水上飛行機


●上位システム推移の法則
 この法則は、システムがその生涯を通して一般的に、単一システムから二重システムや多重システムあるいは異なるシステムの組み合わせに向かって進化していくことをうたっています。

異なるシステムの組み合わせ
 二つ以上の要素で構成されるものは、構成要素が同種のシステムでない限り、異なるシステムの組み合わせです。

例: 水上飛行機
水上飛行機は、飛行機と船の組み合わせ


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月13日水曜日

剃刀


●上位システム推移の法則
 この法則は、システムがその生涯を通して一般的に、単一システムから二重システムや多重システムあるいは異なるシステムの組み合わせに向かって進化していくことをうたっています。
単一システムから二重システムや多重システムへの推移
 この推移の考え方は大変理解しやすいです:
  • ひとつのシステムは単一システムです
  • 2つの同一システムの組み合わせは二重システムです
  • 3つ以上の同一システムの組み合わせは多重システムとなります
以下の例で示されるように
これらの単純な推移によって良いコンセプトや新たな特徴を創出することができます。

例: 剃刀の刃
ひとつの剃刀あたり2枚から3枚、4枚、更には5枚の刃という変化は
剃刀の進化における大変効果的な推移でしたが
将来的に、剃刀の刃の枚数は更に増えてゆくでしょううか?


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月12日火曜日

音の広がり角


●システムレベルパラメーター値変更による常識からかけ離れた空想的な考えや状況の創出

1. 革新しようとするシステムあるいは対象をひとつ選びます。
2. 選んだシステムあるいは対象に対するパラメーターの一覧を作成します。
3. 好きなパラメーターを選び、現在の値を大きく増大または減少させます。
 変更後のパラメーター値をとるシステムあるいは対象を描き出します。
 これが、常識からかけ離れた新たな空想的アイデアを表すことになります。
4. 変更したシステムあるいは対象を元の環境に置くことにより、多くの矛盾や問題を抱えた新たな空想的状況を創り出します。
 SF小説向けの構想を創り上げるのに似ていますが、これはシステム進化における次の段階ともなり得ます。

例: 音の広がり角
1. 革新しようとするシステムとして「音」を選びます。
2. 「音」に対するパラメーターの一覧を作成します:
·   広がり角
·   吸音係数
·   振幅
·   周波数
·   周波数音域
·   周波数偏移
·   周期
·   位相
·   位相偏移
·   反射率
·   音圧
·   空中音速
·   透過率
·   波長
3. 好きなパラメーターとして「広がり角」を選び、これを現在の値である 360°から 5°に大きく減少させます(下図
 この結果、ごく限られた範囲内でしか音が聞こえなくなります。
4. 変更した対象を元の環境に戻して新たな空想的状況を創出します:
 LRAD社が開発したHSSHyperSonic Soundシステムは、スポットライト光のように細い円柱状に超音波を発生させ特定の方向にだけ音を伝えることができます。この装置では音響インタフェースにつなげられた圧電結晶から200,000ヘルツの基準信号と200,200220,000ヘルツの可変信号の対が超音波として送出され、これらが相互作用すると差信号が可聴音となります
 HSSシステムには以下のような適用が考えられます
·   配慮型スピーカーフォン
·   指向性メッセージ
·   的を絞った広告
·   音響弾
音の広がり角が360°だと誰でも聞こえるが
5°しかなければ狙った人にしか聞こえない


出典: TRIZ Technology for Innovation ( http://www.trizsoluiton.com )

2013年3月11日月曜日

ユニバーサル・ソルジャー

●上位システム環境の既存機能と物質―場資源を利用した常識からかけ離れた空想的な考えや状況の創出
例: ユニバーサル・ソルジャー
 一般的な記念彫像では、大理石、御影石、金属などを用いて褒めたたえたい人物の肖像を表します。それでは、お国のために戦場に向かった大勢の無名な兵士を忘れさせないもっと創造性にあふれた像はどうすれば作れるでしょうか?
 ニューヨークのバッテリー公園にあるユニバーサル・ソルジャー像を制作した彫刻家は、上位システム環境の既存機能と物質―場資源を利用しました。この像は御影石の厚板内に兵士を空間つまり、空気 ...  帰還兵と同様に見過ごされがちなもの ...  で表しています。
ニューヨークにあるユニバーサル・ソルジャーの像


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )

2013年3月10日日曜日

背面飛行


●発明原理13(逆発想原理)による常識からかけ離れた空想的な考えや状況の創出
 「逆発想」は、創造的な想像力の育成にとってたいへん重要で普遍的な考え方です。ほとんどいつでもそしてどこでも以下のものに対して適用可能です:
  • 動作
  • 物体やプロセスの特性
  • 状況
  • 発明原理(→原理対の作成: 原理⇔反原理
例: 背面飛行
 通常、地表面に対してパイロットの頭が上で足が下にくる姿勢で飛びますが、「逆発想」を適用して自分が楽しんだり観衆を楽しませたりするパイロットもいます。この上下を逆さにした背面飛行は、人気を博するブルー・エンジェルス航空ショーの主演目の一つです。
曲芸飛行


出典: TRIZ Technology for Innovation ( http://www.trizsolution.com )