こまった専門家たち 非実践的アルゴリズム研究者 わかみず会 ( ) 前田英次郎

Size: px
Start display at page:

Download "こまった専門家たち 非実践的アルゴリズム研究者 わかみず会 ( ) 前田英次郎"

Transcription

1 こまった専門家たち 非実践的アルゴリズム研究者 わかみず会 ( ) 前田英次郎

2 近藤一夫先生の質問 ある種のことはよくできるが その他のことはあまり知らない こういう人を何というか 近藤一夫 東大応用物理学科数理工学コース教授 常識を超越した人 天才ですか とある学生が言った

3 先生のお答 天才は何でもできるかもしれんな そういうのは専門家と言うんじゃ 糖尿病と診断されたころ読んだ本にあった話 糖尿病患者は血糖値が高いことを発見した医者がいた 血糖値を下げれば治る と考えて 徹底した食事制限をした その結果 血糖値は下がった そして患者は

4 そして患者は痩せ細って死んだ 専門家は知らないことを無視する傾向がある 子供の骨 フロン 私は自分が何も知らないということを知っている ソクラテス

5 アルゴリズム研究者 実践的 解いた結果を仕事に使う ( 人に渡す ) 非実践的 論文を書いて発表する 研究課題 効率 ( 所要時間 所要メモリ 安定性 ) 明解なプログラム

6 計算効率 ( 計算量 ) の表現 計算時間の実測値 ハードウェアによる違い プログラムによる差 オーダーによる表示 (1970 年代初め ) 問題の大きさをnとして nの関数で表す 単純ソートはn 2 ヒープソートはnlogn 最悪計算量 平均計算量

7 P と NP P アルゴリズム (polynomial) 最悪計算量がnの多項式で抑えられる NP 問題 (nondeterministic polynomial) 変数値が制約条件を満たすかどうかを 多項式時間で判定できる P アルゴリズムはごく少数 ほとんどの問題は NP

8 NP 問題の解法 ( 分枝限定法 ) 整数線形計画問題の例 1 整数制約を無視したLPを解く ( 緩和問題 ) 2 整数条件に反した変数に制約を加える ( 分枝 ) Y=2.4 なら y 2 と y 3 を加えた 2 つの子問題を作る 3 子問題を解き 最も良い解を採用する 緩和問題の目的関数値より良い解はない ( 限定 ) 実行可能解 ( 最適解の候補 ) が見付かったら 可能性のない子問題は捨てる ( 限定 )

9 分枝限定法のオーダー 0_1 変数が n 個あれば 最大 2 n 個の子問題ができる 理論家の多くは n の指数関数的と考えているように見える ほとんどの子問題は作る前に捨てられる 末端の子問題では 緩和問題が簡単に解ける NP 問題の攻略法は問題ごとに工夫されるので 一般論は有効ではない

10 問題群 NP 完全 (complete) NP 完全な問題は NP アルゴリズムを持つ 整数線形計画問題 巡回セールスマン問題... 問題 A と B が NP 完全なら 大きさnのA 問題は 大きさmのB 問題に 大きさpのB 問題は 大きさqのA 問題に 変換できる ただし mはnの多項式 qはpの多項式で抑えられる 問題 A と B を同等と見る ( マジ???)

11 P=NP? 問題 NP 完全問題の一つに P アルゴリズムがあれば すべての問題に P アルゴリズムがある P アルゴリズムを持つ NP 完全問題は見つかっていないが 存在しないことも証明されていない P=NP? 問題には懸賞金が付いている

12 P=NP 問題? 解を必要とする者には P=NP? は無意味 P NP が証明された場合 予想通り 世の中に変化なし P=NP が証明された場合 NP 完全は n も n 10 も同等と見る理論である ここから有効なアルゴリズムが生まれるはずがない

13 こまった専門家 (1) ある研究会で 若い研究者が アルゴリズムの効率についてオーダー以外のことは言ってはいけない と言った 悪い先生に付いているのだろう オーダーは中間点 ゴールではない オーダーが同じでも効率には差がある オーダーは最悪計算量 実体ではないこともある

14 オーダーの嘘 線形計画法 (LP) の単体法のオーダーは? カーマーカーの内点法 (P アルゴリズム ) 手法の発展 => オーダー n 4 新手法オーダー n 3.5 を達成 速いんですか と訊いてみた 速くない ちゃんと n 3.5 かかるから???

15 オーダー n 4 の意味 どんなデータの問題でも n 4 以下で解けることが証明できた 実際に n 4 かかる問題があるかどうかは不明 普通の問題は n 4 もかからなかったのだろう 内点法は逐次近似法 LP は組合せ問題の側面もあるので ここまで追い詰めれば解はこれしかない という判定ができる

16 こまった専門家 (2) P 信仰 ある人曰く アルゴリズムは多項式オーダーでなければいけない 似非理論家に NP アルゴリズムは論外だとでも吹き込まれたのだろうか 問題以前に答えを決めてしまっている

17 NP 問題と P アルゴリズム NP 問題に P アルゴリズムで向かうとすれば 近似解で満足するしかない NP 問題は多種多様である 案外簡単に解けるものもあり ひどく難しいものもある 良い近似解法が知られているものもあり うまい方法が見付からないものもある 問題ごとに良い手段を選ぶ必要がある P でなければ駄目 などと決めつける必要はない

18 NP 問題と P アルゴリズム オーダーは問題の大きさの変化が計算の手間にどう影響するかを示すものである 特定のデータにどの程度の時間がかかるかを与えるものではない 解を得たい問題があるのなら その大きさに合わせて解法を選べばいい

19 こまった専門家 (3) NP 完全信仰? KDD 研究所からの依頼で衛星通信で発生する組合せ問題のプログラムを作製した 論文にすると言うので 解法の部分を書いた 査読者から この問題はNP 完全か? NP 完全なら分枝限定法の使用が正当化できる というコメントが来た 仰天!!!

20 NP 完全信仰 NP 完全の証明ができなければ 分枝限定法を使うな と言うのか P アルゴリズムを思いつかなければ あるいはそれがあっても役に立たなければ NP 問題だと思いそれなりの解法を考える 解が必要なのだから NP 完全であることの証明は簡単ではない NP 完全であることが分かっても解法を考える上で 何の役にも立たない

21 NP 完全信仰 問題を定式化し データは何でもいいとして解法を考える 分枝限定法の枠組みで こういう条件に合えばもっと制約をきつくできる といったものがスピードアップの要である データは何でもいい とは言っても 実際のデータには癖がある その癖をうまく利用したアルゴリズムになっているのが成功の秘密かもしれない 定式化だけで問題の枠組みが完全に指定できたとは限らない

22 NP 完全信仰 NP 完全は多種多様な問題の集まりである 解法の成功はそれぞれの問題の特性をうまく活かせるかどうかにかかっている NP 完全全体に通用する議論で片付くようなものではない NP 完全は論文の材料にはなるだろうが 解法に役立つものではない

23 こまった専門家 (4) 毒入りクイックソート Haskell の入門書に下のプログラムがあった qsort[] = [] qsort[x:xs] = qsort smaller ++ [x] ++ qsort larger where smaller = [a a<-xs, a<=x] larger = [b b<-xs, b> x] 一見きれいなプログラムだが 使いものになりません

24 Quicksort 一般的なデータに対するソート手法 高速ソート ( オーダー nlogn) クイックソート (qsort と略す ) ヒープソート マージソート 中速ソート シェルソート 低速ソート ( オーダー n 2 ) 挿入ソート 選択ソート バブルソート

25 Quicksort 高速ソート ヒープソート 遅い マージソート 余分なメモリーが必要 qsort 最速だが 最悪計算量はn 2 qsort は n 2 になるデータに当たると破綻するが その確率は α/n! 程度で無視できると考えられている

26 Quicksort qsort(a,n) push(0, n-1); while(stack が空でない ) pop(lb, ub); 分割 (a, lb, ub, i, j); // k<i => a[k]<=x ;; k>j => a[k]>=x if (lb < j) push(lb, j); if (I < ub) push(i, ub); ソート対象の区間を並べ替え 前方に小 後方に大とする 前方 後方をそれぞれソートすれば完成

27 Quicksort 分割 (a, lb, ub, i, j) aの要素の1つを選んで x とする i = lb; j = ub; // k<i => a[k]<=x ;; k>j => a[k]>=x while (i <= j) a[i] >= x となるまで i を増やす a[j] <= x となるまで j を減らす if (i <= j) swap(a[i], a[j]); i++; j--;

28 Quicksort 分割ではソート対象の要素の 1 つを x とし 前方には x 以下の要素 後方には x 以下の要素となるように並べ替える 前方と後方をそれぞれソートすれば完成である 前方と後方が同数になれば分割の回数が少なくて 効率が良い 一方が 1 個だけといった場合はほとんど分割になっていない

29 Quicksort 先頭の要素を x とする教科書があるが お勧めできない ソート済みのデータを食わせるとオーダー n 2 になってしまうからである ソートできていることが分かっているものをソートすることはないだろうが 比較的少数の要素の位置が違う あるいは大部分の要素の位置が少し違うといった問題はあるだろう

30 Quicksort ソートの対象を前方と後方に分けてそれぞれをソートすれば出来上がり 再帰関数にお誂え向きの問題である しかし 再帰関数を使ってはいけない Haskell プログラムでは n 2 のデータが来るとメモリー不足で落ちる C などの言語でも落ちる可能性がある

31 Qsort は速いか 所要時間 ( 秒 ) 1 万 10 万 100 万 300 万 500 万 1000 万 シェル ヒープ マージ クイック _H クイック _M

32 移動と比較の回数 移動比較移動比較移動比較移動比較 シェル _C ヒープ _C マージ _C クイック _H_C

33 Haskell プログラム qsort[] = [] qsort[x:xs] = qsort smaller ++ [x] ++ qsort larger where smaller = [a a<-xs, a<=x] larger = [b b<-xs, b> x] 一見きれいだが 全然使えません

34 リスト言語での Quicksort list qsort (list zs) { if (zs が空 list) return 空 list; x = zs の最初の要素 ; xs = zs から最初の要素を除いた list; xs を scan して smaller を作り qsort でソートする xs を scan して larger を作り qsort でソートする smaller と [x] と larger をつなぐ }

35 リスト言語での Quicksort 普通の Qsort では 未処理の区間をスタックに残しておく 前方と後方に分割した後小さい方を先に処理すれば 未処理区間が log 2 n 個を越えることはない Haskell qsort では larger を qsort する時には元の区間 zs と smaller を持っていなければならない n 段程度の再帰呼び出しがあれば 各段でその両方を持つ メモリーが苦しい

36 時計回りの怪? 大きめのカップにフリーズドライのインスタントコーヒーを入れ その上に冷えたミルクを入れる 表面に浮いたコーヒーを速く溶かそうとカップを揺する 時計回りになるように揺すっているつもりだが コーヒーは反時計回りに回る 何故だ? カップの壁に付いたコーヒーは時計回りに動いている 誰か教えてもらえませんか

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

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

More information

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

Microsoft PowerPoint - ca ppt [互換モード] 大阪電気通信大学情報通信工学部光システム工学科 2 年次配当科目 コンピュータアルゴリズム 良いアルゴリズムとは 第 2 講 : 平成 20 年 10 月 10 日 ( 金 ) 4 限 E252 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 1 講の復習

More information

Microsoft PowerPoint - mp13-07.pptx

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

More information

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

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

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体

More information

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

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

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

Microsoft PowerPoint - 05.pptx

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

More information

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

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

More information

論理と計算(2)

論理と計算(2) 情報科学概論 Ⅰ アルゴリズムと計算 亀山幸義 http://logic.cs.tsukuba.ac.jp/~kam 計算とは? コンピュータが計算できることは? 1 2 関数 = 計算? NO 部分関数と計算 入力 1 入力 2 関数 出力 入力 1 入力 2 部分関数 出力 停止しない 入力 1 入力 2 コンピュータ 止まらないことがある出力 3 入力 1 入力 2 コンピュータ 出力 停止しない

More information

論理と計算(2)

論理と計算(2) 情報科学概論 Ⅰ アルゴリズムと計算量 亀山幸義 http://logic.cs.tsukuba.ac.jp/~kam 亀山担当分の話題 アルゴリズムと計算量 Fibonacci 数列の計算を例にとり アルゴリズムと計算量とは何か 具体的に学ぶ 良いアルゴリズムの設計例として 整列 ( ソーティング ) のアルゴリズムを学ぶ 2 Fibonacci 数 () Fibonacci 数 (2) = if

More information

三者ミーティング

三者ミーティング Corral Puzzle の 整数計画法による解法と評価 第 11 回組合せゲーム パズル研究集会 2016 年 月 7 日 ( 月 ) 大阪電気通信大学 弘中健太鈴木裕章上嶋章宏 2016//7 第 11 回組合せゲーム パズル研究集会 2 発表の流れ 研究の背景 整数計画法と先行研究 2 Corral Puzzle ルールと定義 定式化 2 種類の閉路性の定式化 7 1 6 評価 計測結果と考察

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 前回の出席確認演習 #include int main() { FILE *fp; int c, linecount, length, maxlength; fp=fopen("/usr/share/dict/words","r"); if (fp == NULL) return 1; linecount=0; length=0;

More information

PowerPoint Presentation

PowerPoint Presentation 算法数理工学 第 回 定兼邦彦 クイックソートの 確率的アルゴリズム クイックソートの平均的な場合の実行時間を解析する場合, 入力の頻度を仮定する必要がある. 通常は, すべての順列が等確率で現れると仮定 しかし実際にはこの仮定は必ずしも期待できない この仮定が成り立たなくてもうまく動作するクイックソートの確率的アルゴリズムを示す 確率的 radomized) アルゴリズム 動作が入力だけでなく乱数発生器

More information

PG13-6S

PG13-6S プログラム演習 I レポート 学籍番号 担当教員 : 小林郁夫 氏名 実習日平成 26 年 7 月 4 日 提出期限 7 月 11 日提出日 7 月 17 日 1 週遅れ 第 13 回 テーマ : 並べ替えのアルゴリズム 教員使用欄 15 S A B C 再提出 課題 1 バブルソートの実行画面 プログラムのソースコード // day13_akb1.cpp : コンソールアプリケーションのエントリポイントを定義します

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

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

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

Microsoft PowerPoint - IntroAlgDs pptx

Microsoft PowerPoint - IntroAlgDs pptx アルゴリズムとデータ構造入門 -3 04 年 月 4 日 大学院情報学研究科知能情報学専攻 http://wiie.kuis.kyoto-u.ac.jp/~okuo/lecture//itroalgds/ okuo@i.kyoto-u.ac.jp,okuo@ue.org if mod( 学籍番号の下 3 桁,3) 0 if mod( 学籍番号の下 3 桁,3) if mod( 学籍番号の下 3 桁,3).

More information

情報システム評価学 ー整数計画法ー

情報システム評価学 ー整数計画法ー 情報システム評価学 ー整数計画法ー 第 1 回目 : 整数計画法とは? 塩浦昭義東北大学大学院情報科学研究科准教授 この講義について 授業の HP: http://www.dais.is.tohoku.ac.jp/~shioura/teaching/dais08/ 授業に関する連絡, および講義資料等はこちらを参照 教員への連絡先 : shioura (AT) dais.is.tohoku.ac.jp

More information

Functional Programming

Functional Programming PROGRAMMING IN HASKELL プログラミング Haskell Chapter 7 - Higher-Order Functions 高階関数 愛知県立大学情報科学部計算機言語論 ( 山本晋一郎 大久保弘崇 2013 年 ) 講義資料オリジナルは http://www.cs.nott.ac.uk/~gmh/book.html を参照のこと 0 Introduction カリー化により

More information

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (

More information

DA13

DA13 データ構造とアルゴリズム第 13 回 知能情報学メジャー 和 俊和 5 整列 5.1 整列とは 5.2 単純な整列アルゴリズム 5.3 挿 ソートとその拡張 5.4 ヒープソート 5.5 クイックソート 5.6 マージソート 5.7 値の 較を いない整列 5.6 マージソート 1 与えられたデータ A を A " と A # にほぼ 等分する. 2A " と A # を整列する. このとき, データ数が

More information

program7app.ppt

program7app.ppt プログラム理論と言語第 7 回 ポインタと配列, 高階関数, まとめ 有村博紀 吉岡真治 公開スライド PDF( 情報知識ネットワーク研 HP/ 授業 ) http://www-ikn.ist.hokudai.ac.jp/~arim/pub/proriron/ 本スライドは,2015 北海道大学吉岡真治 プログラム理論と言語, に基づいて, 現著者の承諾のもとに, 改訂者 ( 有村 ) が加筆修正しています.

More information

Microsoft PowerPoint - no1_19.pptx

Microsoft PowerPoint - no1_19.pptx 数理計画法 ( 田地宏一 ) Inroducion o ahemaical Programming 教科書 : 新版数理計画入門, 福島雅夫, 朝倉書店 011 参考書 : 最適化法, 田村, 村松著, 共立出版 00 工学基礎最適化とその応用, 矢部著, 数理工学社 006,Linear and Nonlinear Opimizaion: second ediion, I.Griba, S.G.

More information

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

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

More information

Microsoft PowerPoint - no1_17

Microsoft PowerPoint - no1_17 数理計画法 田地宏一 Inrodcion o Mahemaical rogramming 教科書 : 新版数理計画入門 福島雅夫 朝倉書店 参考書 : 最適化法 田村 村松著 共立出版 工学基礎最適化とその応用 矢部著 数理工学社 6Linear and Nonlinear Opimizaion: second ediion I.Griba.G. Nash and A. ofer IAM 9 など多数

More information

memo

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

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

微分方程式による現象記述と解きかた

微分方程式による現象記述と解きかた 微分方程式による現象記述と解きかた 土木工学 : 公共諸施設 構造物の有用目的にむけた合理的な実現をはかる方法 ( 技術 ) に関する学 橋梁 トンネル ダム 道路 港湾 治水利水施設 安全化 利便化 快適化 合法則的 経済的 自然および人口素材によって作られた 質量保存則 構造物の自然的な性質 作用 ( 外力による応答 ) エネルギー則 の解明 社会的諸現象のうち マスとしての移動 流通 運動量則

More information

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

模擬試験問題(第1章~第3章) 基本情報技術者試験の練習問題 - 第 10 回 この問題は平成 19 年度春期の問題から抜粋しています 問 1 次のプログラムの説明及びプログラムを読んで, 設問 1~3 に答えよ プログラムの説明 整数型の 1 次元配列の要素 A[0],,A[N](N>0) を, 挿入ソートで昇順に整列する副プログラム InsertSort である (1) 挿入ソートの手順は, 次のとおりである (i) まず,A[0]

More information

Microsoft PowerPoint - H21生物計算化学2.ppt

Microsoft PowerPoint - H21生物計算化学2.ppt 演算子の行列表現 > L いま 次元ベクトル空間の基底をケットと書くことにする この基底は完全系を成すとすると 空間内の任意のケットベクトルは > > > これより 一度基底を与えてしまえば 任意のベクトルはその基底についての成分で完全に記述することができる これらの成分を列行列の形に書くと M これをベクトル の基底 { >} による行列表現という ところで 行列 A の共役 dont 行列は A

More information

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

Microsoft PowerPoint - qcomp.ppt [互換モード] 量子計算基礎 東京工業大学 河内亮周 概要 計算って何? 数理科学的に 計算 を扱うには 量子力学を計算に使おう! 量子情報とは? 量子情報に対する演算 = 量子計算 一般的な量子回路の構成方法 計算って何? 計算とは? 計算 = 入力情報から出力情報への変換 入力 計算機構 ( デジタルコンピュータ,etc ) 出力 計算とは? 計算 = 入力情報から出力情報への変換 この関数はどれくらい計算が大変か??

More information

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

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

More information

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

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

More information

PowerPoint Template

PowerPoint Template プログラミング演習 Ⅲ Linked List P. Ravindra S. De Silva e-mail: ravi@cs.tut.ac.jp, Room F-413 URL: www.icd.cs.tut.ac.jp/~ravi/prog3/index_j.html 連結リストとは? 一つひとつの要素がその前後の要素との参照関係をもつデータ構造 A B C D 連結リストを使用する利点 - 通常の配列はサイズが固定されている

More information

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

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

More information

<4D F736F F F696E74202D208FEE95F18F88979D5F8CE394BC30352E B8CDD8AB B83685D>

<4D F736F F F696E74202D208FEE95F18F88979D5F8CE394BC30352E B8CDD8AB B83685D> 情報処理概論 後半 5 回目 情報処理概論第 12 回 1 今日の内容 工学部で勉強したからこそ理解できるコンピュータに関する概念 パターンの表現 ( 正規表現 ) 先週までで済み 再帰呼出し 先週までで済み オブジェクト指向プログラミング プログラムの実行時間 コンピュータ ネットワーク ( インターネット ) 来週 情報処理概論第 12 回 2 再帰呼出し ( 復習 ) 情報処理概論第 12 回

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

s とは何か 2011 年 2 月 5 日目次へ戻る 1 正弦波の微分 y=v m sin ωt を時間 t で微分します V m は正弦波の最大値です 合成関数の微分法を用い y=v m sin u u=ωt と置きますと dy dt dy du du dt d du V m sin u d dt

s とは何か 2011 年 2 月 5 日目次へ戻る 1 正弦波の微分 y=v m sin ωt を時間 t で微分します V m は正弦波の最大値です 合成関数の微分法を用い y=v m sin u u=ωt と置きますと dy dt dy du du dt d du V m sin u d dt とは何か 0 年 月 5 日目次へ戻る 正弦波の微分 y= in を時間 で微分します は正弦波の最大値です 合成関数の微分法を用い y= in u u= と置きますと y y in u in u (co u co になります in u の は定数なので 微分後も残ります 合成関数の微分法ですので 最後に u を に戻しています 0[ra] の co 値は [ra] の in 値と同じです その先の角

More information

Microsoft PowerPoint - DA2_2017.pptx

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

More information

Functional Programming

Functional Programming PROGRAMMING IN HASKELL プログラミング Haskell Chapter 12 Lazy Evaluation 遅延評価 愛知県立大学情報科学部計算機言語論 ( 山本晋一郎 大久保弘崇 2011 年 ) 講義資料オリジナルは http://www.cs.nott.ac.uk/~gmh/book.html を参照のこと 0 用語 評価 (evaluation, evaluate)

More information

Microsoft PowerPoint - kyoto

Microsoft PowerPoint - kyoto 研究集会 代数系アルゴリズムと言語および計算理論 知識の証明と暗号技術 情報セキュリティ大学大学院学院 有田正剛 1 はじめに 暗号技術の面白さとむずかしさ システムには攻撃者が存在する 条件が整ったときのベストパフォーマンスより 条件が整わないときの安全性 攻撃者は約束事 ( プロトコル ) には従わない 表面上は従っているふり 放置すると 正直者が損をする それを防ぐには 知識の証明 が基本手段

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2017/04/25 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタの続き 引数の値渡しと参照渡し 構造体 2 ポインタで指されるメモリへのアクセス double **R; 型 R[i] と *(R+i) は同じ意味 意味 R double ** ポインタの配列 ( の先頭 ) へのポインタ R[i]

More information

Microsoft Word - 漸化式の解法NEW.DOCX

Microsoft Word - 漸化式の解法NEW.DOCX 閑話休題 漸化式の解法 基本形 ( 等差数列, 等比数列, 階差数列 ) 等差数列 : d 等比数列 : r の一般項を求めよ () 3, 5 () 3, () 5より数列 は, 初項 3, 公差の等差数列であるので 5 3 5 5 () 数列 は, 初項 3, 公比 の等比数列であるので 3 階差数列 : f の一般項を求めよ 3, より のとき k k 3 3 において, を代入すると 33 となるので,は

More information

CプログラミングI

CプログラミングI C プログラミング I Swap 関数を作る Stack データ構造のための準備 整数変数 x と y の値を取り替える関数 swap を作る 最初の試み : swap-01.c #include void swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; int main(void) { int x=10, y=30;

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

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt 今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ

More information

Microsoft PowerPoint - DA1_2018.pptx

Microsoft PowerPoint - DA1_2018.pptx 木の利用例 ( ゲーム木 ) データ構造とアルゴリズム ⅠB 第 回 自分の手番 / 相手の手番で分岐していく 77 例題 二人で交代に,1 から順に までの数を言う. 言う数の個数は,1 個, 個,3 個のいずれか好きなのを選んでよい 最後に を言った方が負け 必勝法 を言って, 相手に順番を回せば絶対勝ち 一方,0 を言って, 相手に順番を回せば, 相手が何個を選んでも, 次に を言える ---

More information

Microsoft PowerPoint - 6.pptx

Microsoft PowerPoint - 6.pptx 6. データ構造入門 6-1. 連結リスト (Linked List) 6-2. スタック (Stack) 6-. キュー (Queue) 6-4. デク (Double-Ended-Queue) 6-. 抽象データ型 (Abstract Data Type) データ構造とは データの保存を効率的に行うもの 1 ito 2.712.14 suzuki データ構造 1 2 6-1. 連結リスト (Linked

More information

PowerPoint Presentation

PowerPoint Presentation 整列アルゴリズムの基礎 この回の要点 整列とは? 整列処理の意味 整列の種類 整列の計算量 整列の安定性 単純な整列アルゴリズム バブルソート 選択ソート 挿入ソート それぞれのソートの特徴と実装 整列 (Sorting) とは 整列という操作 レコードの集まりを キーの値の大小関係に従って並べ替える操作 小さい 大きい = 昇順 (ascending order) 大きい 小さい = 降順 (descending

More information

情報処理Ⅰ

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

More information

Microsoft Word - no12.doc

Microsoft Word - no12.doc 7.5 ポインタと構造体 構造体もメモリのどこかに値が格納されているのですから 構造体へのポインタ も存在します また ポインタも変数ですから 構造体のメンバに含めることができます まずは 構造体へのポインタをあつかってみます ex53.c /* 成績表 */ #define IDLENGTH 7 /* 学籍番号の長さ */ #define MAX 100 /* 最大人数 */ /* 成績管理用の構造体の定義

More information

OR#5.key

OR#5.key オペレーションズ リサーチ1 Operations Research 前学期 月曜 3限(3:00-4:30) 8 整数計画モデル Integer Programming 経営A棟106教室 山本芳嗣 筑波大学 大学院 システム情報工学研究科 整数計画問題 2 凸包 最小の凸集合 線形計画問題 変数の整数条件 ctx Ax b x 0 xj は整数 IP LP 3 4 Bx d!!!!!? P NP

More information

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード] 第 3 回 Java 基本技術講義 クラス構造と生成 33 クラスの概念 前回の基本文法でも少し出てきたが, オブジェクト指向プログラミングは という概念をうまく活用した手法である. C 言語で言う関数に似ている オブジェクト指向プログラミングはこれら状態と振る舞いを持つオブジェクトの概念をソフトウェア開発の中に適用し 様々な機能を実現する クラス= = いろんなプログラムで使いまわせる 34 クラスの概念

More information

Microsoft PowerPoint - IntroAlgDs ppt

Microsoft PowerPoint - IntroAlgDs ppt アルゴリズムとデータ構造入門 -4 006 年 月 7 日 アルゴリズムとデータ構造入門 Sorting( 整列 ) Hashing( ハッシュ法 ) 奥乃 博 年前の今朝阪神 淡路大震災犠牲者死者だけで 6434 人天災は忘れた頃にやってくる ( 寺田寅彦 ) 天才は忘れた頃にやってくる ( 奥乃博 ) 月 7 日 本日のメニュー. vector ( ベクタ ). Sorting ( 整列 ) 3.

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile data.txt #define OutFile surted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "surted.txt"

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション ロボットの計画と制御 マルコフ決定過程 確率ロボティクス 14 章 http://www.probabilistic-robotics.org/ 1 14.1 動機付けロボットの行動選択のための確率的なアルゴリズム 目的 予想される不確かさを最小化したい. ロボットの動作につての不確かさ (MDP で考える ) 決定論的な要素 ロボット工学の理論の多くは, 動作の影響は決定論的であるという仮定のもとに成り立っている.

More information

Information Theory

Information Theory 前回の復習 情報をコンパクトに表現するための符号化方式を考える 情報源符号化における基礎的な性質 一意復号可能性 瞬時復号可能性 クラフトの不等式 2 l 1 + + 2 l M 1 ハフマン符号の構成法 (2 元符号の場合 ) D. Huffman 1 前回の練習問題 : ハフマン符号 符号木を再帰的に構成し, 符号を作る A B C D E F 確率 0.3 0.2 0.2 0.1 0.1 0.1

More information

Microsoft PowerPoint - 06.pptx

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

More information

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - kougi9.ppt C プログラミング演習 第 9 回ポインタとリンクドリストデータ構造 1 今まで説明してきた変数 #include "stdafx.h" #include int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE*

More information

データ構造

データ構造 アルゴリズム及び実習 3 馬青 1 バブルソート 考え方 : 隣接する二つのデータを比較し データの大小関係が逆のとき 二つのデータの入れ替えを行って整列を行う方法である 2 バブルソートの手順 配列 a[0],a[1],,a[n-1] をソートする場合 ステップ 1: 配列 a[0] と a[1],a[1] と a[2],,a[n-2] と a[n-1] と となり同士を比較 ( 大小が逆であれば

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

計算機シミュレーション

計算機シミュレーション . 運動方程式の数値解法.. ニュートン方程式の近似速度は, 位置座標 の時間微分で, d と定義されます. これを成分で書くと, d d li li とかけます. 本来は が の極限をとらなければいけませんが, 有限の小さな値とすると 秒後の位置座標は速度を用いて, と近似できます. 同様にして, 加速度は, 速度 の時間微分で, d と定義されます. これを成分で書くと, d d li li とかけます.

More information

人工知能入門

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

More information

Microsoft PowerPoint ppt [互換モード]

Microsoft PowerPoint ppt [互換モード] 情報セキュリティ 第 12 回 2009 年 6 月 26 日 ( 金 ) 1/33 本日学ぶこと 暗号の基礎 計算理論 問題とは / 計算モデル / オーダ / 多項式時間 プロトコル プロトコルの諸概念 / 鍵配布プロトコル ( およびその攻撃 )/ ゼロ知識対話証明 2 計算理論 ハードウェア ソフトウェアの進歩や, アルゴリズムの発明により, それまで解けなかった問題が解けるようになる? 問題を解く

More information

Microsoft PowerPoint - 4.pptx

Microsoft PowerPoint - 4.pptx while 文 (1) 繰り返しの必要性 while の形式と動作 繰り返しにより平 根を求める ( 演習 ) 繰り返しにより 程式の解を求める ( 課題 ) Hello. をたくさん表示しよう Hello. を画面に 3 回表示するには, 以下で OK. #include int main() { printf("hello. n"); printf("hello. n");

More information

解析力学B - 第11回: 正準変換

解析力学B - 第11回: 正準変換 解析力学 B 第 11 回 : 正準変換 神戸大 : 陰山聡 ホームページ ( 第 6 回から今回までの講義ノート ) http://tinyurl.com/kage2010 2011.01.27 正準変換 バネ問題 ( あえて下手に座標をとった ) ハミルトニアンを考える q 正準方程式は H = p2 2m + k 2 (q l 0) 2 q = H p = p m ṗ = H q = k(q

More information

アルゴリズムとデータ構造

アルゴリズムとデータ構造 講義 アルゴリズムとデータ構造 第 2 回アルゴリズムと計算量 大学院情報科学研究科情報理工学専攻情報知識ネットワーク研究室喜田拓也 講義資料 2018/5/23 今日の内容 アルゴリズムの計算量とは? 漸近的計算量オーダーの計算の方法最悪計算量と平均計算量 ポイント オーダー記法 ビッグオー (O), ビッグオメガ (Ω), ビッグシータ (Θ) 2 お風呂スケジューリング問題 お風呂に入る順番を決めよう!

More information

Microsoft Word - 中間試験 その1_解答例.doc

Microsoft Word - 中間試験 その1_解答例.doc 問題 1.C 言語 情報技術 Ⅱ 前半中間試験 次の宣言をしている時 以下の問いに答えよ unsigned char moji_1; struct Kouzou { unsigned char code; unsigned char str[10]; }; struct Kouzou mk[3]; 明星大学情報学科 3 年後期 情報技術 Ⅱ 中間試験その 1 Page 1 1-1. 各値を求めよ (1)sizeof(

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

Autodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際

Autodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際 Autodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際に 収束判定に関するデフォルトの設定をそのまま使うか 修正をします 応力解析ソルバーでは計算の終了を判断するときにこの設定を使います

More information

第8回 関数

第8回 関数 1 関数型プログラミング 第 8 回関数 萩野達也 hagino@sfc.keio.ac.jp 2 関数定義 square n = n * n 与えられた数の 2 乗を計算する square 関数を定義している. 変数 square に 2 乗を計算する関数を束縛 (bind) したい. a = 10 変数 a に定数 10 を束縛する. square =... 3 高階関数 関数も値の一つである.

More information

3章 度数分布とヒストグラム

3章 度数分布とヒストグラム 度数分布とヒストグラム データとは 複雑な確率ゲームから生まれたと考えてよい データ分析の第一歩として データの持つ基本的特性を把握することが重要である 分析の流れ データの分布 ( 散らばり ) を 度数分布表にまとめ グラフ化する グラフに 平均値や分散など 分布の特徴を示す客観的な数値を加える データが母集団からのランダムサンプルならば 母集団についての推測を行う 度数分布とヒストグラムの作成

More information

なぜバグ曲線は収束するのか

なぜバグ曲線は収束するのか なぜバグ曲線は収束するのか ~Microsoft Excel を使って考えてみる ~ JaSST 13 Tokyo 2013 年 1 月 31 日 丹羽岳雄 株式会社日本総合研究所 バグ曲線は ソフトウェア開発の品質管理ツール の 1 つとして広く活用されている バグ曲線で よく 議論されていること より良いモデルの構築? 曲線収束の判定方法? 最適なモデルの選択方法? 横軸は 時間? 工数? テストケース数?

More information

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

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

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

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

Microsoft Word - no202.docx

Microsoft Word - no202.docx 1.4 ポインタと配列 ポインタ変数は前回説明したように 値の入っているアドレスを示す変数です では 配列はどの ようにメモリ上に格納されるか調べてみましょう ex07.c /* ポインタと配列の関係 */ int a[3]={1, 2, 3; /* int 型の大きさ 3 の配列として宣言 */ int *i; /* int 型へのポインタとして宣言 */ double x[3] = {1.0,

More information

Microsoft PowerPoint - 05DecisionTree-print.ppt

Microsoft PowerPoint - 05DecisionTree-print.ppt あらためて : 決定木の構築 決定木その 4 ( 改めて ) 決定木の作り方 慶應義塾大学理工学部櫻井彰人 通常の手順 : 上から下に ( 根から葉へ ) 再帰的かつ分割統治 (divide-and-conquer) まずは : 一つの属性を選び根とする 属性値ごとに枝を作る 次は : 訓練データを部分集合に分割 ( 枝一本につき一個 ) 最後に : 同じ手順を 個々の枝について行う その場合 個々の枝に割り当てられた訓練データのみを用いる

More information

6 文字列処理 ( 教科書 p.301p.332) 今回は 言語の文字列処理について復習し, 文字列の探索手法について学びます. 文字列とはプログラム上での文字の並びを表すのが文字列です. これは中身が空であっても同様に呼ばれます. 言語では "STRING" のように文字の並びを二重引用符 " で囲んだものを文字列リテラルと呼びます. SII コードの場合, 割り当てられる数値は図 1 のようになっています.

More information

特殊なケースでの定式化技法

特殊なケースでの定式化技法 特殊なケースでの定式化技法 株式会社数理システム. はじめに 本稿は, 特殊な数理計画問題を線形計画問題 (Lear Programmg:LP) ないしは混合整数計画問題 (Med Ieger Programmg:MIP) に置き換える為の, 幾つかの代表的な手法についてまとめたものである. 具体的には以下の話題を扱った. LP による定式化 絶対値最小化問題 最大値最小化問題 ノルム最小化問題 MIP

More information

alg2015-4r2.ppt

alg2015-4r2.ppt 1 アルゴリズムとデータ 構造 第 4 回基本的なデータ構造 ( ヒープ ) 再帰的アルゴリズム 2017/04/18 アルゴリズムとデータ構造 2 リスト リストとは要素を 0 個以上 1 列に並べたもの リスト a 0,a 1,,a n-1 の実現法 1. 配列 (array) 前回の復習 (1/3) a 0 a 1 a n-1 2. 連結リスト (linked list) init a 0 a

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

アルゴリズム入門

アルゴリズム入門 アルゴリズム入門 第 11 回 ~ パターン認識 (1)~ 情報理工学系研究科 創造情報学専攻 中山英樹 1 今日の内容 パターン認識問題の 1 つ : アラインメント アルゴリズム 再帰 動的計画法 2 パターン認識 音や画像の中に隠れたパターンを認識する 音素 音節 単語 文 基本図形 文字 指紋 物体 人物 顔 パターン は唯一のデータではなく 似通ったデータの集まりを表している 多様性 ノイズ

More information

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, AstraZeneca KK 要旨 : NLMIXEDプロシジャの最尤推定の機能を用いて 指数分布 Weibull

More information

nlp1-04a.key

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

More information

Programming D 1/15

Programming D 1/15 プログラミング D ML 大阪大学基礎工学部情報科学科中田明夫 nakata@ist.osaka-u.ac.jp 教科書 プログラミング言語 Standard ML 入門 6 章 2005/12/19 プログラミング D -ML- 1 2005/12/19 プログラミング D -ML- 2 補足 : 再帰関数の作り方 例題 : 整数 x,y( ただし x

More information

Microsoft PowerPoint - C4(反復for).ppt

Microsoft PowerPoint - C4(反復for).ppt C 言語プログラミング 繰返し ( for 文と while 文 ) 例題 (10 個のデータの平均を求める ) 手順 入力データをx1,x2,,x10 として, (x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)/10 を計算する データ数が,1000 個,10000 個, となったらどうする? データ数個分の 変数の宣言, scanf 関数の呼出し, 加算式の記述 が必要 1 総和を求めること

More information

Microsoft Word - 佐々木和彦_A-050(校了)

Microsoft Word - 佐々木和彦_A-050(校了) 教育総研発 A-050 号 知識が活かされる英語の指導とは ~ 使い途 あっての知識 ~ 代々木ゼミナール英語講師 佐々木和彦 文法や構文など 英語の知識を生徒に与えると そのような知識を与える前よりも生徒の読解スピードが圧倒的に遅くなることがあります 特に 教えられた知識を使おうとする真面目な生徒にそのような傾向があります もちろん 今までいい加減に読んでいた英文を それまでは意識したことがなかったルールや知識を意識しながら読むのですから

More information

メソッドのまとめ

メソッドのまとめ メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか

More information

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - 11.pptx ポインタと配列 ポインタと配列 配列を関数に渡す 法 課題 : 配列によるスタックの実現 ポインタと配列 (1/2) a が配列であるとき, 変数の場合と同様に, &a[0] [] の値は配列要素 a[0] のアドレス. C 言語では, 配列は主記憶上の連続領域に割り当てられるようになっていて, 配列名 a はその配列に割り当てられた領域の先頭番地となる. したがって,&a[0] と a は同じ値.

More information

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx C言語の繰り返し処理 for文と while文と do文 臼杵 潤 0) 準備 変数の加減算 int a, b=10; // a= a = 0; a = a+1; // a= a += 1; // a= // a= a ++; a = a + b; // a= a += b; // a= // a= a --; 下を1行ずつ実行すると それぞれ aの値はどう変わるか 0 1 2 3 13 23 22

More information

040402.ユニットテスト

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

More information

DVIOUT

DVIOUT 5.2. 流れ図 105 5.2 流れ図 流れ図 (flow chart) はアルゴリズムを図式化したもので コンピュータの手順となるデータの流れ 判定 実行の推移などを流れ図記号 4 を用いて描きます 流れ図のようにアルゴリズムを図式化することで 問題の定義や分析または解法がより明確となり プログラムの設計や作成に非常に役立ちます また 第三者にも的確にアルゴリズムを伝えることができます それでは

More information

Microsoft PowerPoint - JKO18-learning.ppt

Microsoft PowerPoint - JKO18-learning.ppt 観察からの学習 Chapter 18 Section 1 3,5 概要 学習エージェント 帰納的学習 決定木学習 学習 学習は未知の環境では本質的 設計者が全能でないときと同値 学習はシステム構成の方法として有用 その方法を書き下そうとするよりもエージェントを現実に立ち向かわせる 学習は性能を向上させるようにエージェントの決定機構を修正させる Learning agents 学習要素 学習要素の設計は次のものに影響される

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile data.txt #define OutFile sorted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "sorted.txt"

More information

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i 1. ライブラリ関数 islower(), toupper() を使い 下記の trlowup プログラムを書き換えて 新規に trupper プログラムを作成せよ * サンプルプログラム 1 /* 2 Program : trlowup.c 3 Comments : translate lower case characters into upper case ones. 4 */ 5 6 #include

More information