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

Designing Constraint Maintainers for User Interaction

Embed Size (px)

DESCRIPTION

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

Citation preview

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