Hybrid ccにおけるアニメーションが破綻しないための処理系の改良

Slides:



Advertisements
Similar presentations
1 運動方程式の例2:重力. 2 x 軸、 y 軸、 z 軸方向の単位ベクトル(長さ1)。 x y z O 基本ベクトルの復習 もし軸が動かない場合は、座標で書くと、 参考:動く電車の中で基本ベクトルを考える場合は、 基本ベクトルは時間の関数になるので、 時間で微分して0にならない場合がある。
Advertisements

OWL-Sを用いたWebアプリケーションの検査と生成
3次元nクイーン問題の 解に関する研究 論理工学研究室 伊藤精一
コンピュータプラクティス I 再現性 水野嘉明
CGアニメーションの原理 基本技術 対象物体の動きや変形の設定方法 レンダリング技術
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
自己重力多体系の 1次元シミュレーション 物理学科4年 宇宙物理学研究室  丸山典宏.
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
基礎プログラミングおよび演習 第4回 担当:花岡 5階522/520.
全体ミーティング (4/25) 村田雅之.
班紹介 描画班一同.
LMNtalからC言語への変換の設計と実装
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
プログラミング基礎I(再) 山元進.
多数の疑似システムを用いた システム同定の統計力学 三好 誠司 岡田 真人 神 戸 高 専 東 大, 理 研
LMNtalからC言語への変換の設計と実装
水中で落下する球体の運動.
情報伝播によるオブジェクト指向プログラム理解支援の提案
Handel-Cによる       エアホッケー.
シミュレーション物理5 運動方程式の方法: サブルーチンの使い方.
大阪工業大学 情報科学部 情報システム学科 宇宙物理研究室 B 木村悠哉
プログラムの動作を理解するための技術として
非線形方程式の近似解 (2分法,はさみうち法,Newton-Raphson法)
CSP記述によるモデル設計と ツールによる検証
(ラプラス変換の復習) 教科書には相当する章はない
ハイブリッド並行制約プログラミング における制約の階層化
3次元剛体運動の理論と シミュレーション技法
Selfish routing 川原 純.
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
Lorenz modelにおける 挙動とそのカオス性
第7回 条件による繰り返し.
Occam言語による マルチプリエンプティブシステムの 実装と検証
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
協調機械システム論 ( ,本郷) 協調機械システム論 東京大学 人工物工学研究センター 淺間 一.
OpenMPハードウェア動作合成システムの検証(Ⅰ)
静的情報と動的情報を用いた プログラムスライス計算法
ベイジアンネット混合モデルによる 強化学習エージェントの方策改善
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
アルゴリズムとプログラミング (Algorithms and Programming)
第7回 条件による繰り返し.
6. ラプラス変換.
論文紹介: Time Limited Model Checking
25. Randomized Algorithms
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
プログラミングコンテストシステムへの 提出履歴データとその分析
任意数の制約階層化 2007/10/31 上田研究室 M2 西村 光弘.
電機情報工学専門実験 6. 強化学習シミュレーション
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
プログラムの基本構造と 構造化チャート(PAD)
コンパイラ 2011年10月20日
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
Handel-Cを用いた パックマンの設計
計算機工学特論 スライド 電気電子工学専攻 修士1年 弓仲研究室 河西良介
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
Selfish Routing and the Price of Anarchy
プログラミング言語論 第10回 情報工学科 篠埜 功.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
2008年6月5日 非線形方程式の近似解 2分法,はさみうち法,Newton-Raphson法)
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
Cプログラミング演習 ニュートン法による方程式の求解.
skill-net(MILESTONE CAI,笈川他,1982)[Fortranの課題選択など]
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
プログラム理解のための 付加注釈 DocumentTag の提案
1.2 言語処理の諸観点 (1)言語処理の利用分野
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
4.2 再帰下降解析 (1)再帰下降解析とは ■再帰下降解析(Recursive Descent Parsing)
Presentation transcript:

Hybrid ccにおけるアニメーションが破綻しないための処理系の改良 修士論文中間発表 2005/10/25 上田研究室 M2 若槻 聡一郎

研究の背景および目的 Hybrid ccはハイブリッドシステム(離散的変化+連続的変化からなるシステム)の表現に適している 物体の運動 温度変化 制約を用いているため、直感的な記述で正しいアニメーションが表現可能 ※「直感的な記述」=物理の教科書に載っているような式を(プログラムの記述にしたがって)そのまま書くこと

直感的な記述で意図した通りの動作を表現したい 研究の背景および目的 ただ、現状の処理系では直感的な記述で正しいアニメーションが表現できているとは言いがたい 直感的でない記述を加えないと正しい動作をしない 自由落下+衝突 アニメーションが破綻してしまう ビリヤード 直感的な記述で意図した通りの動作を表現したい

Hybrid cc 並行制約プログラミング+連続的な動作を扱うための枠組み プログラムは以下の二つの部分の記述からなる ある時点での処理(point phase) ある時点からある時点までの間の処理(interval phase) 各記述は時間に関する微分方程式からなる 他の多くのツールと異なり、変化の大きい場所のデータを詳細に生成してくれる(他のツールは一定時間ごとのデータを出力することが多い)

並行制約プログラミング エージェント(制約ストアとやりとりを行う計算主体)と制約ストア(制約の集合)で構成 エージェントには2種類ある tell : 制約ストアに制約を追加 ask : 制約ストアにおいて制約が満たされているかを調べる x’ = 0, x = 10 if x>0 then x’’=-10 制約ストア X = 10 X’ = 0 エージェントの集合 tell ask x’ = 0, x =10, x’’ = -10 x’ = 0, x =10, x’’ = -10 x’ = 0, x = 10 if x>0 then x’’=-10 制約ストア X = 10 X’ = 0 エージェントの集合 tell ask

Hybrid ccのプログラムの記述 連続的な変化を表現するための構文としてhence構文を用いる //初期値の記述 hence{ //interval phaseでの記述 if … //point phaseへ切り替わる条件の記述 }

Hybrid cc の計算モデル 初期状態はpoint phase 以降point→interval→point→…の繰り返し interval phase stable point 制約伝播 解なし 解あり 制約ストアの状態に変化なし 制約ストアの状態が変化 (ある条件文が満たされた) abort

Hybrid ccにおける状態集合 Γ : エージェントストア σ : 制約ストア next : 次のphaseで実行されるプログラムの集合 else : else文の集合

各phaseでのアルゴリズム 否定情報の処理 point phase, interval phaseで共通 ① に対してΓ内のエージェントをσにいれ、制約を解いていく ② σが矛盾 ⇒ return 0(Constraint error) ③ elseが空 ⇒ return 1 ④ elseから1つのelse文(if c else A)をとってくる。   ⇒ ③へ ⑤ Γ→(Γ, A)としてインタプリタを実行。   結果が1 かつ ⇒ return 1 ⑥ バックトラックによって⑤を実行する前の状態まで戻り、   Γのままでインタプリタを実行。  結果が1かつ ⇒ return 1   上記以外の場合 ⇒ return 0(Default error) 否定情報の処理

本当は左側のボールが水平方向に跳ね返ることが期待される? アニメーションが破綻する例 一つの物体に対して複数の物体との衝突が同時に起こったときにDefault errorが起こる 同時に衝突 Default error 本当は左側のボールが水平方向に跳ね返ることが期待される? (c.f 部屋の角への衝突)

原因と思われる箇所 -vオプションをつけてログを追ってみた 気になるところが3つ Triggered constraint is… Last statement executed was: Unexpected failure!

Triggered constraint is… if文を満たした時にでてくる。これが同時に2回起こっている Default error(else文を選ぶ順番によって結果が変わってしまうときのエラー)の原因 ⇒“if X else Y, if Y else X”と同様? ⇒だとすると、処理系は正しく動作している

Last statement executed was: エラーが起こる前に実行していた文 この例ではc = (A.py+(-(B.py)))*1/(A.px+(-(B.px))) このこの文を削って実行したらDefault errorは起こらなくなったが、衝突時刻以降の速さが発散していた

Unexpected failure! 処理系を見た限りでは、 “Triggered constraint is…”と同じくデフォルトエラーに関係がありそう まだ調べ途中

解決方法の案 値をずらす 衝突する時間をずらす 位置をずらす 制約を合成する 複数の解の平均値を取る 制約自体を合成する

実験:衝突時間をずらす 衝突の時に片方のボールがないと仮定して衝突させる 衝突直後のパラメタを初期値としてもう片方のボールと衝突させる ⇒どちらに先に当たるかで挙動が異なった

現状の考察・課題 処理系としては正しく動作しているようだが期待した通りに動いているとはいえない 思い付いた解決方法について、具体的な方法を考えて試す必要がある

目標 Hybrid cc処理系の改良を行い、物体が同時に衝突するような例で期待通りの動きをするような実装を行う 下のような例も動くことが期待される

参考文献 Bjorn Carlson, Vineet Gupta : Hybrid cc with interval constraints, 1997. Bjorn Carlson, Vineet Gupta : The hcc Programmer’s Manual, 1999. 石井大輔 : 制約に基づくアニメーション作成システムGrifonの設計と実装, 2004. 飛田伸一 : ハイブリッド並行制約プログラミングにおける多物体衝突モデルの高速化, 2005.

図置き場1 区間値 ? ? 壁 区間値 通過

図置き場2