14.Graph2

Size: px
Start display at page:

Download "14.Graph2"

Transcription

1 アルゴリズム論第 (1クラス) 第 14 回 (2018/01/17) 情報学専攻庄野逸 ( 3 号館 313 号室 )

2 本 のお題 [ 復習 ] グラフとは グラフの基本概念と 語 グラフの実現 法 グラフを いた問題 最短経路問題 Dijkstr アルゴリズム,APSP 問題と Floy アルゴリズム 有向グラフ (DAG) とトポロジカルソート 最 全域 (Minimum Spning Tr): Prim と Kruskl のアルゴリズム グラフの 2 重連結性 グラフのマッチング ( の紹介 )

3 [ 復習 ] グラフとは? 語説明 (1) 雑把にいえば 幾つかの点とそれらを結ぶ線からなる図 がグラフ 点は, 頂点 (Vrtx)/ 節点 (No) などと呼ぶ 頂点集合を V とする.2 頂点 v, w V を結ぶ線 = (v, w) V x V を辺 (g) / 枝 (rnch) と呼ぶ v と w は の端点 (n nos) V: 頂点集合,E: 辺集合とした時, グラフはこれら 2 つの集合できるグラフ G = (V, E) 無向グラフ (Unirct Grph) 辺は頂点を結ぶだけで向き (irction) がない.(v,w) = (w, v) 有向グラフ (Dirct Grph) 辺に向きがある v w (w は v に隣接する ) この場合の辺を 弧 (rc) と呼ぶ.

4 [ 復習 ] グラフとは? 語説明 (2) 雑把にいえば 幾つかの点とそれらを結ぶ線からなる図 がグラフ 経路 : 頂点の列 v 1, v 2,... v n. ただし (v i, v i+1 ) E ( 辺が存在する ) 経路の さ : 通過する辺の本数 = 両端も含めた点の個数 -1 つの頂点だけの経路は, さ 0 単純経路 (simpl) 最初と最後以外の全ての頂点が異なる 閉路 (cycl, circuit) ある頂点から, その頂点 へと る単純な経路有向グラフでは さが 1 以上. 無向グラフでは さが 3 以上 : つのノードを根とし, どのノードについても, 根からの単純な経路が つだけあるグラフ

5 問題のモデル化とグラフ 最短経路問題 A 地点から B 地点へ くのにいろいろな経路がある時, 番 ( 安い, 早い, 楽な ) 経路は? トポロジカルソート さな作業 程の組合せ ( 順序関係あり ) からなる仕事を仕上げる場合, 全ての 程をどのような順番で作業を進めるか? コスト最 の極 幾つかの町に通信線を引くのに, どの町にも連絡がつき, かつ最もコストかからない 法は? グラフの 2 重連結性幾つかの町のネットワークがあったとして, 部が機能しなくなっても全体の連結性が失われないようなネットワークを作るには? グラフマッチング によってこなせる仕事が異なる場合, どの仕事をどの に割り振るか

6 [ 復習 ] グラフの表現 実現 法 (1) ラベル付き隣接 列 (jcncy mtrix) 隣接の集合が V = {v 1,..., v n } の時, 要素が論理型の n x n 列 A において (v i, v j ) E ならば A ij は真, そうでなければ偽とする 無向グラフならば 列は対称 列になる グラフがラベル付きの場合,A の要素を辺のラベルにすると良い c c

7 [ 復習 ] グラフの表現 実現 法 (2) 隣接リスト (jcncy list) 各頂点において隣接する頂点のリストを保持 リストは連結リストやカーソルによって実現 c c

8 [ 復習 ] 最短経路問題と ダイクストラアルゴリズム (1) (Dijkstr) : V = {1, 2,...,n} E (i, j) E C(i, j) ( (i, j) C(i, j) = ) : 1 j(= 2,...,n) (j)... (1) S := {1}; or j := 2 to n o (j) :=C(1,j); (2) n 1 (S = V ) (2-) S (u) u (2-) S := S { u }; (2-c) u (u, v) E (v) min( (v), (u) +C(u, v)); (v u )

9 [ 復習 ] 最短経路問題と ダイクストラアルゴリズム (2) 1 から到達するためのコスト 1. 経由地 2, (u=2) = 10 S = {1, 2}, 更新 v= 3 2. 経由地 4, (u=4) = 30 S = {1, 2, 4}, 更新 v = 3, 5 3. 経由地 3, (u=3) = 50 s = {1, 2, 3, 4}, v = 5 4. 残った 5 を始点とする弧がないので終了

10 最短経路問題の解法と計算量 隣接 列による表現 n 個の要素の集合 S をビットベクトルで表し,(j) および C(i, j) を, そのまま各々 1 次元および 2 次元の配列で表すのが 番簡単 ステップ (2-) およびベクトル要素の操作の計算量は, それぞれ O(n) 全体で O(n 2 ) 計算量を良くするための実現法 隣接リスト表現. 各点からの辺を連結リストで保持 (u) を優先度とするヒープを考える. 但しヒープノードには, 優先度とグラフの頂点番号 u の組を保持ヒープの要素数は n ステップ (2-) における要素の選択 (DltMin) の 間, ステップ (2-c) で (v) の値が変更された場合のヒープ内の位置変更 (insrt) も 間は O(log n). ステップ (2-) は n 回, (2-c) は E ( 辺の数 ) 般には E > n なので, 全体の計算量は O( E log n)

11 最短経路問題 : 全ての頂点つの 最短経路 (1) APSP 問題出発点を つに限定せずに, グラフ上の任意の 2 頂点について最短経路を求める問題を APSP(All Pirs Shortst Pths) 問題と呼ぶ ダイクストラアルゴリズムを全頂点を始点にして実 する 隣接 列を使うのならば フロイド (Floy) アルゴリズム も n x n 隣接 列 A を考える. 対 要素 A ii = 0, それ以外は A ij = C(i,j) k = 1 n i = 1 n j = 1 n で 3 重ループを回す A ij = min( A ij, A ik + A kj ) k 回操作後の A ij は 頂点 i から j への経路のうち k より きい番号の頂点を通過しないものの最短距離 上の代 で値が変更されるのは, 頂点 i から j への経路 が k を通過することにより短くなる場合. 経路も求めたければ i-j 間の途中経路を記録する n x n 列 P も 意し, 上の代 で値が変化する場合 P[i, j] = k とすれば良い

12 最短経路問題 : 全ての頂点つの 最短経路 (2) APSP 問題出発点を つに限定せずに, グラフ上の任意の 2 頂点について最短経路を求める問題を APSP(All Pirs Shortst Pths) 問題と呼ぶ フロイドのアルゴリズム

13 最短経路問題 : 全ての頂点つの 最短経路 (3) i から j までの経路があるか? だけを知るには, 要素が真偽値のみの隣接 列の 推移的閉包 を計算する (Wrshll アルゴリズム ) 有向グラフの 中 : 離 率が最 の頂点 ( 最も遠い頂点までの距離が最も さい頂点 ) ある頂点の 離 率 = mx { w から v への最短距離 } フロイドアルゴリズムの実 終了後に得られた A を いると良い v の離 率 = mx { A uv } ( 第 v 列中の最 値 ) 練習問題有向グラフの頂点が V = {,,c,, } で 7 本だけある弧のコストが C(,) = C(, ) = 1, C(, c) = C(c, ) = 2, C(, c) = 3, C(c, ) =4, C(, ) =5 としたとき,APSP 問題をとき, 各頂点の離 率とグラフの中 を求めなさい

14 幅優先探索 (Brth First Srch) と 深さ優先探索 (Dpth First Srch) BFS アルゴリズム (G, s) 概略 グラフ G の s 以外の全ノードの未達とする Enq(Q, s) s c whil Q!= 空集合 v = Dq(Q) g h or u v の隣接ノード u の到達距離 = v の到達距離 +1 Enq(Q, u) v に到達済みのマークを れる Dijkstr アルゴリズムと似ている

15 幅優先探索 (Brth First Srch) と 深さ優先探索 (Dpth First Srch) DFS アルゴリズム (G, s) 概略 ( 再帰版 ) s に処理開始マークを れる or u s の隣接ノードかつ未処理開始 s DFS アルゴリズム (G, u) s に処理終了マークを れる g h (3/) (2/9) (1/10) (11/1) s g h 複数の 構造 森 を構成する弧 辺 先祖に戻る弧 後退弧 を跨ぐ弧 交差弧 孫以降への弧 前進弧 (7/8) (4/5) (12/13) (14/15)

16 閉路の無い有向グラフ (Dirct Acyclic Grph)DAG 算術式の共通部分式 ((+) * c) * (((+)*c) + ((+)+)*(+)) 式の値を計算する場合, 共通部分式の計算を 度やって覚えておけば, 同じ計算を繰り返さずに済む 閉路があるかどうか = 深さ優先探索で後退弧に出会うか? グラフをなぞる頂点間に順序を設け, 頂点毎に訪問済みか否かのマークをいれる 深さ優先の極 森 (Spnning Tr): 深さ優先探索の の弧全体 深さ優先探索の極 森の中で先祖の頂点に向かう弧を後退弧と呼ぶ 交差弧は先祖でも 孫でも無い頂点に向かう弧

17 DFS と極 森

18 トポロジカルソート トポロジカルソート : グラフの 列化.DAG の頂点に線形順序を与え, 頂点 i から頂点 j への弧があれば, その線形順序の中で i < j とする作業 DFS で終了時刻の降順に並べると,DAG の場合, 印が左から右へ並ぶので トポロジカルソート と呼ぶ 左図の DAG のトポロジカルソートを考えて なさい

19 無向グラフの応 : Minimumcost Spnning Tr 最 全域 (Miniml cost Spnning Tr) 幾つかの節点と 2 節点を結ぶ為のコストが与えられた時, 最 コストで全ての節点を結ぶ連結グラフ グラフ G の全域 : G の全ての頂点を連結する 由 経路 v 1... v n は v 1 と v n を 連結 する 連結グラフ (connct grph): 全ての頂点の対が連結されている 由 : 閉路の無い連結グラフ 全域 のコスト = 辺のコストの和

20 MST を求めるアルゴリズム Prim のアルゴリズム現在の と, その に含まれない頂点を結ぶ辺で, 重みが最 のものを に加えて育てていく O( V 2 ) Kruskl のアルゴリズム の集合で,2 つの を結ぶ辺の内で, 重み最 のものを加えることで つの に繋いでいく

21 MST を求めるアルゴリズム Prim のアルゴリズム (1) Prim のアルゴリズム (Prim) : V = {v i, 1 i n} (v i,v j ) C(v i,v j )( (v i,v j ) C(v i,v j )= ) : T... (1) T := ; ( ) U := {v 1 }; V U w ( V U) U (u, w) C min (w) min (w) = u U : C min (w) :=C(v 1,w), min (w) :=v 1 or w = v 2,...,v n V U. (2) U = V ( n 1 )... O(n 2 ) () U V U U V U (u, v), u U, v V U ( C min (v))...o(n) () U := U {v}; T := T { (u, v)}; C min (v) := ; (c) V U w ( V U) C(v, w) <C min (w) C min (w) :=C(v, w) min (w) :=v;... O(n)

22 Prim のアルゴリズム MST を求めるアルゴリズム Prim のアルゴリズム (2)? : U 1 5 (5) (5) c () (3) () (4) (2) = c (3) () 4 (2) = 1 5 c (3) 4 2 = 1 5 c (3) 4 2 = 1 5 c = c 3 : C min () min () 1 O(n 2 ) 4 2

23 MST を求めるアルゴリズム Kruskl のアルゴリズム (1) Kruskl のアルゴリズム (Kruskl) : V E : T... (1) T := ; ( ) S := E ( ) ; C V ( ) : C := {{v } v V }) (2) C 2 C 2 () S (v 1,v 2 ) () C v 1 v 2 c(v 1 ) c(v 2 ) (c) c(v 1 ) c(v 2 ) C c(v 1 ) c(v 2 ) C (C := C { c(v 1 ),c(v 2 ) } { c(v 1 ) c(v 2 ) };) T (v 1,v 2 ) (T := T { (u, v)};)

24 MST を求めるアルゴリズム Kruskl のアルゴリズム (2) Kruskl のアルゴリズム? c = c = c 4 2 = c 4 2 = c 4 2

25 MST を求めるアルゴリズム Kruskl のアルゴリズム (3) Kruskl のアルゴリズムにおけるデータ表現法 辺の集合 S は重みの さい順から要素を取り出していく 初期化時に重みの さい順にソートして配列やリストとしても良いし, 全ての要素を使うわけでもないので, 辺の重みで優先順位を付けたヒープを いてもよい O( E log E ) 頂点の集合を要素とする集合 C: V 中の頂点を幾つかに分けて出来た部分集合の集合 (2)-() はある頂点 v がどの部分集合に属するかの in 操作 (2)-(c) は 2 つの部分集合の併合 (mrg) 操作 データ構造 : 部分集合は 構造 が親を指す 構造があると良い ( 配列で実現可能, 親の添字を持つ ) 部分集合は要素数を保持し, 根で区別. の さは 々 O(log n) c c

26 グラフの 2 重連結性 問い : 2 つの頂点間に複数の経路が存在するか? 関節点 (rticultion point): 消去するとグラフが 連結になる節点. 連結になる辺は橋 (rig) と呼ぶ 関節点を持たないグラフを 2 重連結グラフと呼ぶ 関節点を探すには? グラフ G の深さ優先探索 を構築し, 掛け順になぞる 各頂点について, の弧を 孫へと向かうか後退辺により連結する頂点の番号で最 の頂点を再帰的に求める 深さ優先 の根は, 弧が 2 以上あれば関節点. 根でない頂点は到達可能名頂点の番号が頂点の番号以上でれば関節点 ( ) c g

27 グラフのマッチング 2 部グラフ (iprtit grph): 頂点が互いに素な ( 共通部分のない )2 つの集合に分割され, 辺は 2 つの部分集合間を結ぶものに限られるグラフ グラフ G(V, E) が与えられた時, 辺の集合 E の部分集合で, どの 2 本の辺も V の同じ頂点に接続していないもの をマッチングと呼ぶ ( 頂点の対応づけで頂点に重複の無いもの ) 最 マッチング マッチングにおいて, 最も多くの辺を もの 完全マッチング 全ての頂点がいずれかの辺の端点になっている完全マッチングは最 マッチング を表す頂点の集合と, 同時に処理しないといけない仕事を表す頂点集合があって, 担当可能な対応関係を辺とするとそれは 2 部グラフとなる. 最 効率で仕事をしようとすると最 マッチングを解く必要が出て来る

28 最 マッチングを求める (Hopcrot-Krp の概要 ) マッチング M に対し M に関する増加路 : M 中のどの辺の端点にもなっていない 2 つの頂点を連結する経路のうち辺が 本おきに M に含まれるもの M と M に関する増加路の辺の集合 P との排他的論理和 M P をもとめ, それを新たな M とする という操作を増加路が つからなくなるまで繰り返す 1. 2 M ( (1,), (2,), (3,), (4,c)) c 2. 5? c-4-2 or 5-1 c-4 ( ) c 3. ( ) c

14.Graph2

14.Graph2 (1 ) 14 (2018/01/17) 1. ) ( 3 u TF TGo] rf TG i T D gk sgk M gkf M pj T FS [ K PAS tl ) : 2 F ( G M TG mn TG Gy [ ] (1) swve x G N h G U n v, : = r U p v c, v, h, =, o 2 / p, v c ( o c c ), ( g /: ) o

More information

Microsoft PowerPoint - ad11-09.pptx

Microsoft PowerPoint - ad11-09.pptx 無向グラフと有向グラフ 無向グラフ G=(V, E) 頂点集合 V 頂点の対を表す枝の集合 E e=(u,v) 頂点 u, v は枝 e の端点 f c 0 a 1 e b d 有向グラフ G=(V, E) 頂点集合 V 頂点の順序対を表す枝の集合 E e=(u,v) 頂点 uは枝 eの始点頂点 vは枝 eの終点 f c 0 a 1 e b d グラフのデータ構造 グラフ G=(V, E) を表現するデータ構造

More information

Microsoft PowerPoint - DA2_2018.pptx

Microsoft PowerPoint - DA2_2018.pptx データ構造とアルゴリズム IⅠ 第 7 回幅優先 / 深さ優先探索 / トポロジカルソート. 基本的グラフアルゴリズム 無向グラフ 個の頂点と7 本の辺からなる無向グラフ 隣接リスト 各頂点に関して, 隣接する ( 直接, 辺で結ばれた ) 頂点集合をリストで表現 無向グラフ G=(V,E),V は頂点集合,E は辺集合.E の要素は頂点のペア {u,} によって表される.{u, } と {, u}

More information

Microsoft PowerPoint - mp13-07.pptx

Microsoft PowerPoint - mp13-07.pptx 数理計画法 ( 数理最適化 ) 第 7 回 ネットワーク最適化 最大流問題と増加路アルゴリズム 担当 : 塩浦昭義 ( 情報科学研究科准教授 ) hiour@di.i.ohoku.c.jp ネットワーク最適化問題 ( 無向, 有向 ) グラフ 頂点 (verex, 接点, 点 ) が枝 (edge, 辺, 線 ) で結ばれたもの ネットワーク 頂点や枝に数値データ ( 距離, コストなど ) が付加されたもの

More information

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル 概略設計書 作成者築山修治作成日 2012 年 10 月 1 日 概要 ( どのような入力に対して, どのような出力をするかの概要説明 ) * 木 T および質問点対の集合 P が与えられたとき, 各質問点対 p = (v,w) P の最下位共通先祖 ( すなわち木 T において点 v と w の共通の先祖 a で,a の真の子孫には v と w の共通の先祖が無いような点 ) を見出す関数である.

More information

Microsoft PowerPoint - DA2_2019.pptx

Microsoft PowerPoint - DA2_2019.pptx Johnon のアルゴリズム データ構造とアルゴリズム IⅠ 第 回最大フロー 疎なグラフ, 例えば E O( V lg V ) が仮定できる場合に向いている 隣接リスト表現を仮定する. 実行時間は O( V lg V + V E ). 上記の仮定の下で,Floyd-Warhall アルゴリズムよりも漸近的に高速 Johnon のアルゴリズム : アイデア (I) 辺重みが全部非負なら,Dikra

More information

オートマトンと言語

オートマトンと言語 オートマトンと言語 4 回目 5 月 2 日 ( 水 ) 3 章 ( グラフ ) の続き 授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/public/automaton/ 授業の予定 ( 中間試験まで ) 回数月日 内容 4 月 日オートマトンとは, オリエンテーション 2 4 月 8 日 2 章 ( 数式の記法, スタック,BNF) 3 4 月 25 日 2

More information

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2017.pptx // データ構造とアルゴリズム IⅠ 第 回単一始点最短路 (II)/ 全点対最短路 トポロジカル ソート順による緩和 トポロジカル ソート順に緩和 閉路のない有向グラフ限定 閉路がないならトポロジカル ソート順に緩和するのがベルマン フォードより速い Θ(V + E) 方針 グラフをトポロジカル ソートして頂点に線形順序を与える ソート順に頂点を選び, その頂点の出辺を緩和する 各頂点は一回だけ選択される

More information

計算幾何学入門 Introduction to Computational Geometry

計算幾何学入門 Introduction to  Computational Geometry テーマ 6: ボロノイ図とデローネイ 三角形分割 ボロノイ図, デローネイ三角形分割 ボロノイ図とは 平面上に多数の点が与えられたとき, 平面をどの点に最も近いかという関係で分割したものをボロノイ図 (Voronoi diagram) という. 2 点だけの場合 2 点の垂直 2 等分線による分割 3 点の場合 3 点で決まる三角形の外接円の中心から各辺に引いた垂直線による分割線 2 点からの等距離線

More information

PowerPoint Presentation

PowerPoint Presentation 最適化手法 第 回 工学部計数工学科 定兼邦彦 http://researchmap.jp/sada/resources/ 前回の補足 グラフのある点の隣接点をリストで表現すると説明したが, 単に隣接点の集合を持っていると思ってよい. 互いに素な集合のデータ構造でも, 単なる集合と思ってよい. 8 3 4 3 3 4 3 4 E v 重み 3 8 3 4 4 3 {{,},{3,8}} {{3,},{4,}}

More information

離散数学

離散数学 離散数学 最小全域木と最大流問題 落合秀也 今日の内容 最小全域木 プリムのアルゴリズム 最大流問題 フォード ファルカーソンのアルゴリズム 今日の内容 最小全域木 プリムのアルゴリズム 最大流問題 フォード ファルカーソンのアルゴリズム 最小全域木を考える Minimum Spanning Tree Problem ラベル付 ( 重み付 ) グラフ G(V, E) が与えられたとき ラベルの和が最小となる全域木を作りたい

More information

Microsoft PowerPoint - mp11-06.pptx

Microsoft PowerPoint - mp11-06.pptx 数理計画法第 6 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 第 5 章組合せ計画 5.2 分枝限定法 組合せ計画問題 組合せ計画問題とは : 有限個の もの の組合せの中から, 目的関数を最小または最大にする組合せを見つける問題 例 1: 整数計画問題全般

More information

Microsoft PowerPoint - 06graph3.ppt [互換モード]

Microsoft PowerPoint - 06graph3.ppt [互換モード] I118 グラフとオートマトン理論 Graphs and Automata 担当 : 上原隆平 (Ryuhei UEHARA) uehara@jaist.ac.jp http://www.jaist.ac.jp/~uehara/ 1/20 6.14 グラフにおける探索木 (Search Tree in a Graph) グラフG=(V,E) における探索アルゴリズム : 1. Q:={v { 0 }

More information

離散数学

離散数学 離散数学 最短経路問題 落合秀也 その前に 前回の話 深さ優先探索アルゴリズム 開始点 から深さ優先探索を行うアルゴリズム S.pu() Wl S not mpty v := S.pop() I F[v] = l Tn, F[v] := tru For no u n A[v] S.pu(u) EnFor EnI EnWl (*) 厳密には初期化処理が必要だが省略している k 時間計算量 :O(n+m)

More information

Microsoft PowerPoint - 13approx.pptx

Microsoft PowerPoint - 13approx.pptx I482F 実践的アルゴリズム特論 13,14 回目 : 近似アルゴリズム 上原隆平 (uehara@jaist.ac.jp) ソートの下界の話 比較に基づく任意のソートアルゴリズムはΩ(n log n) 時間の計算時間が必要である 証明 ( 概略 ) k 回の比較で区別できる場合の数は高々 2 k 種類しかない n 個の要素の異なる並べ方は n! 通りある したがって少なくとも k n 2 n!

More information

alg2015-6r3.ppt

alg2015-6r3.ppt 1 アルゴリズムとデータ 構造 第 6 回探索のためのデータ構造 (1) 補稿 : 木の巡回 ( なぞり ) 2 木の巡回 ( 第 5 回探索 (1) のスライド ) 木の巡回 * (traverse) とは 木のすべての節点を組織だった方法で訪問すること 深さ優先探索 (depth-first search) による木の巡回 *) 木の なぞり ともいう 2 3 1 3 4 1 4 5 7 10

More information

Microsoft PowerPoint - 06.pptx

Microsoft PowerPoint - 06.pptx アルゴリズムとデータ構造第 6 回 : 探索問題に対応するデータ構造 (2) 担当 : 上原隆平 (uehara) 2015/04/22 内容 スタック (stack): 最後に追加されたデータが最初に取り出される 待ち行列 / キュー (queue): 最初に追加されたデータが最初に取り出される ヒープ (heap): 蓄えられたデータのうち小さいものから順に取り出される 配列による実装 連結リストによる実装

More information

Microsoft PowerPoint - algo ppt [互換モード]

Microsoft PowerPoint - algo ppt [互換モード] ( 復習 ) アルゴリズムとは アルゴリズム概論 - 探索 () - アルゴリズム 問題を解くための曖昧さのない手順 与えられた問題を解くための機械的操作からなる有限の手続き 機械的操作 : 単純な演算, 代入, 比較など 安本慶一 yasumoto[at]is.naist.jp プログラムとの違い プログラムはアルゴリズムをプログラミング言語で表現したもの アルゴリズムは自然言語でも, プログラミング言語でも表現できる

More information

Microsoft PowerPoint - 05.pptx

Microsoft PowerPoint - 05.pptx アルゴリズムとデータ構造第 5 回 : データ構造 (1) 探索問題に対応するデータ構造 担当 : 上原隆平 (uehara) 2015/04/17 アルゴリズムとデータ構造 アルゴリズム : 問題を解く手順を記述 データ構造 : データや計算の途中結果を蓄える形式 計算の効率に大きく影響を与える 例 : 配列 連結リスト スタック キュー 優先順位付きキュー 木構造 今回と次回で探索問題を例に説明

More information

グラフの探索 JAVA での実装

グラフの探索 JAVA での実装 グラフの探索 JAVA での実装 二つの探索手法 深さ優先探索 :DFS (Depth-First Search) 幅優先探索 :BFS (Breadth-First Search) 共通部分 元のグラフを指定して 極大木を得る 探索アルゴリズムの利用の観点から 利用する側からみると 取り替えられる部品 どちらの方法が良いかはグラフに依存 操作性が同じでなければ 共通のクラスの派生で作ると便利 共通化を考える

More information

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦   正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語 オートマトン 形式言語及び演習 3. 酒井正彦 www.trs.css.i.nagoya-u.ac.jp/~sakai/lecture/automata/ とは ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械 : 言語を記号列で定義 - 記述しやすい ( ユーザフレンドリ ) 例 :01 + 10 - UNIX の grep コマンド - UNIX の

More information

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2017.pptx 1// 小テスト内容 データ構造とアルゴリズム IⅠ 第 回単一始点最短路 (I) 1 1 第 章の構成. 単一始点最短路問題 単一始点最短路問題とは 単一始点最短路問題の考え方 単一始点最短路問題を解くつのアルゴリズム ベルマン フォードのアルゴリズム トポロジカル ソートによる解法 ダイクストラのアルゴリズム 1 1 単一始点最短路問題とは 単一始点最短路問題とは 前提 : 重み付き有向グラフ

More information

Microsoft PowerPoint - DA2_2018.pptx

Microsoft PowerPoint - DA2_2018.pptx 1//1 データ構造とアルゴリズム IⅠ 第 回単一始点最短路 (I). 単一始点最短路問題 第 章の構成 単一始点最短路問題とは 単一始点最短路問題の考え方 単一始点最短路問題を解くつのアルゴリズム ベルマン フォードのアルゴリズム トポロジカル ソートによる解法 ダイクストラのアルゴリズム 単一始点最短路問題とは 単一始点最短路問題とは 前提 : 重み付き有向グラフ 特定の開始頂点 から任意の頂点

More information

Microsoft PowerPoint - 13.ppt [互換モード]

Microsoft PowerPoint - 13.ppt [互換モード] 13. 近似アルゴリズム 1 13.1 近似アルゴリズムの種類 NP 困難な問題に対しては多項式時間で最適解を求めることは困難であるので 最適解に近い近似解を求めるアルゴリズムが用いられることがある このように 必ずしも厳密解を求めないアルゴリズムは 大きく分けて 2 つの範疇に分けられる 2 ヒューリスティックと近似アルゴリズム ヒュ- リスティクス ( 発見的解法 経験的解法 ) 遺伝的アルゴリズム

More information

データ構造

データ構造 アルゴリズム及び実習 7 馬青 1 表探索 定義表探索とは 表の形で格納されているデータの中から条件に合ったデータを取り出してくる操作である 但し 表は配列 ( 連結 ) リストなどで実現できるので 以降 表 の代わりに直接 配列 や リスト などの表現を用いる場合が多い 表探索をただ 探索 と呼ぶ場合が多い 用語レコード : 表の中にある個々のデータをレコード (record) と呼ぶ フィールド

More information

memo

memo 計数工学プログラミング演習 ( 第 6 回 ) 2016/05/24 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : 再帰呼び出し 2 分探索木 深さ優先探索 課題 : 2 分探索木を用いたソート 2 再帰呼び出し 関数が, 自分自身を呼び出すこと (recursive call, recursion) 再帰を使ってアルゴリズムを設計すると, 簡単になることが多い

More information

PowerPoint Presentation

PowerPoint Presentation 算法数理工学 第 2 回 定兼邦彦 クイックソート n 個の数に対して最悪実行時間 (n 2 ) のソーティングアルゴリズム 平均実行時間は (n log n) 記法に隠された定数も小さい in-place ( 一時的な配列が必要ない ) 2 クイックソートの記述 分割統治法に基づく 部分配列 A[p..r] のソーティング. 部分問題への分割 : 配列 A[p..r] を 2 つの部分配列 A[p..q]

More information

nlp1-04a.key

nlp1-04a.key 自然言語処理論 I. 文法 ( 構文解析 ) その 構文解析 sytctic lysis, prsig 文の構文的な構造を決定すること句構造文法が使われることが多い文法による構文木は一般に複数ある 構文木の違い = 解釈の違い 構文解析の目的 句構造文法の規則を使って, 文を生成できる構文木を全て見つけだすこと 文法が入力文を生成できるかどうかを調べるだけではない pro I 構文解析とは 構文木の違い

More information

Taro-スタック(公開版).jtd

Taro-スタック(公開版).jtd 0. 目次 1. 1. 1 配列によるの実現 1. 2 再帰的なデータ構造によるの実現 1. 3 地図情報処理 1. 4 問題 問題 1 グラフ探索問題 - 1 - 1. は データの出し入れが一カ所で行われ 操作は追加と削除ができるデータ構造をいう 出入口 追加 削除 操作 最初 111 追加 111 222 追加 111 222 333 追加 111 222 333 444 追加 111 222

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 解けない問題 を知ろう 保坂和宏 ( 東京大学 B2) 第 11 回 JOI 春合宿 2012/03/19 概要 計算量に関して P と NP NP 完全 決定不能 いろいろな問題 コンテストにおいて Turing 機械 コンピュータの計算のモデル 計算 を数学的に厳密に扱うためのもの メモリのテープ (0/1 の列 ), ポインタ, 機械の内部状態を持ち, 規則に従って状態遷移をする 本講義では

More information

人工知能入門

人工知能入門 藤田悟 黄潤和 探索とは 探索問題 探索解の性質 探索空間の構造 探索木 探索グラフ 探索順序 深さ優先探索 幅優先探索 探索プログラムの作成 バックトラック 深さ優先探索 幅優先探索 n 個の ueen を n n のマスの中に 縦横斜めに重ならないように配置する 簡単化のために 4-ueen を考える 正解 全状態の探索プログラム 全ての最終状態を生成した後に 最終状態が解であるかどうかを判定する

More information

離散数学

離散数学 離散数学 グラフ探索アルゴリズム 落合秀也 今日の内容 グラフの連結性 の判定 幅優先探索 幅優先探索の実現方法 深さ優先探索 深さ優先探索の実現方法 木の構造 探索木 パトリシア トライ 2 連結性の判定問題を考える グラフ G(V,E) が与えられたとき G が連結かどうか を判定したい 小さいグラフなら 紙に書いてみればよい 一般には簡単ではない 大きいグラフの場合 コンピュータに判断させる場合

More information

Microsoft PowerPoint - H20第10回最短経路問題-掲示用.ppt

Microsoft PowerPoint - H20第10回最短経路問題-掲示用.ppt 最短経路問題とは プログラミング言語 I 第 0 回 から終点へ行く経路が複数通りある場合に 最も短い経路を見つける問題 経路の短さの決め方によって様々な応用 最短経路問題 埼玉大学工学部電気電子システム工学科伊藤和人 最短経路問題の応用例 カーナビゲーション 現在地から目的地まで最短時間のルート 経路 = 道路 交差点において走る道路を変更してもよい 経路の短さ = 所要時間の短さ 鉄道乗り換え案内

More information

Microsoft PowerPoint - ppt-7.pptx

Microsoft PowerPoint - ppt-7.pptx テーマ 7: 最小包含円 点集合を包含する半径最小の円 最小包含円問題 問題 : 平面上に n 点の集合が与えられたとき, これらの点をすべて内部に含む半径最小の円を効率よく求める方法を示せ. どの点にも接触しない包含円 すべての点を内部に含む包含円を求める 十分に大きな包含円から始め, 点にぶつかるまで徐々に半径を小さくする 1 点にしか接触しない包含円 現在の中心から周上の点に向けて中心を移動する

More information

卒論発表

卒論発表 0 年度 ( 平成 年度 ) 広島市大 卒業研究 実現するアルゴリズムの証明に 注目した ASIP のシステム検証 広島市立大学 情報科学部 情報工学科錦織光輝 ( 高橋隆一指導 ) Mitsuki Nishikori 研究背景 0 年代には Verilog HDL によって仕様を記述し, 論理合成によって回路を実現するスタイルが普及した 検証技術が論理合成に続く技術として期待されている 満たすべき性質をアサーションとして記述することによるシミュレーションでの検証

More information

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - 10.pptx m u. 固有値とその応用 8/7/( 水 ). 固有値とその応用 固有値と固有ベクトル 行列による写像から固有ベクトルへ m m 行列 によって線形写像 f : R R が表せることを見てきた ここでは 次元平面の行列による写像を調べる とし 写像 f : を考える R R まず 単位ベクトルの像 u y y f : R R u u, u この事から 線形写像の性質を用いると 次の格子上の点全ての写像先が求まる

More information

Microsoft PowerPoint - H20第10回最短経路問題-掲示用.ppt

Microsoft PowerPoint - H20第10回最短経路問題-掲示用.ppt プログラミング言語 I 第 10 回 最短経路問題 埼玉大学工学部電気電子システム工学科伊藤和人 最短経路問題とは 始点から終点へ行く経路が複数通りある場合に 最も短い経路を見つける問題 経路の短さの決め方によって様々な応用 最短経路問題の応用例 カーナビゲーション 現在地から目的地まで最短時間のルート 経路 = 道路 交差点において走る道路を変更してもよい 経路の短さ = 所要時間の短さ 鉄道乗り換え案内

More information

論理学補足文書 7. 恒真命題 恒偽命題 1. 恒真 恒偽 偶然的 それ以上分割できない命題が 要素命題, 要素命題から 否定 連言 選言 条件文 双 条件文 の論理演算で作られた命題が 複合命題 である 複合命題は, 命題記号と論理記号を 使って, 論理式で表現できる 複合命題の真偽は, 要素命題

論理学補足文書 7. 恒真命題 恒偽命題 1. 恒真 恒偽 偶然的 それ以上分割できない命題が 要素命題, 要素命題から 否定 連言 選言 条件文 双 条件文 の論理演算で作られた命題が 複合命題 である 複合命題は, 命題記号と論理記号を 使って, 論理式で表現できる 複合命題の真偽は, 要素命題 7. 恒真命題 恒偽命題. 恒真 恒偽 偶然的 それ以上分割できない命題が 要素命題, 要素命題から 否定 連言 選言 条件文 双 条件文 の論理演算で作られた命題が 複合命題 である 複合命題は, 命題記号と論理記号を 使って, 論理式で表現できる 複合命題の真偽は, 要素命題の真偽によって, 真になる場合もあれば, 偽になる場合もある 例えば, 次の選言は, A, の真偽によって, 真にも偽にもなる

More information

生命情報学

生命情報学 生命情報学 34 進化系統樹推定 阿久津達也 京都大学化学研究所 バイオインフォマティクスセンター 進化系統樹 進化系統樹 種間 もしくは遺伝子間 の進化の関係を表す木 以前は形態的特徴をもとに構成 現在は配列情報をもとに構成 有根系統樹と無根系統樹 有根系統樹 : 根 共通の祖先に対応 がある系統樹 無根系統樹 : 根のない系統樹 いずれも葉にのみラベル 種に対応 がつく 有根系統樹 無根系統樹

More information

memo

memo 計数工学プログラミング演習 ( 第 4 回 ) 2016/05/10 DEPARTMENT OF MATHEMATICA INFORMATICS 1 内容 リスト 疎行列 2 連結リスト (inked ists) オブジェクトをある線形順序に並べて格納するデータ構造 単方向連結リスト (signly linked list) の要素 x キーフィールド key ポインタフィールド next x->next:

More information

Microsoft PowerPoint - algo ppt [互換モード]

Microsoft PowerPoint - algo ppt [互換モード] 平衡木 アルゴリズム概論 - 探索 (2)- 安本慶一 yasumoto[at]is.naist.jp 二分探索木 高さがデータを挿入 削除する順番による 挿入 削除は平均 O(log n) だが, 最悪 O(n) 木の高さをできるだけ低く保ちたい 平衡木 (balanced tree) データを更新する際に形を変形して高さが log 2 n 程度に収まるようにした木 木の変形に要する時間を log

More information

Taro-2分探索木Ⅰ(公開版).jtd

Taro-2分探索木Ⅰ(公開版).jtd 2 分探索木 Ⅰ 0. 目次 1. 2 分探索木とは 2. 2 分探索木の作成 3. 2 分探索木の走査 3. 1 前走査 3. 2 中走査 3. 3 問題 問題 1 問題 2 後走査 4. 2 分探索木の表示 - 1 - 1. 2 分探索木とは 木はいくつかの節点と節点同士を結ぶ辺から構成される 2 つの節点 u,v が直接辺で結ばれているとき 一方を親節点 他方を子節点という ある節点の親節点は高々

More information

memo

memo 計数工学プログラミング演習 ( 第 6 回 ) 2017/05/16 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : 再帰呼び出し 2 分探索木 深さ優先探索 課題 : 2 分探索木を用いたソート 2 再帰呼び出し 関数が, 自分自身を呼び出すこと (recursive call, recursion) 再帰を使ってアルゴリズムを設計すると, 簡単になることが多い

More information

Taro-再帰関数Ⅱ(公開版).jtd

Taro-再帰関数Ⅱ(公開版).jtd 0. 目次 6. 2 項係数 7. 二分探索 8. 最大値探索 9. 集合 {1,2,,n} 上の部分集合生成 - 1 - 6. 2 項係数 再帰的定義 2 項係数 c(n,r) は つぎのように 定義される c(n,r) = c(n-1,r) + c(n-1,r-1) (n 2,1 r n-1) = 1 (n 0, r=0 ) = 1 (n 1, r=n ) c(n,r) 0 1 2 3 4 5

More information

vecrot

vecrot 1. ベクトル ベクトル : 方向を持つ量 ベクトルには 1 方向 2 大きさ ( 長さ ) という 2 つの属性がある ベクトルの例 : 物体の移動速度 移動量電場 磁場の強さ風速力トルクなど 2. ベクトルの表現 2.1 矢印で表現される 矢印の長さ : ベクトルの大きさ 矢印の向き : ベクトルの方向 2.2 2 個の点を用いて表現する 始点 () と終点 () を結ぶ半直線の向き : ベクトルの方向

More information

Microsoft PowerPoint - mp11-02.pptx

Microsoft PowerPoint - mp11-02.pptx 数理計画法第 2 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 前回の復習 数理計画とは? 数理計画 ( 復習 ) 数理計画問題とは? 狭義には : 数理 ( 数学 ) を使って計画を立てるための問題 広義には : 与えられた評価尺度に関して最も良い解を求める問題

More information

memo

memo 数理情報工学特論第一 機械学習とデータマイニング 4 章 : 教師なし学習 3 かしまひさし 鹿島久嗣 ( 数理 6 研 ) kashima@mist.i.~ DEPARTMENT OF MATHEMATICAL INFORMATICS 1 グラフィカルモデルについて学びます グラフィカルモデル グラフィカルラッソ グラフィカルラッソの推定アルゴリズム 2 グラフィカルモデル 3 教師なし学習の主要タスクは

More information

Microsoft PowerPoint - 09re.ppt [互換モード]

Microsoft PowerPoint - 09re.ppt [互換モード] 3.1. 正則表現 3. 正則表現 : 正則表現 ( または正規表現 ) とは 文字列の集合 (= 言語 ) を有限個の記号列で表現する方法の 1 つ 例 : (01)* 01 を繰り返す文字列 つまり 0(0+1)* 0 の後に 0 か 1 が繰り返す文字列 (01)* = {,01,0101,010101,01010101, } 0(0+1)*={0,00,01,000,001,010,011,0000,

More information

IPSJ SIG Technical Report Vol.2015-AL-152 No /3/3 1 1 Hayakawa Yuma 1 Asano Tetsuo 1 Abstract: Recently, finding a shortest path in a big graph

IPSJ SIG Technical Report Vol.2015-AL-152 No /3/3 1 1 Hayakawa Yuma 1 Asano Tetsuo 1 Abstract: Recently, finding a shortest path in a big graph 1 1 Hayakawa Yuma 1 Asano Tetsuo 1 Abstract: Recently, finding a shortest path in a big graph is required as society becomes complex. However, it requires huge memory proportional to the size of the graph

More information

<4D F736F F F696E74202D D8C7689E682C68DC5934B89BB F A2E707074>

<4D F736F F F696E74202D D8C7689E682C68DC5934B89BB F A2E707074> 分枝限定法データ構造 初期値 G=,Z= A{P0},N{P0},O=φ X[0]={#,#,#,#, G, Z} 節点 0 A リスト {P0} Nリスト {P0} P0=S アクセス済み O =φ X[0]={#,#,#,#, -10, Z} P0を分枝 節点 1 s # # A リスト {P0, P1, P2} N リスト {P0, P1, P2} O =φ X[0]={#,#,#,#, -10,

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション グラフの禁止構造条件について 古谷倫貴 ( 北里大学一般教育部 ) 話の流れ 1. 禁止部分グラフ a. 問題設定 b. ハミルトン閉路のための禁止部分グラフ c. 完全マッチングのための禁止部分グラフ d. 禁止部分グラフ条件の完全決定の難易 2. 自明な禁止部分グラフ条件 3. 禁止部分グラフ条件の比較 問題設定 グラフのある性質 P について,P のための ( 十分 ) 条件として良いものを考えたい.

More information

Taro-再帰関数Ⅲ(公開版).jtd

Taro-再帰関数Ⅲ(公開版).jtd 0. 目次 1 1. ソート 1 1. 1 挿入ソート 1 1. 2 クイックソート 1 1. 3 マージソート - 1 - 1 1. ソート 1 1. 1 挿入ソート 挿入ソートを再帰関数 isort を用いて書く 整列しているデータ (a[1] から a[n-1] まで ) に a[n] を挿入する操作を繰り返す 再帰的定義 isort(a[1],,a[n]) = insert(isort(a[1],,a[n-1]),a[n])

More information

PowerPoint Presentation

PowerPoint Presentation 幅優先探索アルゴリズム 復習 Javaでの実装 深さ優先探索 復習 Javaでの実装 1 探索アルゴリズムの一覧 問題を解決するための探索 幅優先探索 深さ優先探索 深さ制限探索 均一コスト探索 反復深化法 欲張り探索 山登り法 最良優先探索 2 Breadth-first search ( 幅優先探索 ) 探索アルゴリズムはノードやリンクからなる階層的なツリー構造で構成された状態空間を探索するアルゴリズムです

More information

同期 - Synchronization

同期 - Synchronization 同期 - Synchronization JOI Open Contest 2013 問題の概要 木があり 頂点 i は最初情報 i を持っている 1 2 3 4 5 問題の概要 各辺には ON/OFF の属性があり,ON の辺を介した 2 つの頂点の持っている情報が異なると情報がコピーされて両方の頂点が同じ情報を持つようになる 1 2 3 4 5 問題の概要 最初すべての辺が OFF だが 辺の属性が変更されまくる

More information

スライド 1

スライド 1 数値解析 平成 30 年度前期第 10 週 [6 月 12 日 ] 静岡大学工学研究科機械工学専攻ロボット 計測情報分野創造科学技術大学院情報科学専攻 三浦憲二郎 講義アウトライン [6 月 12 日 ] 連立 1 次方程式の直接解法 ガウス消去法 ( 復習 ) 部分ピボット選択付きガウス消去法 連立 1 次方程式 連立 1 次方程式の重要性 非線形の問題は基本的には解けない. 非線形問題を線形化して解く.

More information

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X ( 第 週ラプラス変換 教科書 p.34~ 目標ラプラス変換の定義と意味を理解する フーリエ変換や Z 変換と並ぶ 信号解析やシステム設計における重要なツール ラプラス変換は波動現象や電気回路など様々な分野で 微分方程式を解くために利用されてきた ラプラス変換を用いることで微分方程式は代数方程式に変換される また 工学上使われる主要な関数のラプラス変換は簡単な形の関数で表されるので これを ラプラス変換表

More information

PowerPoint Presentation

PowerPoint Presentation 付録 2 2 次元アフィン変換 直交変換 たたみ込み 1.2 次元のアフィン変換 座標 (x,y ) を (x,y) に移すことを 2 次元での変換. 特に, 変換が と書けるとき, アフィン変換, アフィン変換は, その 1 次の項による変換 と 0 次の項による変換 アフィン変換 0 次の項は平行移動 1 次の項は座標 (x, y ) をベクトルと考えて とすれば このようなもの 2 次元ベクトルの線形写像

More information

Microsoft PowerPoint - 5.ppt [互換モード]

Microsoft PowerPoint - 5.ppt [互換モード] 5. チューリングマシンと計算 1 5-1. チューリングマシンとその計算 これまでのモデルでは テープに直接書き込むことができなかった また 入力テープヘッドの操作は右方向だけしか移動できなかった これらの制限を取り除いた機械を考える このような機械をチューリングマシン (Turing Machine,TM) と呼ぶ ( 実は TMは 現実のコンピュータの能力を持つ ) TM の特徴 (DFA との比較

More information

PowerPoint Presentation

PowerPoint Presentation 今週のトピックス アルゴリズムとデータ構造 第 10 回講義 : 探索その 1 探索 (search) 逐次探索 (sequential search) 2 分探索 (binary search) 内挿探索 (interpolation search) Produced by Qiangfu Zhao (Since 2009), All rights reserved (c) 1 Produced

More information

1. はじめに 二分木ヒープ 様々なアルゴリズムにおいて ある要素の集合またはリストから 最小 な要素を取り 出す必要がある そのような場合に使われる標準的データ構造が二分木ヒープ (binary heap) である あるオブジェクトO を考える そのオブジェクトは ラベル O. label と値

1. はじめに 二分木ヒープ 様々なアルゴリズムにおいて ある要素の集合またはリストから 最小 な要素を取り 出す必要がある そのような場合に使われる標準的データ構造が二分木ヒープ (binary heap) である あるオブジェクトO を考える そのオブジェクトは ラベル O. label と値 1. はじめに 二分木ヒープ 様々なアルゴリズムにおいて ある要素の集合またはリストから 最小 な要素を取り 出す必要がある そのような場合に使われる標準的データ構造が二分木ヒープ (binary heap) である あるオブジェクトO を考える そのオブジェクトは ラベル O. label と値 O. value を持つ とする このようなオブジェクトを保存する二分木ヒープについて考える 二分木ヒープは以下の二つの制約のある二分木である

More information

Microsoft PowerPoint - kougi10.ppt

Microsoft PowerPoint - kougi10.ppt C プログラミング演習 第 10 回二分探索木 1 例題 1. リストの併合 2 つのリストを併合するプログラムを動かしてみる head1 tail1 head2 tail2 NULL NULL head1 tail1 tail1 があると, リストの併合に便利 NULL 2 #include "stdafx.h" #include struct data_list { int data;

More information

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1 4. ソート ( 教科書 p.205-p.273) 整列すなわちソートは アプリケーションを作成する際には良く使われる基本的な操作であり 今までに数多くのソートのアルゴリズムが考えられてきた 今回はこれらソートのアルゴリズムについて学習していく ソートとはソートとは与えられたデータの集合をキーとなる項目の値の大小関係に基づき 一定の順序で並べ替える操作である ソートには図 1 に示すように キーの値の小さいデータを先頭に並べる

More information

Microsoft Word - 13

Microsoft Word - 13 担当 : 富井尚志 (tommy@ynu.ac.jp) アルゴリズムとデータ構造 講義日程 1. 基本的データ型 2. 基本的制御構造 3. 変数のスコープルール. 関数 4. 配列を扱うアルゴリズムの基礎 (1). 最大値, 最小値 5. 配列を扱うアルゴリズムの基礎 (2). 重複除去, 集合演算, ポインタ 6. ファイルの扱い 7. 整列 (1). 単純挿入整列 単純選択整列 単純交換整列

More information

簡単な検索と整列(ソート)

簡単な検索と整列(ソート) フローチャート (2) アルゴリズム論第 2 回講義 2011 年 10 月 7 日 ( 金 ) 反復構造 ( 一定回数のループ処理 ) START 100 回同じ処理を繰り返す お風呂で子供が指をおって数を数える感じ 繰り返し数を記憶する変数をカウンター ( 変数名 I をよく使う ) と呼ぶ カウンターを初期化して, 100 回繰り返したかどうか判定してそうならば終了そうでなければ処理を実行して

More information

1 1 1 1 7 1 6 1 1 1 1 1 1 9 1 1 1 8 5 1 1 1 50 51 1 1 ルートを探索する 行き先に設定する 行き先に設定する (ルートが設定されていない場合) 1 地点を検索する 経由地に設定する 設定されているルートを消去し 行き先を新たに設定する 1 地点を検索する 検索のしかた P.6 51 ここに行く を選ぶ 1 地点を検索する ここに行く を選ぶ 1 地図をスクロールさせ

More information

モデリングとは

モデリングとは コンピュータグラフィックス基礎 第 5 回曲線 曲面の表現 ベジェ曲線 金森由博 学習の目標 滑らかな曲線を扱う方法を学習する パラメトリック曲線について理解する 広く一般的に使われているベジェ曲線を理解する 制御点を入力することで ベジェ曲線を描画するアプリケーションの開発を行えるようになる C++ 言語の便利な機能を使えるようになる 要素数が可変な配列としての std::vector の活用 計算機による曲線の表現

More information

行列、ベクトル

行列、ベクトル 行列 (Mtri) と行列式 (Determinnt). 行列 (Mtri) の演算. 和 差 積.. 行列とは.. 行列の和差 ( 加減算 ).. 行列の積 ( 乗算 ). 転置行列 対称行列 正方行列. 単位行列. 行列式 (Determinnt) と逆行列. 行列式. 逆行列. 多元一次連立方程式のコンピュータによる解法. コンピュータによる逆行列の計算.. 定数項の異なる複数の方程式.. 逆行列の計算

More information

Microsoft PowerPoint - Chapter7.pptx

Microsoft PowerPoint - Chapter7.pptx Computationa Geometry 内容 定義 多角形の三角形分割 問題の提起 美術品監視 美術館問題 三角形分割のプロセス Poygon rianguation 単純多角形 (simpe poygon) 単調多角形 (monotone poygon) 三角形 (triange) 多角形の三角形分割 Pをn 頂点の単純な多角形とする Pの三角形分割 交差しない対角線の極大集合によって 多角形を三角形に

More information

2 場合の数次の問いに答えよ (1) 表裏がわかる 3 種類のコイン a,b,c を投げて, 表が出た枚数が奇数となる場合は何通りあるか (2) ソファ, テーブル, カーペットがそれぞれ 3 種類,4 種類,2 種類ある それぞれ 1 つずつ選ぶとすると, 選び方は何通りあるか 要点和の法則 2

2 場合の数次の問いに答えよ (1) 表裏がわかる 3 種類のコイン a,b,c を投げて, 表が出た枚数が奇数となる場合は何通りあるか (2) ソファ, テーブル, カーペットがそれぞれ 3 種類,4 種類,2 種類ある それぞれ 1 つずつ選ぶとすると, 選び方は何通りあるか 要点和の法則 2 場合の数 この分野の学習にあたっては, 数学 Ⅰ の 集合と論理 はあらかじめ学習しているものとする 1 集合の要素の個数 1 から 40 までの整数のうち, 次の個数を求めよ (1) 3 または 4 で割り切れる整数 (2) 3 で割り切れない整数 (3) 3 で割り切れるが 4 で割り切れない整数 要 点 和集合の要素の個数 n(a B)=n(A)+n(B)-n(A B) 特に,A B=φ のとき

More information

前期募集 令和 2 年度山梨大学大学院医工農学総合教育部修士課程工学専攻 入学試験問題 No.1/2 コース等 メカトロニクス工学コース 試験科目 数学 問 1 図 1 は, 原点 O の直交座標系 x,y,z に関して, 線分 OA,OB,OC を 3 辺にもつ平行六面体を示す. ここで, 点 A

前期募集 令和 2 年度山梨大学大学院医工農学総合教育部修士課程工学専攻 入学試験問題 No.1/2 コース等 メカトロニクス工学コース 試験科目 数学 問 1 図 1 は, 原点 O の直交座標系 x,y,z に関して, 線分 OA,OB,OC を 3 辺にもつ平行六面体を示す. ここで, 点 A No.1/2 数学 問 1 図 1 は, 原点 O の直交座標系 x,y,z に関して, 線分 OA,OB,OC を 3 辺にもつ平行六面体を示す. ここで, 点 A,B,C の座標はそれぞれ A (,6,-2), B (4,-5,3),C (-5.1,4.9,.9) である. 次の問いに答えよ. (1) を求めよ. (2) および の向きを解答用紙の図 1 に描け. (3) 図 1 の平行六面体の体積

More information

8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性 座標独立性 曲線上の点を直接に計算可能 多価の曲線も表現可能 gx 低次の多項式は 計

8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性 座標独立性 曲線上の点を直接に計算可能 多価の曲線も表現可能 gx 低次の多項式は 計 8. 自由曲線 曲面. 概論. ベジエ曲線 曲面. ベジエ曲線 曲面の数学. OeGLによる実行. URS. スプライン関数. スプライン曲線 曲面. URS 曲線 曲面 4. OeGLによる実行 8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性

More information

プログラム言語及び演習Ⅲ

プログラム言語及び演習Ⅲ 平成 28 年度後期データ構造とアルゴリズム期末テスト 各問題中のアルゴリズムを表すプログラムは, 変数の宣言が省略されているなど, 完全なものではありませんが, 適宜, 常識的な解釈をしてください. 疑問があれば, 挙手をして質問してください. 時間計算量をオーダ記法で表せという問題では, 入力サイズ n を無限大に近づけた場合の漸近的な時間計算量を表せということだと考えてください. 問題 1 入力サイズが

More information

スライド タイトルなし

スライド タイトルなし アルゴリズム入門 (8) ( 近似アルゴリズム ) 宮崎修一京都大学学術情報メディアセンター 近似アルゴリズムとは? 効率よく解ける問題 ( 多項式時間アルゴリズムが存在する問題 ) ソーティング 最短経路問題 最小全域木問題 効率よく解けそうにない問題 (NP 困難問題 ) 最小頂点被覆問題 MX ST MX CUT 本質的に問題が難しいのだが 何とか対応したい 幾つかのアプローチ ( 平均時間計算量

More information

umeda_1118web(2).pptx

umeda_1118web(2).pptx 選択的ノード破壊による ネットワーク分断に耐性のある 最適ネットワーク設計 関西学院大学理工学部情報科学科 松井知美 巳波弘佳 選択的ノード破壊によるネットワーク分断に耐性のある最適ネットワーク設計 0 / 20 現実のネットワーク 現実世界のネットワークの分析技術の進展! ネットワークのデータ収集の効率化 高速化! 膨大な量のデータを解析できる コンピュータ能力の向上! インターネット! WWWハイパーリンク構造

More information

PowerPoint Presentation

PowerPoint Presentation 2012 年 11 月 2 日 複雑系の科学 第 3 回複雑ネットワーク その 1 東京大学大学院工学系研究科鳥海不二夫 複雑ネットワーク 1. 世の中すべてネットワーク~ 複雑ネットワーク入門 2. ネットワークを見る~ 複雑ネットワーク分析指標 3. 古典的ネットワーク~ランダム 格子ネットワーク 4. 世間は狭い~スモールワールドネットワーク 5. 不平等な世界 ~スケールフリーネットワーク

More information

Microsoft PowerPoint - 13基礎演習C_ITプランナー_2StableMatching.pptx

Microsoft PowerPoint - 13基礎演習C_ITプランナー_2StableMatching.pptx 2013/4,5,6,7 Mon. 浮気しない? カップル 6 人の男女がいます. 少子化対策? のため,6 組のカップルを作り結婚させちゃいましょう. でも各自の好き嫌いを考えずに強引にくっつけちゃうと, 浮気する人が出るかもしれません. 浮気しないように 6 組のカップルをつくれますか? どうすれば浮気しないの? 浮気しないってどういうこと? 浮気ってどういう状況で起こる? 浮気する しないを

More information

レッスン15  行列とグラフ

レッスン15  行列とグラフ レッスン 15 行列とグラフ このレッスンでは行列のグラフを定義し 簡単な応用例として 行列のグラフの強連結性 ( 各頂点から他のすべての頂点に至る道が存在する ) 行列の既約性 ( 順列行列相似変換による ブロック三角行列化が不可能 ) およびこの事実の 2 次元境界値問題の差分法による解法への応用をのべる グラフ理論入門のつもりで読んで頂きたい 15.1 行列のグラフ 与えられた次正方行列 =

More information

<4D F736F F F696E74202D2093B CC8BE68AD B B82CC8AD AF95FB96405F88EA94CA ED28CFC82AF82C995D28F575F826C A6D94462E >

<4D F736F F F696E74202D2093B CC8BE68AD B B82CC8AD AF95FB96405F88EA94CA ED28CFC82AF82C995D28F575F826C A6D94462E > 道路の区間 ID テーブルの関連付け方法 ( 一般利用者向け ) 自者地図に道路ネットワークが設定されていない利用者 ( 道路の区間 IDテーブルに該当する道路 NWを作成し関連付け ) 目次 本書の位置づけ 2 Ⅰ. 既存地図データへの設定方法の解説 5 Ⅱ. 更新方法の解説 13 1 本書の位置づけ 1) 背景 平成 24 年より 一般財団法人日本デジタル道路地図協会 ( 以降 DRM 協会 という

More information

Microsoft PowerPoint - 2.ppt [互換モード]

Microsoft PowerPoint - 2.ppt [互換モード] 0 章数学基礎 1 大学では 高校より厳密に議論を行う そのために 議論の議論の対象を明確にする必要がある 集合 ( 定義 ) 集合 物の集まりである集合 X に対して X を構成している物を X の要素または元という 集合については 3 セメスタ開講の 離散数学 で詳しく扱う 2 集合の表現 1. 要素を明示する表現 ( 外延的表現 ) 中括弧で 囲う X = {0,1, 2,3} 慣用的に 英大文字を用いる

More information

Microsoft PowerPoint - DA1_2019.pptx

Microsoft PowerPoint - DA1_2019.pptx データ構造とアルゴリズム IB 九州大学大学院システム情報科学研究院情報学部門横尾真 E-mail: yokoo@inf.kyushu-u.ac.jp http://agent.inf.kyushu-u.ac.jp/~yokoo/ 自己紹介 年東京大学大学院工学系研究科電気工学専門課程修士課程修了 同年日本電信電話株式会社 (NTT) 入社 NTT 情報通信処理研究所 ( 神奈川県横須賀市 ), NTT

More information

Taro-リストⅠ(公開版).jtd

Taro-リストⅠ(公開版).jtd 0. 目次 1. 再帰的なデータ構造によるリストの表現 1. 1 リストの作成と表示 1. 1. 1 リストの先頭に追加する方法 1. 1. 2 リストの末尾に追加する方法 1. 1. 3 昇順を保存してリストに追加する方法 1. 2 問題 問題 1 問題 2-1 - 1. 再帰的なデータ構造によるリストの表現 リストは データの一部に次のデータの記憶場所を示す情報 ( ポインタという ) を持つ構造をいう

More information

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - 10.pptx 0. 固有値とその応用 固有値と固有ベクトル 2 行列による写像から固有ベクトルへ m n A : m n n m 行列によって線形写像 f R R A が表せることを見てきた ここでは 2 次元平面の行列による写像を調べる 2 = 2 A 2 2 とし 写像 まず 単位ベクトルの像を求める u 2 x = v 2 y f : R A R を考える u 2 2 u, 2 2 0 = = v 2 0

More information

Microsoft PowerPoint - 第5回電磁気学I 

Microsoft PowerPoint - 第5回電磁気学I  1 年 11 月 8 日 ( 月 ) 1:-1: Y 平成 年度工 系 ( 社会環境工学科 ) 第 5 回電磁気学 Ⅰ 天野浩 項目 電界と電束密度 ガウスの発散定理とガウスの法則の積分形と微分形 * ファラデーの電気力線の使い方をマスターします * 電界と電束密度を定義します * ガウスの発散定理を用いて ガウスの法則の積分形から微分形をガウスの法則の積分形から微分形を導出します * ガウスの法則を用いて

More information

Microsoft PowerPoint - 応用数学8回目.pptx

Microsoft PowerPoint - 応用数学8回目.pptx 8- 次の 標 : 複素関数 ( 正則関数 ) の積分 8- 実関数 : 定積分 講義内容 名城 学理 学部材料機能 学科岩 素顕 複素関数の積分について学ぶ 複素関数の積分 複素積分の性質 周回積分の解法 コーシーの積分定理 コーシーの積分公式 グルサーの公式 - 定義 複素関数の積分 : 線積分 今後の内容 区分的に滑らかな曲線に沿って複素関数の積分を計算する 複素関数の積分の性質に関して議論する

More information

2015-2017年度 2次数学セレクション(複素数)解答解説

2015-2017年度 2次数学セレクション(複素数)解答解説 05 次数学セレクション解答解説 [ 筑波大 ] ( + より, 0 となり, + から, ( (,, よって, の描く図形 C は, 点 を中心とし半径が の円である すなわち, 原 点を通る円となる ( は虚数, は正の実数より, である さて, w ( ( とおくと, ( ( ( w ( ( ( ここで, w は純虚数より, は純虚数となる すると, の描く図形 L は, 点 を通り, 点 と点

More information

Microsoft Word - 補論3.2

Microsoft Word - 補論3.2 補論 3. 多変量 GARC モデル 07//6 新谷元嗣 藪友良 対数尤度関数 3 章 7 節では 変量の対数尤度を求めた ここでは多変量の場合 とくに 変量について対数尤度を求める 誤差項 は平均 0 で 次元の正規分布に従うとする 単純化のため 分散と共分散は時間を通じて一定としよう ( この仮定は後で変更される ) したがって ij から添え字 を除くことができる このとき と の尤度関数は

More information

Microsoft PowerPoint - 7.pptx

Microsoft PowerPoint - 7.pptx 7. 木構造 7-1. データ構造としての木 グラフ理論での木の定義 根付き木 7-2.2 分探索木 7-3. 高度な木 ( 平衡木 ) AVL 木 B 木 1 7-1 1. データ構造としての木 2 木構造 木構造を表すデータ構造の一つとしてヒープがある しかし ヒープでは 配列を用いプではるため 要素数で木の形状が一通りに決定してしまった ここでは 再帰的なデータ構造を用いることにより より柔軟な木構造が構築可能なより柔軟な木構造が構築可能なことを見ていく

More information

ボルツマンマシンの高速化

ボルツマンマシンの高速化 1. はじめに ボルツマン学習と平均場近似 山梨大学工学部宗久研究室 G04MK016 鳥居圭太 ボルツマンマシンは学習可能な相互結合型ネットワー クの代表的なものである. ボルツマンマシンには, 学習のための統計平均を取る必要があり, 結果を求めるまでに長い時間がかかってしまうという欠点がある. そこで, 学習の高速化のために, 統計を取る2つのステップについて, 以下のことを行う. まず1つ目のステップでは,

More information

グラフ理論における偶奇性の現象

グラフ理論における偶奇性の現象 グラフ理論における偶奇性に関連する現象 (3 回目の講義 ) 加納幹雄 (Mikio Kano) 茨城大学名誉教授 講義の概略 1 回目入門的な話証明の多くを演習問題とします 2 回目マッチングと 1- 因子の一般化に関連する話 3 回目因子 = ある条件を満たす全域部分グラフ最近の因子理論のなかで偶奇性に関連するものの紹介 連結グラフ G と G-S の成分 G S S V(G) iso(g-s)=3

More information

コンピュータグラフィックス第6回

コンピュータグラフィックス第6回 コンピュータグラフィックス 第 6 回 モデリング技法 1 ~3 次元形状表現 ~ 理工学部 兼任講師藤堂英樹 本日の講義内容 モデリング技法 1 様々な形状モデル 曲線 曲面 2014/11/10 コンピュータグラフィックス 2 CG 制作の主なワークフロー 3DCG ソフトウェアの場合 モデリング カメラ シーン アニメーション テクスチャ 質感 ライティング 画像生成 2014/11/10 コンピュータグラフィックス

More information

補足 中学で学習したフレミング左手の法則 ( 電 磁 力 ) と関連付けると覚えやすい 電磁力は電流と磁界の外積で表される 力 F 磁 電磁力 F li 右ねじの回転の向き電 li ( l は導線の長さ ) 補足 有向線分とベクトル有向線分 : 矢印の位

補足 中学で学習したフレミング左手の法則 ( 電 磁 力 ) と関連付けると覚えやすい 電磁力は電流と磁界の外積で表される 力 F 磁 電磁力 F li 右ねじの回転の向き電 li ( l は導線の長さ ) 補足 有向線分とベクトル有向線分 : 矢印の位 http://totemt.sur.ne.p 外積 ( ベクトル積 ) の活用 ( 面積, 法線ベクトル, 平面の方程式 ) 3 次元空間の つのベクトルの積が つのベクトルを与えるようなベクトルの掛け算 ベクトルの積がベクトルを与えることからベクトル積とも呼ばれる これに対し内積は符号と大きさをもつ量 ( スカラー量 ) を与えるので, スカラー積とも呼ばれる 外積を使うと, 平行四辺形や三角形の面積,

More information

COMPUTING THE LARGEST EMPTY RECTANGLE

COMPUTING THE LARGEST EMPTY RECTANGLE COMPUTING THE LARGEST EMPTY RECTANGLE B.Chazelle, R.L.Drysdale and D.T.Lee SIAM J. COMPUT Vol.15 No.1, February 1986 2012.7.12 TCS 講究関根渓 ( 情報知識ネットワーク研究室 M1) Empty rectangle 内部に N 個の点を含む領域長方形 (bounding

More information

A Constructive Approach to Gene Expression Dynamics

A Constructive Approach to Gene Expression Dynamics 配列アラインメント (I): 大域アラインメント http://www.lab.tohou.ac.jp/sci/is/nacher/eaching/bioinformatics/ week.pdf 08/4/0 08/4/0 基本的な考え方 バイオインフォマティクスにはさまざまなアルゴリズムがありますが その多くにおいて基本的な考え方は 配列が類似していれば 機能も類似している というものである 例えば

More information

「産業上利用することができる発明」の審査の運用指針(案)

「産業上利用することができる発明」の審査の運用指針(案) 1 1.... 2 1.1... 2 2.... 4 2.1... 4 3.... 6 4.... 6 1 1 29 1 29 1 1 1. 2 1 1.1 (1) (2) (3) 1 (4) 2 4 1 2 2 3 4 31 12 5 7 2.2 (5) ( a ) ( b ) 1 3 2 ( c ) (6) 2. 2.1 2.1 (1) 4 ( i ) ( ii ) ( iii ) ( iv)

More information

040402.ユニットテスト

040402.ユニットテスト 2. ユニットテスト ユニットテスト ( 単体テスト ) ユニットテストとはユニットテストはプログラムの最小単位であるモジュールの品質をテストすることであり その目的は結合テスト前にモジュール内のエラーを発見することである テストは機能テストと構造テストの2つの観点から行う モジュールはプログラムを構成する要素であるから 単体では動作しない ドライバとスタブというテスト支援ツールを使用してテストを行う

More information

Microsoft PowerPoint - ppt-1.pptx

Microsoft PowerPoint - ppt-1.pptx 計算幾何学特論 Computational Geometr 東京サテライト平成 6 年度講義担当 : 上原隆平 テーマ : 計算幾何学 歴史的背景から応用分野まで 歴史的背景, 応用分野, 計算幾何の基礎 計算幾何学とは 計算幾何学とは幾何学に計算の複雑さの理論を導入して, 幾何的な計算問題に対する効率の良いアルゴリズムを開発したり, あるいは問題の本質的な計算複雑さを解析する計算機科学の一研究分野である.

More information

情報処理Ⅰ

情報処理Ⅰ Java フローチャート -1- フローチャート ( 流れ図 ) プログラムの処理手順 ( アルゴリズム ) を図示したもの 記号の種類は下記のとおり 端子記号 ( 開始 終了 ) 処理記号計算, 代入等 条件の判定 条件 No ループ処理 LOOP start Yes データの入力 出力 print など 定義済み処理処理名 end サンプルグログラム ( 大文字 小文字変換 ) 大文字を入力して下さい

More information

線形代数とは

線形代数とは 線形代数とは 第一回ベクトル 教科書 エクササイズ線形代数 立花俊一 成田清正著 共立出版 必要最低限のことに限る 得意な人には物足りないかもしれません 線形代数とは何をするもの? 線形関係 y 直線 yもも 次式で登場する (( 次の形 ) 線形 ただし 次元の話世の中は 3 次元 [4[ 次元 ] 次元 3 次元 4 次元 はどうやって直線を表すの? ベクトルや行列の概念 y A ベクトルを使うと

More information

<4D F736F F F696E74202D208CA48B868FD089EE288FDA82B582A294C5292E B8CDD8AB B83685D>

<4D F736F F F696E74202D208CA48B868FD089EE288FDA82B582A294C5292E B8CDD8AB B83685D> フィルタリングルール最適化問題の解法ル最適化問題の解法 神奈川大学理学部情報科学科 田中研究室 インターネットの仕組み IP アドレス - パケット 00 送り先 IPアドレス発信元 IPアドレスを含む 確実に相手に届く ルータ ルータ 00 IP アドレス ルータ自宅.55.5. ルータ 大学.7.5.0 インターネットの仕組み パケット - ルータ 00 00 ルータ パケット 00 000 00

More information

模擬試験問題(第1章~第3章)

模擬試験問題(第1章~第3章) 基本情報技術者試験の練習問題 - 第 8 回 この問題は平成 19 年度秋期の問題から抜粋しています 問 1 次のプログラムの説明及びプログラムを読んで, 設問 1,2 に答えよ プログラムの説明 スタックを使って, 実数値を 10 進数字列 ( 文字列 ) に変換する副プログラム FloatFormat である (1) FloatFormat は, 実数 Float の値を 10 進数字列に変換し,

More information