知能ソフトウェア特論 Intelligent Software

Slides:



Advertisements
Similar presentations
ベイズの定理と ベイズ統計学 東京工業大学大学院 社会理工学研究科 前川眞一. 2 Coffe or Tea 珈琲と紅茶のどちらが好きかと聞いた場合、 Star Trek のファンの 60% が紅茶を好む。 Star Wars のファンの 95% が珈琲を好む。 ある人が紅茶を好むと分かったとき、その人が.
Advertisements

だい六か – クリスマスとお正月 ぶんぽう. て form review ► Group 1 Verbs ► Have two or more ひらがな in the verb stem AND ► The final sound of the verb stem is from the い row.
Humble and Honorific Language By: Word-Master Leo, Mixer of Ill Beats.
て -form - Making て -form from ます -form -. With て -form, You can say... ~てもいいですか? (= May I do…) ~てください。 (= Please do…) ~ています。 (= am/is/are doing…) Connecting.
第 5 章 2 次元モデル Chapter 5 2-dimensional model. Contents 1.2 次元モデル 2-dimensional model 2. 弱形式 Weak form 3.FEM 近似 FEM approximation 4. まとめ Summary.
Essay writing rules for Japanese!!. * First ・ There are two directions you can write. ・よこがき / 横書き (same as we write English) ・たてがき / 縦書き (from right to.
VE 01 え form What is え form? え? You can do that many things with え form?
A:あらっ!どうしたんですか?! B: ________んです。 つぎの絵を見て、何か面白い答えを書いてください。
英語特別講座 疑問文 #1    英語特別講座 2011 疑問文.
The Bar バー.
英語勉強会.
THE CONTINUOUS IMPROVEMENT MODEL called ADEC
Chapter 11 Queues 行列.
と.
Chris Burgess (1号館1308研究室、内線164)
What did you do, mate? Plain-Past
プログラムの正当性(2) 正当性証明の基本原理
Verb Plain Negativeform
日本人の英語文章の中で「ENJOY」はどういうふうに使われているのか
Ch13-1 TB250 てフォーム.
項書換え系(3) 合流性 Term Rewriting Systems(3) Confluence 知能ソフトウェア特論
Natural Semantics 実行過程の、最初と最後の状態(state)の関係を考える。
Model Checking (2) Temporal Logic
Tohoku University Kyo Tsukada
日本語3 4月26日 漢字ゲス 出会い How do people meet? お見合いは何ですか?
十年生の 日本語 Year 10 Writing Portfolio
Reasonので + Consequence clause
The future tense Takuya Mochizuki.
Licensing information
Chapter 4 Quiz #2 Verbs Particles を、に、で
The Sacred Deer of 奈良(なら)
Who Is Ready to Survive the Next Big Earthquake?
Did he/she just say that? Get your head out of the gutter! Oh wait….
CRLA Project Assisting the Project of
“You Should Go To Kyoto”
ストップウォッチの カード ストップウォッチの カード
点素パス問題に対するアルゴリズム 小林 佑輔 東京大学 大学院情報理工学系研究科 組合せ最適化セミナー 2012 年 7月 13日
National adviser Japanese Yuriko Kayamoto
-Get test signed and make corrections
Model Checking (2) Temporal Logic
Term paper, Report (1st, first)
My Favorite Movie I will introduce my favorite movie.
Structured programming
Where is Wumpus Propositional logic (cont…) Reasoning where is wumpus
大規模なこと Large scale.
逐次プログラムの正当性(2) 帰納的アサーション法(フロイド法)
My Dance Circle December 13, 2018  表紙 my dance circle.
Question Words….
クイズやゲーム形式で紹介した実例です。いずれも過去のインターン作です。
First Course in Combinatorial Optimization
Structural operational semantics
プログラムの正当性(2) 正当性証明の基本原理
2019/4/22 Warm-up ※Warm-up 1~3には、小学校外国語活動「アルファベットを探そう」(H26年度、神埼小学校におけるSTの授業実践)で、5年生が撮影した写真を使用しています(授業者より使用許諾済)。
ロールプレイアクティビティ ある状況設定の中で、登場人物になりきり会話をします。 CAN-DO: 状況に応じた適切な質問をすることができる。
第1回レポートの課題 6月24日出題 今回の課題は1問のみ 第2回レポートと併せて本科目の単位を認定 第2回は7月に出題予定
Genetic Statistics Lectures (4) Evaluation of a region with SNPs
Tag question Aoyama Shogo.
北大MMCセミナー 第62回 附属社会創造数学センター主催 Date: 2016年11月4日(金) 16:30~18:00
知能ソフトウェア特論 Intelligent Software
Windows Summit 2010 © 2010 Microsoft Corporation.All rights reserved.Microsoft、Windows、Windows Vista およびその他の製品名は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
The difference between adjectives and adverbs
Created by L. Whittingham
東北大 情報科学 田中和之,吉池紀子 山口大 工 庄野逸 理化学研究所 岡田真人
英語勉強会:川口英語 Supporting of Continuing Life Habit Improvement Using the Theory of Cognitive Dissonance : System Extension and Evaluation Experiment B4 渡邉.
Cluster EG Face To Face meeting
せつぞくし 接続詞 Conjunctions.
Grammar Point 2: Describing the locations of objects
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
アノテーションガイドラインの管理を行う アノテーションシステムの提案
Improving Strategic Play in Shogi by Using Move Sequence Trees
Presentation transcript:

知能ソフトウェア特論 Intelligent Software プログラムの正当性(1) 正当性証明の基本原理 Correctness of Programs (1) Basic Principle for Correctness Proof

1.アサーションとポテンシャル関数 (Assertions and Potential Functions) プログラムの正当性を証明する理論的ツールTheoretical tools for proving program correctness アサーション (assertion) ポテンシャル関数 (potential function) Microsoftは,自社のプログラマに,プログラムに正当性アサーションを挿入させるようにしたところ,(正当性の証明までさせなくても)生産性が飛躍的に向上した. Microsoft instructed every programmer to include assertions in every program code they wrote. Actually, Microsoft did not order the programmers to prove the assertions, but only made a rule that assertions should be included in the code and made it their standard procedure when writing programs. Consequently, that led to a dramatic improvement in the productivity of programmers.

アサーション (Assertion) アサーションとは---プログラム変数の値の間に成り立つ関係を表す命題 特定の位置(流れ図の辺)において定義される 制御がその位置に達したときは,その命題は常に真 An assertion is a logical statement that expresses a relationship among the values of program variables. It is defined on a particular position (a graphical edge of a flowchart) of the program. The statement should be true whenever the control reaches that particular position. おもにつぎの3つの種類がある. (1) 事前条件(precondition) プログラムの入口で定義 受け入れ可能な入力についての記述 Typically, three kinds of assertions are identified: (1) A precondition is defined on the entrance to the program, expressing the conditions for acceptable input. (2) 事後条件(postcondition) プログラムの出口で定義 正しい出力が満たすべき条件の記述 (2) A postcondition is defined on the exit of the program, expressing the conditions for correct output. (3) ループ不変条件(loop invariant) ループの出入口で常に成り立つ関係式 (3) A loop invariant is defined on the entrance and exit of a loop, expressing the conditions that should be true whenever the control reaches there.

ポテンシャル関数 (Potential Function) ポテンシャル関数とは---プログラム変数を用いた関数. 流れ図の特定の位置(辺)で定義される. その値(ポテンシャル)は常に非負. 制御がここを通過する毎にその値が必ず1以上減少する. A potential function is a function using the values of program variables. It is defined on a particular position (a graphical edge of a flowchart) of the program. Its value (called the potential) should always be non-negative. The value should decrease by one or more, each time the control passes the position.

ループ不変条件の補足 (About Loop Invariants) 円をプロットするプログラム? for(k = 0; k<n; k++) { x = r * cos(k*θ); y = r * sin(k*θ); plot (x,y); } P x y (This program plots a circle?) いかに証明するか? (How to prove?) x2 + y2 = r2 (cos2kθ+sin2kθ) = r2 (=constant) ループ不変条件 LOOP INVARIANTS 時間とともに変化する様子を説明するには, 何が時間によって変化しないかを説明する. To explain how the system will vary with time, explain what will not vary with time. (類似例) エネルギー保存の法則  mgh + mv2/2 = constant (Similar example) the energy conservation law

2.プログラムの正当性の定義 (Definition of correctness of program) 事前条件を満たす任意の入力に対して,つぎの2つの性質を満たすこと. A program is correct if, for all inputs satisfying the precondition, it has the following two properties. (1) 部分正当性 partial correctness もし実行が停止すれば,その時点で事後条件が成り立つ (計算結果がもし得られれば,それは正しい) If the execution has stopped, the postcondition is true at that moment. The result of the computation, if we have obtained any, is correct. (2) 停止性 termination 必ず実行が停止する (必ず計算結果が得られる) The execution will eventually terminate. We can always obtain the result of the computation.

3.部分正当性の証明方法 (How to prove partial correctness) ループ不変条件がその位置で常に真であることを数学的帰納法で証明する. 基礎ケース: はじめてその位置に実行が到達したときに真であること. 帰納ステップ: いまその位置で真で,かつループの継続条件が真であるならば,再度その位置に実行が到達したときにも真であること. ■ Prove that the loop invariant (inv) is true whenever the control reaches the specified position. This is proved by mathematical induction, i.e., by verifying the following two cases. - Base case: The inv is true when the control reaches at the specified position for the first time. - Induction step: If inv and the iteration condition of the loop are true at the specified position now, then inv will be also true when the control reaches there next time. ループ不変条件が真,かつ ループの終了条件が真 ならば,事後条件が成り立つこと. ■ Prove that if inv is true and the termination condition of the loop is true, then the post condition of the loop is true. 例題

4.停止性の証明方法 (How to prove termination) ポテンシャル関数について つぎの事項を証明する. 関数値(ポテンシャル)が常に 非負であること(ループ不変条件) Prove the following properties of the potential function. ■The value of the function (called potential) is always non-negative. (loop invariant) その位置に実行が到達するたびに関数値(ポテンシャル)が 1以上減少していること. ■The potential decreases by one or more, each time the control reaches the specified position. 例題

例題:2つの自然数 m, n の積を加算のみで求める Example: Compute the product of two natural numbers m and n by using only addition precondition loop invariant potential function post condition ループ停止条件 termination condition ループ継続条件 I≠m iteration condition

ループ不変条件 P = In の証明 (Proof of loop invariant P = In) 部分正当性の証明手順 (Proof of loop invariant P = In) Prove Pk = Ikn (for all k=1,2,…) by induction. (Pk と Ik は,②をk回目に通過したときの P と I の値) Pk and Ik are the values of P and I, respectively, when the control passes the position ② for just k-th time Base case (k=1) P1- I1n = 0 - 0n = 0 Induction step Induction hypothesis:  Pk = Ikn Iteration condition:  Ik≠ m Pk+1 – Ik+1n = (Pk + n) – (Ik + 1)n = Pk– Ik n = 0

ループ不変条件 & 終了条件 ⇒ 事後条件 の証明 ループ不変条件 & 終了条件 ⇒ 事後条件  の証明 Proof of loop invariant & termination condition implies postcondition 部分正当性の証明手順 ループ不変条件  P = In (loop invariant) 終了条件  I = m (termination condition) ゆえに: (Therefore:) 事後条件 P=mn (postcondition) 部分正当性 OK (Partial correctness: Proved)

ポテンシャルの非負性 m - I ≧ 0 の証明 Proof of non-negative potential 停止性の証明手順 Prove m - Ik ≧ 0 (for all k=1,2,…) by induction Base case (k=1) m - I1 = m - 0 = m ≧ 0 Induction step 帰納法の仮定:  m – Ik≧ 0 (induction hypothesis) ループの継続条件:    Ik ≠m (iteration condition of the loop) Therefore, m – Ik ≧ 1 m – Ik+1 = m – (Ik + 1) = (m – Ik ) - 1 ≧ 0

ポテンシャルが1以上減少することの証明 Proof of decrease of potential 停止性の証明手順 f(Ik,Pk) - f(Ik+1,Pk+1) = (m – Ik)- (m – Ik+1) = – Ik + Ik+1 = - Ik + (Ik + 1) = 1 ≧ 1 停止性 OK (Termination: Proved)

演習問題1 a÷bの商Qと余りR EXERCISE 1 Quotient and remainder for a÷b a = bQ + R Prove the correctness of the flowchart program given in the figure, which computes the quotient Q and the remainder R when a non-negative integer a and a positive integer b are given as input. b R bQ a = bQ + R