ロジカルシンキング(Logical Thinking) は物事を論理的に筋道立てて考え、矛盾のない結論を導く思考法のこと。
論理展開の基本パターン¶
帰納法¶
個別の観察事実やデータから事例の共通点を取り出して一般的な法則・仮説を導く推論。
形式
観察1:Aは性質Xをもつ(例:「このカラスは黒い」)
観察2:Bは性質Xをもつ(例:「このカラスは黒い」)
観察3:Cは性質Xをもつ(例:「このカラスは黒い」)
結論:すべて(多く)の対象は性質Xをもつだろう(例:「すべてのカラスは黒いだろう」)
特徴
結論は確率的・暫定的(反例で覆る可能性あり)
例:アルビノの白いカラスもいるため「すべてのカラスが黒」という推論は誤り
仮説生成や探索に向く
演繹法¶
一般的な法則・前提から、個別の結論を必然的に導く推論。
形式
前提1:すべてのAはBである(例:「すべての人間は死ぬ」)
前提2:CはAである(例:「ソクラテスは人間である」)
結論:CはBである(例:「ソクラテスは死ぬ」)
特徴
論理的・形式的
前提が正しければ、結論は必ず正しい
検証・説明に向く
情報の整理・構造化のフレームワーク¶
フレームワーク としてはロジックツリーないしピラミッドストラクチャーがよく用いられる
Source
import base64
from IPython.display import Image, display
def mm_ink(graphbytes):
"""Mermaid形式のグラフ(バイト列)から、画像生成用のURLを返す。"""
base64_bytes = base64.b64encode(graphbytes)
base64_string = base64_bytes.decode("utf-8")
return "https://mermaid.ink/img/" + base64_string
def mm_display(graphbytes):
"""Mermaid形式のグラフ(バイト列)を受け取り、画像として表示する。"""
display(Image(url=mm_ink(graphbytes)))
def mm(graph):
"""Mermaid形式のグラフ文字列を受け取り、画像として表示する。"""
graphbytes = graph.encode("utf-8") # ← 日本語対応
mm_display(graphbytes)
def mm_link(graph):
"""Mermaid形式のグラフ文字列から、表示用のURLを返す。"""
graphbytes = graph.encode("utf-8") # ← 日本語対応
return mm_ink(graphbytes)
def mm_path(path):
"""Mermaid形式のグラフを含むファイルを読み込み、画像として表示する。"""
with open(path, 'rb') as f:
graphbytes = f.read()
mm_display(graphbytes)
mm("""
graph LR;
A["利益"] --> B["売上"]
A --> C["費用"]
B --> D["販売数量"]
B --> E["単価"]
C --> F["変動費"]
C --> G["固定費"]
""")MECE(ミーシー)¶
MECE(Mutually Exclusive, Collectively Exhaustive) :漏れがなく、重複もないこと。
ある物事を考えるときにロジックツリーを使う場合、漏れなくダブりなく要素を分解する必要がある。
例えば「利益」を構成する枝は「売上」「費用」なら妥当だが(利益 = 売上 - 費用のため)、費用が欠けていたり、「売上」「費用」「コスト」と重複があっても不適切
ピラミッドストラクチャー¶
ピラミッドストラクチャー :結論をトップに置き、その下に理由・根拠を階層的に整理。
ピラミッドストラクチャーをセルフチェックするための問い
So What(だからなんなのか) :前提を元に導かれる結論を考えるための問い
Why So(なぜそう言えるのか) :結論が導かれる道筋を確かめるための問い