タグ付けされた質問 「loop-invariants」

2
この平方根境界検出アルゴリズムでループ不変量はどのように取得されますか?
もともとmath.SEにありましたが、そこには答えがありませんでした。 次のアルゴリズムを考えてみましょう。 u := 0 v := n+1; while ( (u + 1) is not equal to v) do x := (u + v) / 2; if ( x * x <= n) u := x; else v := x; end_if end_while ここで、u、v、およびnは整数であり、除算演算は整数除算です。 アルゴリズムによって計算されるものを説明します。 パートIに対する回答をアルゴリズムの事後条件として使用して、ループ不変式を確立し、アルゴリズムが終了して正しいことを示します。 クラスでは、事後条件があることが判明した及び不変である0 ≤ U 2 ≤ …

2
時々減少しないwhileループのループバリアント?
私が持っているテストの練習問題に取り組んでおり、ループバリアントのすべての例は、ループの反復ごとに減少しました。これについては、a <bの場合、値は同じままです。私の試みはまた、時々aがbより大きくなり、その逆になるため、負の可能性があるループバリアントを取得しました。この質問のループバリアントを見つけて証明するためのアドバイスはありますか? def mystery(a,b): # Precondition: a >= 0 and b >= 0 while a >= 0 and b >= 0: if a < b: a, b = b, a else: a = a - 1 return a 編集:この質問に興味がある人にとって、私の最善の解決策は次のとおりです。 f1=a+2b+1f1=a+2b+1f_{1} = a + 2b + 1

2
行列乗算プログラムの入れ子ループの不変式
Hoareロジックを使用して2つの行列を乗算するためのプログラムの正確性を証明することについて、卒業論文を作成しています。これを行うには、このプログラムの入れ子ループの不変式を生成する必要があります。 for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end end end 私は最初に内部ループの不変式を見つけようとしましたが、今までは本当のものを見つけることができません。上記のプログラムの不変式を見つけるのを手伝ってくれる人はいますか?
7 algorithms  loop-invariants  correctness-proof  formal-languages  regular-languages  pumping-lemma  logic  logic  programming-languages  lambda-calculus  term-rewriting  operational-semantics  complexity-theory  time-complexity  computability  proof-techniques  reductions  digital-preservation  distributed-systems  storage  algorithms  dynamic-programming  check-my-algorithm  reference-request  cryptography  quantum-computing  formal-languages  regular-languages  context-free  formal-grammars  algorithms  graphs  network-flow  algorithms  data-structures  randomized-algorithms  lists  computability  proof-techniques  undecidability  terminology  distributed-systems  parallel-computing  artificial-intelligence  heuristics  search-problem  algorithms  computational-geometry  algorithm-analysis  asymptotics  recurrence-relation  mathematical-analysis  master-theorem  algorithms  algorithm-analysis  runtime-analysis  computability  reductions  turing-machines  formal-languages  context-free 

4
アルゴリズムのループ不変式
ペアの合計の問題の次の疑似コードを開発しました。 与えられた配列 AAA 整数と整数の bbb、位置があり、場合はYESを返し、それ以外の場合はNOを返します。i,ji,ji,jAAAA[i]+A[j]=bA[i]+A[j]=bA[i] + A[j] = b 次に、私のアルゴリズムが正しいことを示すループ不変条件を記述します。誰かが有効なループ不変のヒントを教えてくれますか? PAIRSUM(A,b): YES := true; NO := false; n := length(A); if n<2 then return NO; SORT(A); i := 1; j := n; while i < j do // Here I should state my invariant currentSum := A[i] + A[j]; if …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.