データ構造とアルゴリズム(2003年度)

授業科目, www.kameda-lab.org 2003/09/23

本授業について

本講義は2003年度1学期に、 筑波大学第三学群工学システム学類 (知的工学システム・機能工学システム)の3年生を 想定して開講されました。 受講にあたっては、2年生3学期配当の 「プログラミング序論」の知識が必要になりますが、 「プログラミング序論」の単位が本講義単位取得の前提になっているわけでは ありません。

実質担当:亀田能成
教室:3L202

シラバス的内容については授業説明を参照下さい。


成績

講評・コメント

プログラム演習による課題提出が主体だったので、 ついてきてくれる学生とそうでない学生とがはっきり分かれましたが、 ついてきてくれた学生には内容を理解してもらえたと思います。 アンケートではいろいろな改善点の指摘や提案がありましたので、 来年以降役立てさせてもらいます。 特に要望が多かった「自分のプログラムは果たしてきちんと動いているのか?」 ということについては、もっと各自でも確認できるサンプルなどを用意して いきたいと思います。
筑波大学赴任直後ということもあって、 必ずしも十分な授業準備ができていないときがありました。 この点については来年以降改善していきます。


アップデート

授業での記述に問題があったり、訂正があったりしたときにこちらに 掲載します。

課題

=提出方法について=

紙ベースでも構いませんが、可能な限り電子メールでの提出をお願いします。
基本的にプログラム提出なので、実験結果・考察・コメントは プログラム中の最初のコメント行として書き加えてください。
プログラムソースをテキストファイルとして電子メールの本文に入れてください。
HTMLメールや特定のアプリケーションに依存する形式(Wordなど)は使用しないで 下さい。
(必要があれば添付ファイルを使用してもよいですが、 私が閲覧できる保証はありません。)
下記の情報は必須ですので必ず付加してください。
●氏名
●学籍番号
●知的工学システム,機能工学システムの別

【電子メール】
宛先(To): kameda@image.esys.tsukuba.ac.jp
題名(Subject): Algorithm Report x.x ←課題1.2なら"Algorithm Report 1.2"とする

電子メールでのレポート提出サンプル

◎締切後の提出は最大で通常の半分程度の評価にしかならないと思っておいて下さい。
◎プログラミング時にお互い相談するのは構いませんが、プログラム自体は独力で 書いて実行させること。

=課題内容=


授業内容

2003/9/22現在の情報です。
科目番号/知的工学  3206/S513021
科目番号/機能工学  3240/S613021
英名               Data Structure and Algorithm
担当教官           亀田能成・丸山勉
研究室             3F309(亀田能成)
電話               5256(亀田能成)
Office Hour        Weekday 10:00-18:00
e-mail             kameda@image.esys.tsukuba.ac.jp
関連科目           計算機序論II(S511024/S611024)
                   プログラミング序論(S511034/S611034)
                   グラフ理論(S512041/S612041)
授業HPへのlink     http://www.kameda-lab.org/lecture/course-a-j.html

●関連情報:

S513021(知的工学配当)とS613021(機能工学配当)とは同一授業である。
2003年度の授業については、
http://www.kameda-lab.org/lecture/2003-tsukuba-algorithm/index-j.html
を参照のこと。


●授業概要および学類教育目標との対応:

プログラミング序論を踏まえて、グラフ問題や組み合わせ問題をプログラミングで
どのように解決していけるかを学ぶ。それぞれの問題に合わせて、
プログラミング上で問題をどのように表すべきか、
実行時にどのような計算量的困難さが生じるかを認識・理解する。

●使用教科書、参考書:

教科書は使用しない。
参考書としては下記のものを挙げておく。

アルゴリズムとデータ構造―改訂C言語版(電気工学入門シリーズ)
平田 富夫 (著)
森北出版 ; ISBN: 462772652X ; 改訂版 版 (2002/09) 
2,200円

アルゴリズムイントロダクション
第1巻 数学的基礎とデータ構造 ; ISBN: 4764902451 ; 3,600円
第2巻 アルゴリズムの設計と解析手法 ; ISBN: 476490246X ; 3,600円
第3巻 精選トピックス ; ISBN: 4764902478 ; 3,900円
Thomas H. Cormen (原著), Ronald L. Rivest (原著), Charles E. Leiserso (原著),
浅野 哲夫 (翻訳), 梅尾 博司 (翻訳), 和田 幸一 (翻訳), 岩野 和生 (翻訳), 山下 雅史 (翻訳)
近代科学社 ; (1995/12)

アルゴリズムC〈第3巻〉グラフ・数理・トピックス
Robert Sedgewick (原著), 野下 浩平 (翻訳), 佐藤 創 (翻訳), 星 守 (翻訳), 田口 東 (翻訳)
近代科学社 ; ISBN: 4764902575 ; 第3巻 (1996/10)
3,300円

●単位取得用件、成績評価基準:

ほぼ隔週でレポート課題を出す(2003年は5回)。
最低6割以上提出すること。6割提出していても不合格になることはある。
〆切を過ぎた提出に対しては、内容が良くとも評点は半分しか与えない。
2004年度以降も2003年度と同様に進むとは限らないが、
http://www.kameda-lab.org/lecture/2003-tsukuba-algorithm/index-j.html
に2003年度の課題が掲載されている。
なお、レポート課題の提出内容次第ではあるが、試験は行わないことを原則としている。

●受講学生に望むこと:

コンピュータがいくら高速になっても、依然として解けない問題は数多くあることと、
現実問題として下手なプログラミングと上手なプログラミングで解へ到達できるかどうかが
劇的に変わることを認識してもらいたい。

●受講学生の到達度目標レベル:

様々なグラフ問題・組み合わせ問題に対してプログラムが記述できるようになること。
どのような問題が計算困難で、どのような問題がそうでないかの知識を身につけること。

●各週授業計画:

(以下の各行は1週に対応しているわけではない。)
探索アルゴリズム(バックトラックアルゴリズム)Knight's tour
探索アルゴリズム(分岐限定アルゴリズム)N queen, Knapsack Problem
探索アルゴリズム(動的計画法)Knapsack Problem
探索アルゴリズム(動的計画法)行列積演算コスト評価
計算量・グラフとネットワークの表現
グラフの探索(深さ優先、幅優先)
グラフの探索(トポロジカルソート)
経路問題(最長経路問題、最短経路問題/Dijkstra)
経路問題(最短経路問題/Floyd)
マッチング(安定結婚問題)
問題の置換(Knapsack=最長経路問題)
貪欲法:Fractional Knapsack
貪欲法:Knapsack by Fully polynomial time approximation
近似アルゴリズム:Traveling Salesman Problemへの2近似解


<kameda@image.esys.tsukuba.ac.jp>