designing constraint maintainers for user interaction

12
1 Designing Constraint Maintainers for User Interaction 2005.6.6 東東東東 東東東東東東東東東 東東東東東東東 東東 東東 東

Upload: dalton-little

Post on 31-Dec-2015

37 views

Category:

Documents


4 download

DESCRIPTION

Designing Constraint Maintainers for User Interaction. 2005.6.6 東京大学 情報理工学系研究科 電子情報学専攻 修士1年 高橋 慧. 発表の流れ. Maintainer の復習 Biased Selector Maintainer の合成 ここまでのまとめ. s. Maintainer の実例. HTML エディタ グラフィカルビューとソースコード タグに関する制約 ( 開きタグ、閉じタグ … ) maintainer の動作 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Designing Constraint Maintainers for User Interaction

1

Designing Constraint Maintainers for User Interaction

2005.6.6

東京大学 情報理工学系研究科電子情報学専攻 修士1年高橋 慧

Page 2: Designing Constraint Maintainers for User Interaction

2

発表の流れ

Maintainer の復習 Biased Selector Maintainer の合成 ここまでのまとめ

s

Page 3: Designing Constraint Maintainers for User Interaction

3

Maintainer の実例 HTML エディタ

グラフィカルビューとソースコード タグに関する制約 ( 開きタグ、閉じタグ… )

maintainer の動作 ビューの table 中で enter を押したとき、ソースコー

ドに挿入するのは <tr> か <br /> か ソースで” <t” と入力したとき、補完するのは <td>

か <table> か お節介にならないように、制約も満たすように。

ユーザーの意志を尊重  → least change 動作の予測ができるように→ left most / predictable⇒ビュー / ソースの変化に対し、最適な変化を選択

st

Page 4: Designing Constraint Maintainers for User Interaction

4

復習 : maintainer

制約 R:x ~ y を常に満たしたい y が変化したら、制約 R を満たすよう x を変化

→ maintainer xy maintainer の定義

-EST : [(xy)Ry] -SKIP : [xRy → (xy)=x]( 他にもいくつか同値な定義がある )

maintainer の望ましい動作 x の候補が複数→今の x からの変化を最小に 最小な候補が複数→ left most (predictable)

sty

Page 5: Designing Constraint Maintainers for User Interaction

5

Maintainer を Selector として見ると…

maintainer は Ry に対する selector と見れる Ry という集合から最適 ( 最小 ) な要素を選択 x によって変化する (selector 自体が x の関数 ) x§ と表すと、 maintainer xy の動作は

x’ = x§(Ry) と書ける→” Biased Selector” と呼ぶ

Biased Selector を考えるメリット Biased Selector 自体は R( 制約 ) に依存しない “ よい” maintainer の構成手続きが与えられる

styl

Page 6: Designing Constraint Maintainers for User Interaction

6

Biased Selector の定義

定義A) Selector の条件を満たす

1. x§S ∈ S2. x§(S∪T) = x§{x§S, x§T}

B) if x ∈ S : x§S = x

Well-Ordered な集合には必ず x§ が存在 例えば以下のように構成できる

if x∈S : x§S = x else : x§S = init(S)

style

Page 7: Designing Constraint Maintainers for User Interaction

7

Biased Selector と maintainer

biased selector ⇒ maintainer:[ 成立 ] -EST : [(xy)Ry]

(a.1 : x§S ∈ S) で S=Ry とすればよい -SKIP : [xRy → (xy)=x]

(b: if x ∈ S : x§S = x) そのもの

maintainer ⇒ biased selector:[ 不成立 ] (a.2:x§(S∪T) = x§{x§S, x§T}) が問題 least change に関連

styled

Page 8: Designing Constraint Maintainers for User Interaction

8

“ 良い” Biased Selector を構成

maintainer としての良い性質を持つ least change, left most (predictable)

x§S を構成 (S は well-ordered) “x との近さ” を定義する  ( 編集距離など ) S 中で x に最も近い距離を持つ集合を Cx(S) と

おく x§S =init(Cx(S)) とする

(init は元々の well-order を構成した min)

この x§ は、 Biased Selector になっている

styled b

Page 9: Designing Constraint Maintainers for User Interaction

9

x§ が Biased Selector になっている証明

復習 Cx(S):S のうち、 x からの距離が最小の要素の集合 init(S):S の最小値 ( みたいなもの )

a.1 : x§S ∈ S x§ の定義 : x§S = init(Cx(S))⇒ {init(A) ⊆ A, Cx(S) ⊆ S} より x§S ∈ S

a.2 : x§(S∪T) = x§{x§S, x§T} x§ の定義 : x§(S∪T) = init(Cx(S∪T)) init(Cx(S∪T)) ∈ Cx{x§S,x§T}

Cx(S∪T) ⊆ Cx(S) ∪ Cx(T) init(Cx(S∪T)) ∈ {init(Cx(S)), init(Cx(T))} = Cx{x§S,x§T}

Cx{x§S,x§T} ⊆ Cx(S∪T) init(Cx(S)) ⊆ Cx(S), init(Cx(T)) ⊆ Cx(T) {x§S,x§T} ⊆ Cx(S∪T) Cx(A) ⊆ A より Cx{x§S,x§T} ⊆ Cx(S∪T)

⇒ {init の性質 : A⊆B ∧ init(B)∈A ⇒ init(A)=init(B)} より init(Cx(S∪T)) = init(Cx(x§S∪x§T)), x§(S∪T) = x§{x§S, x§T}

b : if x ∈ S : x§S = x (x∈S) ⇒ (Cx(S) = {x}) ⇒ (init(Cx(S)) = x) ⇒ (x§S = x)

styled by

Page 10: Designing Constraint Maintainers for User Interaction

10

maintainer の推移的合成

制約 R:x ~ y S:y ~ z を合成 → T:x ~ z x T z は xR (yS z) として構成できる ?

一般には y を隠すと x ~ z が構成できない 例えば x: ある実数 y: 実数集合 z: ある実数で、

x が y の項数、 z が y の正の項数とする。 maintainer : x ~ z は、 y を考えないと構成できない

y=f(x) の関係があるとき (#Ry=1) は OK ( 証明略 )

複雑な制約を分解して maintainer を構成できる

styled by K

Page 11: Designing Constraint Maintainers for User Interaction

11

maintainer の統合

R:x ~ y, S:x ~ y → T=R∪S:x ~ y T を R と S から合成

T=x§{xRy, xSy} とすればよい 証明

xTy = x§((R∪S)y)        … x§ の定義= x§(Ry∪Sy)         …自明ではないが省略= x§{x§(Ry), x§(Sy)} … Selector の定義= x§{xRy, xSy)}   … x§ の定義   

x§ が R,S に依存しないのがポイント

styled by Ke

Page 12: Designing Constraint Maintainers for User Interaction

12

3,4 章のまとめ

Maintainer の構成 複数の候補から一つを選ぶ→順序の定義が必要 Well-order : 大小関係が一意に定まる順序 Selector :” 最小値”の必要十分条件 Biased Selector : x を基準にした selector

Maintainer の統合・合成 T=R;S : R が関数で表せれば合成できる T=R∪S : 常に合成できる

maintainer の実例に続きます。

styled by Kei