• 検索結果がありません。

指導 : 深澤 良彰 教授

N/A
N/A
Protected

Academic year: 2022

シェア "指導 : 深澤 良彰 教授"

Copied!
44
0
0

読み込み中.... (全文を見る)

全文

(1)

制御工学と自己適応システムを組み合わせるた めの制御器作成数最適化に関する研究

2018 1 30 ( ) 提出

指導 : 深澤 良彰 教授

早稲田大学大学院 基幹理工学研究科 情報理工・情報通信専攻 深澤研究室

学籍番号 : 5116F051-6

惣津 美穂

(2)

1章 はじめに 1

1.1 ソフトウェアの現状 . . . 1

1.2 自己適応システムと制御工学 . . . 1

1.3 本論文の構成 . . . 4

2章 例題 53章 背景 7 3.1 自己適応システム . . . 7

3.2 制御理論 . . . 7

3.3 制御工学を用いた単一品質の保証手法 . . . 8

3.4 制御工学を用いた複数品質の保証手法 . . . 9

3.5 制御工学とソフトウェアシステムとの組み合わせの課題 . . . 10

4章 提案 14 4.1 制御器コスト削減手法 . . . 14

4.2 流れ . . . 15

4.3 二部グラフの作成 . . . 15

4.4 全優先順位を考慮した制御器作成最適化手法 . . . 16

4.4.1 サブグラフ生成 . . . 16

4.4.2 優先順位を考慮した制御器作成 . . . 18

5章 評価 22 5.1 単純手法の説明 . . . 22

5.1.1 単純手法1:全品質を考慮した優先順位作成手法 . . . 22

5.1.2 単純手法2:全ノブを考慮した選択手法 . . . 22

5.2 単純手法と本手法を比較してどれくらいの制御器を減らせたか? . 23 5.3 他の例題での評価 . . . 25

5.3.1 ミーティングスケジューラー . . . 25

5.3.2 ビデオエンコーダー . . . 27

5.3.3 結論 . . . 28

(3)

7章 関連研究 34 7.1 制御工学とソフトウェア工学を組み合わせた研究. . . 34 7.2 自己適応システム開発に対する工学的支援を目的とした研究 . . . 34 7.3 実行時間中に制御器を切り替える研究 . . . 34

8章 おわりに 36

8.1 まとめ . . . 36 8.2 今後の課題. . . 36

(4)

1.1 ソフトウェアの現状

ソフトウェアシステムを取り巻く環境は常に変化している.その度合いは,緩や かなものから突発的なものまで多種多様である.そのような環境下であってもシ ステムの故障や,ユーザーの予期せぬ行動などの環境の変化に対し,安定して要求 を満たし続けることを求められている.例えば図1.1のように,突発的なアクセス の集中によるサーバーの停止という事態に対し,早急にサーバーの再起動をする,

もしくは別のサーバーに切り替えるなどの対処を行い,ユーザーからのアクセス を保たなければならない.そのような動作をシステム自身が考えて実行させるこ とにより,環境の変化に適応させることが出来る自己適応システムが現在注目さ れている[9],[15],[16].自己適応システムは,システム自身が環境を監視,解析し, どのような処理を行えば適応できるのかを計画,実行するものである.(図1.2)

図1.1: 想定されたサーバーシステムの例

1.2 自己適応システムと制御工学

自己適応システムには,対象とするシステム自身が環境の変化に適応するために 環境の変化を監視・解析・計画・実行するための制御器を作成するもの[20]が存 在する.また,近年ではソフトウェアシステムに制御工学の技術を取り込もうと する研究[16]が存在している.それらの流れを踏まえ,自己適応システムの制御 器に制御工学の概念を取り入れ,様々な非機能要求を満たすことを保証する既存研 究が存在している[10][6].制御工学は入出力を持つ物理システムに対し数式モデ

(5)

図1.2: 自己適応システムのモデルの一例

図1.3: 改善方法

(6)

ルをもとに作成した制御器を用いることにより物理システム内部の値を制御する 技術[19]で,主に飛行機の軌道操作やロボットの動作制御に使われている数学的 技術の一つである.また,数学モデルを使うという特性上,数式による保証を得 ることが可能になる.そのため,制御工学をソフトウェアシステム,および自己 適応システムに取り込むことにより,環境変化に対して予測,および対処に対し て保証をもって行うことが出来る.しかし,ソフトウェアシステムに制御工学を 組み込むのには3点デメリットがあると言われている[6][7].

(1) ソフトウェアコンポーネントへの理解

(2) ソフトウェアシステムをプラントとして数式モデル化する技術 (3) ソフトウェアシステムの数式モデルをもとに制御器を作成する技術

ソフトウェア開発者にとって(1)は容易に達成することが出来る.しかし,(2), (3)は専門的な数学的技術を要求されるためソフトウェアシステムに適応させるこ とが非常に難しい.既存研究[5]では(2),(3)のデメリットを解消し,ソフトウェ ア開発者がそのような専門技術を用いなくてもソフトウェアシステムにあった制 御器を作成することが出来る手法を提案した.BrownOut[10]では,初めから制御 器のひな形を作って置き,要求と要求を満たすために動かすことが出来る値を入力 するだけでそのシステム用の制御器を作ることが出来る.この時,要求に影響を 与えることが出来る操作可能な値をノブとする.ノブの具体的な例としては,自 動車のアクセルの踏み込み角度などがあげられる.しかし,ここでは一つの要求 保証しかできないという問題点があった.その問題点を解決した別の既存研究[6]

は保証できる要求に予め優先順位を定め,順位が高いものから順に保証されていく という手法をとることにより複数の品質を満たすことを達成している.この研究 も入力は要求とノブ,ノブが変化した場合どれほど要求を満たせるかという値の みを入力としており,使用者は専門技術を必要としないため,制御器作成コスト を低くしたまま複数品質の保証を達成している.

しかし,実際の環境では要求の優先順位は一定ではなく,変化する可能性がある.例 えば,オンラインショッピングのサーバーを挙げる.要求はコストダウンと通信速 度を速くするとしたとき,普段は通信量が多くないため,コストダウンを優先さ せるが,環境変化によって突発的にアクセスが集中したときに,多くの顧客獲得 のために通信速度の速さの優先順位を上げる必要がある.優先順位変更を行うと,

品質が使うことが出来るノブが変わってしまう.そのため,考えられる品質の優 先順位の組み合わせを全て洗い出し,その順位に対する品質の制御器を事前に用 意する必要がある.したがって,システムを適応させるためには品質,ノブ,品質 とノブとの関係性に加え,品質の優先順位の全組み合わせとその組み合わせに対 応する制御器が必要となり,入力する情報が増え使用者への負担が増える

 本論文では,二部グラフを用いて,要求間の関係性を明確にする.明確にするこ とにより品質が使うことが出来るノブが変わらない場合は同じ制御器を作成しな

(7)

いようにする.これにより,事前に作成する必要のある制御器を減らし,制御器 作成コストを削減することを可能にする.

1.3 本論文の構成

論文の構成は以下の通りである.2章では本研究の説明に用いる例題について 説明する.3章では既存手法,およびその手法の問題点を説明する.4章では二 部グラフを用いた制御器作成コストの削減手法を提案する.5章では4章で提案 した手法と従来手法の比較,評価を行う.6章では5章の結果をもとに議論を述べ る.7章では関連研究について述べ8章で結論と今後の課題を述べる.

(8)

本論文では,motivating exampleとしてスマートハウスの例を用いる.スマートハ ウスは,部屋にある家電をシステムで一括に管理するというものである.今回は 夏場のスマートハウスを想定しており,図2.1に示すようなものを想定している.

例題に取り上げる家電,家具(本手法におけるノブ)は,エアコン,ガス冷房,除湿 器,照明,カーテンの5つである.ノブが影響を与える品質は,気温,湿度,セキュ リティ,電力,ガス代,明るさの6つである.自己適応の一例としては部屋の中が 暑いので気温を自動的に下げる,周囲の治安が悪化したのでセキュリティを上げ るためカーテンを自動で閉めるなどの動作が挙げられる.以下の表2.1に品質とノ ブの関係性を示す.この表では品質とノブの間に関係があるものには〇をつけて いる.例えば,エアコンは気温に影響を与え,カーテンは明るさに影響を与える.

 この例で考えうる優先順位の変化として温度と電気代の入れ替えがある.普段 は節電のために電気代を最優先で制御している.しかし,真夏日などの気温が異 常に高く,熱中症などを起こしやすいと判断したので,温度の優先順位を上げた い,という状況が存在する.

表2.1: スマートハウスの品質とノブの関係

  温度 湿度 セキュリティ 電力 ガス 明るさ

エアコン 〇   〇

ガス冷房 〇     〇

除湿器 〇   〇  

照明       〇   〇

カーテン     〇     〇

(9)

図2.1: 想定されたスマートハウス

(10)

3.1 自己適応システム

自己適応システムとは,システム自身が環境変化に対して,与えられた要求を満た すように自らが考えて適応するシステムである.例えば,クラウドアプリケーショ ンにおいて,システムが予期せぬ量のユーザーからのアクセスを受けた時のことを 考える.このとき,従来であれば,サーバーを増加させる,性能の良いものに変え るなどの行動を人手で行わなければならない.自己適応システムではシステム自 らが決定し,これを実行する.そのためには,ソフトウェアの状態を常に監視す る必要や,その監視した結果をソフトウェアに伝える手法や結果をもとにソフト ウェアの行動を決定する手法など様々な手法が現在提案されている.

3.2 制御理論

制御理論とは, 物理システムに対して数学モデルを用いることにより,制御 対象を評価し望み通りの挙動を達成することを目的とした研究分野である.これ は,数学や物理の技術で主に自動車や工場の機械制御に使われており,車の内部 や工場の制御システムを元に作られた制御器によって出力を制御し,ユーザーの 要求を満たすことを保証することが出来る.

制御理論には大きく二通りに分けられる.一つは,古くから使われる手法で,単 一の制御対象を観察し,伝達関数と呼ばれる入出力をもとに作成された値をもと に制御器を作成する古典制御である.もう一つは,状態方程式と呼ばれる微分方 程式として表現されたプラントをもとに制御器を作成する現代制御である.本手 法では,使用者に対し扱いやすいことを目標としているので,プラントを観察す ることによって制御器を作成することが出来る古典制御を使用する.

安定した制御を行うにはフィードバックによってどれほど目標値から離れてい るかを制御器が観察していなければならない(図3.5).中でも,PI制御は比例要素 の他に積分要素を加えることにより,目標値と入力の値が離れていればいるほど 早く収束させようとする動きを制御器に加えることが出来るシステムである.

(11)

図3.1: フィードバックループの図

3.3 制御工学を用いた単一品質の保証手法

現在,自己適応システムと制御工学の技術を組み合わせた研究が存在している.

これにより,対象のシステムは数学的保証をもって環境への適応が可能となる.し かし,制御工学の技術をソフトウェアシステムに使うためには以下のデメリットが あると言われている.

(1) ソフトウェアコンポーネントへの理解

(2) ソフトウェアシステムをプラントとして数式モデル化する技術 (3) ソフトウェアシステムの数式モデルをもとに制御器を作成する技術

ソフトウェア開発者にとって(1)は容易に達成することが出来る.しかし,(2), (3)は専門的な数学的技術を要求されるためソフトウェアシステムに適応させるこ とが非常に難しい.既存研究Brown-Out[2]では,(2),(3)のデメリットを解消し,

ソフトウェア開発者がそのような専門技術を用いなくてもソフトウェアシステム にあった制御器を作成することが出来る手法を提案した.このシステムはクラウド アプリケーションを対象にした制御工学と自己適応システムを組み合わせたもの である.例題では,ユーザーからの突発的なアクセスの増加に対して,ノブと呼ば れるシステム内部の値を操作して,サーバーへの負荷をシステム自身が考えて減ら すというものである.ここでは,推薦機能を付与するユーザーの割合がノブとなっ ている.作成された制御器は,サーバーからの応答時間をフィードバックループに より監視し,ノブの値を操作している.

この研究の概要図を図3.2に示す.これは,自己適応システムを組み込む際に, システム設計者は制御する対象のうち,要求を満たしたい品質と,品質を変化させ ることが出来るシステム内部の値(ノブ)を入力するだけでよい.事前に制御工学 の技術をもとに,制御する値が目的の値に収束する速さや収束するまでの振動の 激しさなどをすでに決められている制御器の雛型である伝達関数を用意しておく.

今回はフィードバックからの値が,目標値から離れていれば離れているほど,早 く目標値に近づけられるようにするため,PI制御の技術を使い伝達関数を作成す る.そして,その伝達関数をもとに値を制御していく.応答時間の入出力を表し

(12)

た式は以下の通り

tk+1k ·Θktk (3.1) それを制御理論をもとにして作った制御器の数式モデルは以下の通り

Θk+1k+ 1− p1

α +ek+1 (3.2)

この研究の問題点は古典制御のノウハウをそのまま使用しているため単一の品質 しか保証できないという点である.

図3.2: フィードバックループの図

図3.3: 複数品質の保証手法

3.4 制御工学を用いた複数品質の保証手法

BrownOut[2]の拡張研究[3]では,使用者が簡単にシステムに適応させることが

出来,かつ多数の品質を制御することを目標としている.それを実現するため,制 御したい品質に対して優先順位をあらかじめ決定しておき,順位が高い品質から制 御するように制御器を生成している.制御器の仕組みは,Brown-Out[1]と同様に 古典制御の一つであるPI制御の理論を使い作成している.他の品質の制御器との

(13)

接続方法は,図3.4のように優先度が高い品質に影響を与えないように,順位が高 いものを制御するために既に使われたノブは,優先順位の低い品質を制御する際 には使わず,残ったノブだけで制御するという手法を採っている.図3.4において 優先順位が高いものである品質1を温度とし,低いものである品質2を電力とし ている.この時,優先順位が高い温度は〇がついているノブを使うことが出来る が,順位が低い電力は温度がすでにノブを使っているため×が付いたノブを使っ て制御することが出来ない.以下に,優先順位が高いものの品質とノブとの関係 を数式モデルで表したものを示す.

flead(t+1)=blead ·ulead(t)+distlead(t) (3.3) この時,flead(t)は時間tにおける優先順位が高い品質の値であり,bleadは品質 の基準値,ulead(t)は優先順位が高い品質へのノブの操作量,distlead(t)は外乱とな

る.式(3.3)をもとに作成した制御器の数式モデルは以下の通り.

ulead(t)= ulead(t−1)+ elead(t)

blead (3.4)

優先順位が低い品質はこの影響を受けるため,システム内部の数学モデルは以 下のように影響を受ける.

bˆsub(t)= bsub· dsub( ®co) ·τc®o+dsub( ®cu) ·τc®u

τ (3.5)

この時,bsub(t)は時間tにおける優先順位が低い品質,bˆsub(t)は影響を受けた後 の品質の値であり,bsubは品質の基準値,usub(t)は優先順位が低い品質へのノブの 操作量となる.式(3.5)をもとに作成した制御器の数式モデルは以下の通り.

usub(t+1)=usub(t)+ esub(t)

bˆsub(t) (3.6)

以上の数式をもって,ソフトウェアシステムの数式モデル化を行っている.

3.5 制御工学とソフトウェアシステムとの組み合わせの 課題

先行研究では,優先順位を設計時に決定する.優先順位によって制御器生成の際 に使えるノブが変わってしまうため,実行時間中に順位を切り替えるためにはその 品質が使えるノブを変更し,制御器を新たに作り直さなければならない.そこで,

設計時に事前に考えうる制御器を全て生成することにより,実行時間中に切り替え るという手段を試みる.そのためには考えうる全ての優先順位に対する制御器を 作成する必要がある.考えうる全ての優先順位,すなわち品質の階乗個だけの制

(14)

図3.4: 複数品質の保証手法

(15)

御器,先ほどの例題を用いると,品質は6個あるので720個の制御器が必要とな る.しかし,その中には全く同じ制御器が存在する可能性がある.先ほどの例題の 中で温度の制御器を作る場合を考える.この時,温度の優先順位が1位となる優 先順位の数は残りの品質の全組み合わせの数,すなわち5!=120通り考えられる.

しかし,温度の優先順位が1位である場合を想定して作られた制御器は,使える ノブが全て同じであるため,全く同じものとなる.このような無駄な制御器を取 り除く必要がある.

図3.5: 制御器が重複する例

そこで本手法ではノブと品質の関係性を明確にすることにより,重複する制御 器を取り除くことを提案する.先行研究において,優先順位が変わると制御器を

(16)

変えなければならない理由は,使うことが出来るノブが変わってしまうからであ る.しかし,品質の中には共通して使うノブが存在しないものもある.そのよう な品質からは優先順位の影響を受けないため,考慮する優先順位の組み合わせか ら除外してもよいと考えられる.加えて,作成する制御器の品質より下の順位で ある品質は対象の品質に影響を与えない.そのため対象とする品質より上の順位 の組み合わせのみを考慮すればよい.以上より,対象とする品質に対して影響を 与える品質のみで順列を考え,自身より上位の品質の組み合わせに考慮した制御 器を作成することを提案する.

(17)

4.1 制御器コスト削減手法

品質の優先順位を変更すると,その品質が使うことが出来るノブの種類が変わる ため,その時の順位に合わせて別の制御器を作る必要がある.実行中に優先順位の 変更に対応するためにはあらかじめ考えうる全ての優先順位を洗い出し,その順 位に合った品質の制御器をすべて作っておかなければ切り替えることができない.

2章で説明したスマートハウスの例を用いると,扱うべき品質は6つある.その6 つの優先順位の組み合わせは順列の法則から6!個の制御器を作成しなければなら ない.

品質が使えるノブの種類が変わる原因は,品質同士が使うノブが重複していた 場合,順位によって使うことができる品質が変わるからである.つまり,同じノブ を共有していない品質ならば順位を入れ替えても使えるノブは変わらない.例え ば,スマートハウスの例では温度と湿度はノブを共有していないので,温度と湿度 のノブの順位が入れ替わっても使えるノブの種類は変わらず,結果として制御器の 構成は変わらない.これより,同じノブを共有していない品質が入れ替わっただけ の優先順位の組み合わせは制御器の構成に影響を与えないことがわかる..加えて,

作成する制御器の品質より下の順位である品質は対象の品質に影響を与えない.2 章の例題では,温度より優先順位が高い品質が存在しなければ,温度は全てのノ ブを使え,温度より下の優先順位がどのような順列であっても,作成する制御器 は影響を受けない.そのため,本手法では以下の2点について注目する.

(1) 対象とする品質が影響を受ける品質とノブ (2) 対象とする品質より優先順位が高い品質

これらの要素を把握するために,本手法では二部グラフを使う.グラフは,ある 対象を点と線で表したもの全体をさし,それを用いることで様々な関連性を視覚的 に把握することが出来る.二部グラフはその中でも頂点集合を二つの部分集合に 分けた時に集合内の頂点同士の間に辺がないようにできるグラフをさす[14].二 部グラフを用いることにより,品質とノブの関係性が視覚的にわかるようになる.

そして,(1)対象とする品質が影響を受ける品質とノブのみで作られたサブグラフ を生成する.その中の品質で(2)対象とする品質より優先順位が高い品質を選択す る,もしくは対象とする品質が使えるノブを選択する手法をとる.

(18)

4.2 流れ

本手法では以下のステップをもって実行する.

(1) 二部グラフの作成

(2) 対象の品質に関するサブグラフの作成

(3) 対象の品質より上位の品質またはノブの組み合わせの検証 (4) 他の品質に対して(2),(3)の実行

以上のステップをもって制御器作成数の最適化を行う.

4.3 二部グラフの作成

本手法を利用するにあたって先ほど挙げたスマートハウスの例を用いて説明す る.まず図4.1のように品質とノブを分けて列記する.次に例題にあげられていた 表をもとに関係がある品質とノブに対して線を結ぶ.例題をもとに作成されたグ ラフが図4.2の通り.

図4.1: スマートハウスの二部グラフ:作成前  

(19)

図4.2: スマートハウスの二部グラフ

4.4 全優先順位を考慮した制御器作成最適化手法

グラフは一般的にノード(N)とエッジ(E)から成り立つモデルである.本手法で はノードを拡張し,ノブ(K)と品質(Q)とする.スマートハウスの例を用いると,

ノブであるエアコンと品質である温度などをノードとしており,エアコンは温度 に影響を与えるので,このノード間をエッジでつないでいる,とモデル化できる.

大まかな流れとして,品質とノブを用いて作成した二部グラフをもとに,対象の 品質に影響を与えるノブと品質だけで作られたサブグラフを生成する.また,以 下に手法の全体図となるアルゴリズムを記載する.

4行目のmakeSubGraphでサブグラフを作成し,6行目で優先順位をもとにして

対象とする品質が使えないノブをもとに制御器を作成する.また8行目では対象 とする品質が使えるノブをもとに制御器を作成する.

4.4.1 サブグラフ生成

この章では,対象とする品質qtargetに対して影響を与えうるノブと品質のみの グラフを作成する.影響を与えるノブの定義は,二部グラフ上において長さ1で つながるものとする.先ほどの図4.2をもとに温度の品質をqtargetとしたときに対 象となる品質とノブは図4.4のようになる.

また,この時のアルゴリズムは図4.8の通りである.

(20)

1 Input : Graph G(K,Q,E)

2 Output : Set<Controller> result 3 for (Qualoty qtarget:Q){

4 Graph Gsub=makeSubGraph(G,qtarget) 5 if((Qsub.size−1) ≧ Ksub){

6 Set<Controller> Ctarget=BasedOnPriority(Gsub,qtarget) 7 }else{

8 Set<Controller> Ctarget=SetOfKnob(Gsub,qtarget)

9 }

10 Set<Controller> reslt.addAll(Ctarget) 11 }

図4.3: 本手法のアルゴリズム(全体図)

図4.4: スマートハウスの二部グラフ:温度

1 Input : Graph G(K,Q,E), Quality qtarget 2 Output : Graph Gsub(Ksub,Qsub,Esub) 3 Graph Gsub= newGr aph();

4 for (Edge i:G.getEdge(qtarget)){

5 Gsub.addEdge(i)

6 for (Edge j:G.getEdge(i.getAnotherNode(qtarget))){

7 Gsub.addEdge(i) 8 }

図4.5: 本手法のアルゴリズム(全体図)

(21)

この時,4行目のgetEdge(x)でノードxと接しているエッジを全て取得する.ま

た,5行目のaddAdge(y)でエッジyとyに接しているノードを全てグラフに登

録する.この時,すでに登録されているものは重複して登録されない.6行目の

y.getAnotherNode(x)はエッジyに接しているノードのうちxでないものを取得す

る関数となっている.

4.4.2 優先順位を考慮した制御器作成

この章では,前章で作成したサブグラフをもとにqtargetが使用することが出来 る制御器を提示する.本手法ではサブグラフ内の品質とノブの数によって工程を 分ける.Qsub.size−1 ≧ Ksub.sizeの場合,サブグラフ内品質順位を利用した制御 器最適化手法を使用する.手順は以下の通り.

(1) サブグラフ内の品質のみで,qtargetより上になる品質の組み合わせを上げる (2) あげられた組み合わせの品質が使うノブを調べる

(3) (2)であげられたノブ以外のqtargetが使うノブを制御器として提示する 例題をもとにqtargetを温度と設定した場合図4.4よりサブグラフ内の品質は温 度,電力,ガスの3つ.この時qtargetは温度であるので温度より優先順位が高い ものの組み合わせは以下の4つがあげられる.

(1) 電力,ガス代 (2) 電力

(3) ガス代 (4) なし

次に,それぞれの組み合わせ内の品質が使うノブを上げる.

(1) エアコン,ガス冷房 (2) エアコン

(3) ガス冷房 (4) なし

この時,重複が出た場合は統一する.最後に,qtargetが使うノブの中から先ほど 挙げたノブを除いたものを制御器として提示する.

(22)

(1) なし (2) ガス冷房 (3) エアコン

(4) エアコン,ガス冷房

以上が,最適化の一連の工程である.以下に,アルゴリズムを提示する.

1 Input : Graph G(K,Q,E), Quality qtarget

2 Output : Set<Controller> r esulttarget 3 Set<Knob> Knotuse = newHashSet(); 4 Set<Knob> Kuse =newHashSet(); 5 Qsub.r emove(qtarget);

6 for (Set<Quality> i:powerset(Qsub)){

7 for(Quality j:i){

8 for (Edge k:Gsub.getEdge(j)){

9 Knotuse.add(k.getAnotherNode(j));

10 }

11 Kuse=DiffereKnob(Ksub,Knotuse);

12 Controller c = new Controller(qtarget,Kuse) 13 r esulttarget.add(c);

14 }

15 return r esulttarget; 16 }

図4.6: 本手法のアルゴリズム(サブグラフ内品質順位を利用した制御器最適化手法) ここではまず5行目でQsubからqtargetを除く.次に6行目でQsubのべき集合を 求め,それを集合として保存している.これによりqtargetより優先順位が高い品 質の組み合わせを把握することが出来る.9行目でそれらの品質が使っているノブ

を取得しKnotuseに代入する.そして11行目でKuseKsubのうち使えないノブで

あるKnotuseを除いたものを代入する.最後に12行目でコントローラーとして必要

な情報を入力する.

次にQsub.size−1 ≤ Ksubの場合はサブグラフ内ノブの組み合わせを利用した最 適化手法を用いる.工程を以下に示す.

(1) サブグラフ内のノブで,qtargetが使うことが出来るノブの組み合わせを上 げる

(2) (1)であげられたノブの組み合わせをqtargetが使える制御器として提示する

(23)

例題をもとにqtargetを湿度として例を挙げていく.図4.7よりサブグラフ内のノ ブは除湿器の1つ.この時,考えられるノブの組み合わせは以下の通り.

図4.7: スマートハウスの二部グラフ:湿度

(1) なし (2) 除湿器

よってこの二種類のノブの組み合わせを湿度の制御器として提示する.

以下にアルゴリズムを提示する.

1 Input : Graph G(K,Q,E), Quality qtarget 2 Output : Set<Controller> r esulttarget 3 Set<Knob> Kuse =newHashSet();

4 Qsub.r emove(qtarget);

5 for (Set<Knob> i:powerset(Ksub)){

6 for(Knob j:i){

7 Kuse.add(j);

8 Controller c = new Controller(qtarget,Kuse) 9 r esulttarget.add(c);

10 }

11 return r esulttarget; 12 }

図 4.8: 本手法のアルゴリズム(サブグラフ内ノブの組み合わせを利用した最適化 手法)

ここではまず4行目でKsubからqtargetを除く.次に5行目でKsubのべき集合を 求め,それを集合として保存している.これによりqtargetが使えるノブの組み合

(24)

わせを把握することが出来る.7行目でそれらの品質が使っているノブを取得し Kuseに代入する.最後に8行目でコントローラーとして必要な情報を入力する.

(25)

本章では第3章で提案した最適化手法に対し以下のRQを提示する。

(RQ1) 単純手法と本手法を比較してどれくらいの制御器を減らせたか? 

(RQ2) 例題以外でも本手法を適応できるのか? 

この章では以上の点について評価していく。

5.1 単純手法の説明

本節では制御器作成数について4.4で述べた提案手法との比較を行うため、単純 手法についての説明を示す。

5.1.1 単純手法 1 :全品質を考慮した優先順位作成手法

単純手法1として、全ての品質を考慮した順列をもとに作成する。品質の数を

|Q|としたとき、単純手法1で必要となる制御器の数は1品質あたり式(5.1)の通り

|Q|! (5.1)

また、全品質に対して必要となる制御器の数は式(5.2)の通り。

|Q|!× |Q| (5.2)

5.1.2 単純手法 2 :全ノブを考慮した選択手法

単純手法2として、全てのノブに対して、使用できるか出来ないかをもとに組 み合わせを作成する。ノブの数を|K|としたとき、単純手法2で必要となる制御器 の数は1品質あたり式(5.3)の通り

2|K| (5.3)

また、全品質に対して必要となる制御器の数は式(5.2)の通り。

2|K|× |Q| (5.4)

(26)

5.2 単純手法と本手法を比較してどれくらいの制御器を 減らせたか?

前節をもとに単純手法と本手法の作成する制御器数の比較を行う。

まず本手法において作成する制御器数は1品質あたり最大で式(5.5)の通り。

2|Qsub|max1 (|Qsub|max −1≤ |Ksub|max)

2|Ksub|max (|Qsub|max −1≥ |Ksub|max) (5.5) この時|Qsub|maxqtargetをもとにして作成したGsubの中でQsubが最大となる もの、|Ksub|maxqtargetをもとにして作成したGsubの中でKsubが最大となるもの を示す。以下に単一品質において単純手法1と|Qsub|max −1 ≤ |Ksub|max の場合で の本手法の作成する制御器数を比較したグラフを図5.1に示す。

図5.1: 単純手法1と提案手法の制御器作成数の関係

これより単純手法1と本手法を比較したところ|Qsubmax| = |Q|であっても本手法の 方が作成数が少なくなることがわかる。また、単純手法2と|Qsub|max−1≥ |Ksub|max

の場合の本手法比較したグラフを図5.2で示す。

単純手法2と比べても本手法の方が作成する制御器数は少なくなる。

次にスマートハウスの例題において作られる制御器数を計測したところ以下の 通りとなる。

これより、スマートハウスの例では一品質に対して単純手法1と比較して712 個、単純手法2と比較しても本手法では120個減らすことが可能となった。

(27)

図5.2: 単純手法2と提案手法の制御器作成数の関係

表5.1: スマートハウスにおける制御器作成数 手法 スマートハウス内の各品質

温度 湿度 セキュリティ 電力 ガス 明るさ

単純手法1 720 720 720 720 720 720

単純手法2 128 128 128 128 128 128

本手法 4 2 2 8 2 4

(28)

5.3 他の例題での評価

2章であげられているスマートハウス以外に対しても本手法は適応させることが 出来るのか、以下で評価していく。他の例題に対して本手法を用いた場合の結果 を以下に示す。

5.3.1 ミーティングスケジューラー

ミーティングスケジューラー[1]は,CobRAの紹介論文に取り上げられている 例題をもとに改良した例題である.この例題は会議をセッティングするために必 要な要素として,7つのノブと4つの品質をあげられ,表のように対応付けができ る.品質の説明から始める.まず,会議の成功率は,会議が実行できるかどうか を表す指標となる.次に,コストは会議の計画から実行までにかかる金額全てを 表す.参加しやすさは,人々が会議に参加しやすい条件を指標化したものである.

最後の快適さは,会議に参加した際に,快適に発表できたか,聴講できたかを表 す.続いてノブの説明を行う.参加費は参加者が支払う料金であり,これが高け ればコストは下がるが,参加しやすさも下がる.部屋はグレードを上げれば確実 に手に入り,成功率を高めることが出来るが,コストが高くなる.日程は,参加 しやすい日程を選ぶことで参加しやすさを上げることが出来るが,競争率の問題 から成功率が下がる.出席率を上げることにより参加しやすさをあげることがで きる.査読にかかる時間を見る時間がすくなればなるほど,論文の投稿者が増え,

参加しやすさが増す.タイムテーブルを設計の良しあしは会議の成功率にかかわ り,部屋の設備は快適さとコストに関わってくる.これを本手法を用いると,図 5.3のような二部グラフを作成できる.これにより,必要な制御器の数は以下の表 の通りになる.

表5.2: ミーティングスケジューラーのノブと品質の関係     成功率 コスト 参加しやすさ 快適さ

参加費 〇 〇

部屋 〇 〇

日程 〇 〇

出席率 〇

査読にかかる時間 〇

タイムテーブル 〇

部屋の設備 〇 〇

(29)

図5.3: ミーティングスケジューラーの二部グラフ

表5.3: ミーティングスケジューラーの制御器の数     本手法 単純手法1

成功率 4 24

コスト 8 24

参加しやすさ 4 24

快適さ 2 24

(30)

5.3.2 ビデオエンコーダー

ビデオエンコーダ[11]は動画を圧縮し,容量を小さくすることを可能にするこ とが出来る.しかし,圧縮すればするほど動画の画質は落ちていく.今回の例題 では以下の表のように3つのノブと2つの品質を設定する.品質の一つである精 度パラメータはおおまかに画像の圧縮係数に関係し,その値は処理された画像に 保持される情報の割合を表す.この値が高いほど元の画像の情報が保持されてお り,圧縮サイズ小さくするほど,精度パラメータの値は大きくなる.次にノブの 説明に移る.圧縮係数の値が高くなるほど精度の値は落ちるが,サイズは小さく なる.ノイズフィルターは半径が大きいほど画像のノイズを取り除ける範囲が広 がりサイズがを小さくできる一方,画質が悪くなり,精度は下がる.シャープフィ ルターは画質は向上し,精度は上がるが,サイズが大きくなるというトレードオ フがある.

これらのノブをもとに二部グラフを作成すると図のようになる.また,この二 部グラフをもとに作成した制御器の数は以下の通りになる.

表5.4: ビデオエンコーダのノブと品質の関係

    精度 サイズ

圧縮係数 〇 〇

ノイズフィルター 〇 〇 シャープフィルター 〇 〇

図5.4: ビデオエンコーダの二部グラフ

(31)

表5.5: ビデオエンコーダの制御器数     制御器の数 単純手法1

成功率 2 6

コスト 2 6

5.3.3 結論

ミーティングスケジューラーの例より,多くのノブを持つような例題も本手法 を適応させることが出来る.また,作成する制御器の数も大幅に減らすことが出 来る.加えて一般的なシステム以外にも意思決定手法にも本手法は応用すること が可能であることがわかる.

一方,ビデオエンコーダのようなソフトウェアに対しても本手法を適応させる ことが出来る。

これより,IoTだけでなく,ミーティングスケジューラーなどの意思決定のシス テムやビデオエンコーダなどのソフトウェアにも適応させることが出来,制御器 の数を削減することを可能にする。

しかし、スマートハウスの例に比べて後者2例の制御器作成数の削減数は控え 目になっている。本手法を用いることにより制御器の作成数の削減は行うことが 出来ているがその効果のほどはソフトウェアシステムの品質とノブの関係性に大 きく依存していることがわかる。

(32)

6.1 本手法を用いることによって作成する制御器数は最 小となるのか

本手法を用いることにより作成する制御器の数を大幅に減らすことが可能となっ た.しかし,本手法を用いることにより作成する制御器数は最小にならないケー スがいくつか存在する.

本手法において図6.1に示すようなサブグラフを生成する場合,提示する制御器 にいくつか重複が混じる.

図6.1: 例外を生むサブグラフ

これは違う品質が全く同じノブを使う際に発生する問題である.まず,本手法のサ ブグラフ内品質順位を利用した制御器最適化手法を用いた場合を考える.qtarget = q1 とするとき以下の品質qtargetより優先順位が高くなる組み合わせは以下の通り.

(1) q2,q3,q4

(33)

(2) q2,q3 (3) q2,q4 (4) q3,q4 (5) q2 (6) q3 (7) q4 (8) なし

次にそれぞれの組み合わせ内の品質が使うノブを上げる.

(1) k1,k2,k3 (2) k1,k2,k3 (3) k1,k2,k3 (4) k2,k3 (5) k1 (6) k2,k3 (7) k2,k3 (8) なし

ここで使うノブの組み合わせに重複が出るため,最終的な制御器の重複が発生 してしまう.

次にサブグラフ内ノブの組み合わせを利用した最適化手法を用いた場合を考え

る.qtarget = q1とするとき以下の品質qtargetが使うことが出来るノブの組み合わ

せは以下の通り.

(1) k1,k2,k3 (2) k1,k2 (3) k1,k3 (4) k2,k3 (5) k1

(34)

(6) k2, (7) k3 (8) なし

ここでは重複は発生しない.しかし,優先順位を考えた時k2のみ,k3のみの制 御器,k1,k2k1,k3を同時に使う制御器が存在しない.

以上より,この例での最適な制御器数は上述の2種類を除いた4種類であるこ とがわかる.また,本手法,単純手法を用いた場合の比較を表6.1に示す.

表6.1: 例外モデル時の制御器数     制御器作成予定数

本手法 6

重複無し 4

単純手法1 24 単純手法2 6

このような異なる品質で全く同一のノブを保有するも品質が存在する場合,違 う手法をとる必要が出てくる.仮定としてそのような品質をサブグラフ内ではま とめて同一品質として扱うことが考えられる.図6.3のようにq3q4のノブの構 成が全く同じになっている.そのため,その二つをqexと置きなおし,改めて本 手法の後半部分を適応させることで解決できる.

6.2 本手法によるソフトウェア開発者の負担軽減

本手法を用いることにより,作成する予定の制御器の数を減らすことが可能と なる.そのことによって以下のような負担削減に繋がることが可能となる.

(1) 制御器を設計する数を減らす

(2) 制御器を作成する際の費用を減らす

本手法を用いることにより作成する制御器を減らすことが出来ることを5章で 示している.それにより,本手法は制御器作成数を単純手法より減らすことに成 功している.これより,本手法を用いることにより設計する手間,および作成す る際の費用を減らすことを可能にしている.制御器の作成には1章に記載されて いる通り,非常に手間がかかる.特に品質とノブの関係性の把握が制御器作成の 肝であるがとても時間がかかる.ノブをどれくらい動かしたかによって品質の値 がどれくらい変化したかを逐一観察し,設定していかなければならない.この時,

(35)

図6.2: 例外を生むサブグラフの解決法

図6.3: 例外を生むサブグラフの解決法:解決後

(36)

外乱の値も加味しなければならないため,何度も観察を行わなければならない.そ のため,このノブと品質の関係の把握がとても難しく手間がかかる.

以上より制御器作成のための最もコストがかかる部分である制御器作成のため の品質とノブの関係の観察の対象を削減することが可能となる.これにより上記 2点を基にする負担軽減を可能とする.

(37)

7.1 制御工学とソフトウェア工学を組み合わせた研究

制御工学とソフトウェア工学を組み合わせた研究は近年活発になってきている.

しかし,制御工学とコンピューターシステムを組み合わせるという試みはされてい るがまだまだ前衛的な技術であると言われている[13].その主な原因は多くのソ フトウェアシステムは複雑な非線形システムであることであると言わている[18]. 制御工学をソフトウェア工学と組み合わせることによって予期せぬ環境変化や外 乱に強くなることはすでに既存研究[3][4]にて言及されている.本手法はその特 性を用いたまま,ソフトウェア開発者ならば誰でも制御工学を用いることが出来 るように改良することを目的とした.

本手法で拡張したBrownout[10]およびその拡張研究[6]のようにソフトウェア システムをプラントに見立て数学的モデルに変換し,ソフトウェア工学に取り込 んでいる.またAngelopoulosらの研究[1]ではゴールモデルを通してソフトウェア システムの数式モデル化を行っている.また,制御工学と自己適応システムを組 み合わせたものは探索用の潜水艦の行動決定にも用いられている[8].

7.2 自己適応システム開発に対する工学的支援を目的と した研究

本手法は設計時に使用され,自己適応システムの開発者への負担軽減および支 援することを想定して作られている.chenらの研究[2]は要求工学を用いて設計時 に要求を満たすのに最適な手法を提案する.また,Tallabaciらの研究[17]ではフ レームワークを組み込むことによりフィードバックループによる自己適応を可能 としている.本手法における支援方法は単純に制御器の作成の数を減らすという 手法をとっているが,これらのゴールモデルを用いたものやフレームワークを用 いたものと共存できる可能性も考えられる.

7.3 実行時間中に制御器を切り替える研究

本手法では実行時間中に切り替えることを想定して制御器を作成したが,その 是非については考察していない.既存研究[12]ではシステムの実行時間中に制御

(38)

器が切り替える際の条件を示している.本手法によって生成された制御器の切り 替えの条件と組み合わせる必要がある.

(39)

8.1 まとめ

本研究は,制御工学とソフトウェアシステムを組み合わせる際の負担の軽減を 目的に行ってきた.制御工学とソフトウェアシステムを組み合わせるために必要 とされるソフトウェアシステムの数式モデル化,および制御器の作成を簡単に行 うために本手法では作成する制御器作成数の最適化を行った.最適化の際に品質 とノブの関係性を二部グラフを用いて簡単に事前に観測することが出来る.それ によって,優先順位を入れ替えても影響が出ない制御器を除くことで最適化を行っ た.その結果,例外的状況も観測できてしまったが,従来の単純手法に比べて大 幅に作成する制御器の数を減らすことが出来た.

8.2 今後の課題

本研究で提案した手法の洗練として,第6章に挙げたような例外が発生する事 象に対しても効率的に重複を減らす必要がある.現在では解決策として,サブグ ラフ作成時に違う品質が全く同じノブを使っている場合,そのような品質を同一 品質とみなして,本手法の後半部分に進む必要がある.しかし,サブグラフ作成 前までそのような事例に対しての対策が取れないことは非常に手間がかかってし まう.よってサブグラフ作成の前にそのような事例になることを解明し,重複を 減らす手法を考えていきたいと考えている.

(40)

謝辞

本論文の執筆にあたり,指導教員として様々なご指導を賜りました,早稲田大 学 基幹理工学部 情報理工学科の深澤良彰教授に深謝致します.また,ご指導,ご 助言いただいた国立情報学研究所の本位田真一教授,本研究及び論文執筆の細部 にわたりご指導いただいた同研究所の鄭顕志准教授にも深謝致します.

また,研究生活の面でともに研究に励み,研究への助言を始めとした様々なご 協力をいただいた早稲田大学大学院 基幹理工学研究科 情報理工学専攻 深澤研究 室,鷲崎研究室の皆様,東京大学大学院 情報理工学系研究科 コンピュータ科学専 攻及び創造情報専攻 本位田研究室の皆様にも感謝いたします.

(41)

研究業績

・惣津美穂, 自己適応における動的な優先順位変更のための制御器生成コスト の削減に関する研究 ,情報処理学会第79回全国大会,愛知県,名古屋大学東 山キャンパス, 2017年3月16〜18日

・惣津美穂, 鄭顕志, 深澤良彰, 本位田真一, 自己適応システムにおける要求の 動的保証のための二部グラフを用いた制御器作成コストの削減手法 ,合同 エージェントワークショップ&シンポジウム2017 (JAWS2017),千葉県, ホテ ル三日月, 2017年9月15〜17日.

(42)

[1] Konstantinos Angelopoulos, Alessandro V. Papadopoulos, Vítor E. Silva Souza, and John Mylopoulos. Model predictive control for software systems with cobra.

InProceedings of the 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’16, pp. 35–46, New York, NY, USA, 2016. ACM.

[2] Bihuan Chen, Xin Peng, Yijun Yu, Bashar Nuseibeh, and Wenyun Zhao. Self- adaptation through incremental generative model transformations at runtime. In Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pp. 676–687, New York, NY, USA, 2014. ACM.

[3] Y. Diao, J. L. Hellerstein, Sujay Parekh, R. Griffith, G. Kaiser, and D. Phung. Self- managing systems: a control theory foundation. In12th IEEE International Con- ference and Workshops on the Engineering of Computer-Based Systems (ECBS’05), pp. 441–448, April 2005.

[4] A. Filieri, C. Ghezzi, A. Leva, and M. Maggio. Self-adaptive software meets control theory: A preliminary approach supporting reliability requirements. In2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), pp. 283–292, Nov 2011.

[5] Antonio Filieri, Henry Hoffmann, and Martina Maggio. Automated design of self-adaptive software with control-theoretical formal guarantees. InProceedings of the 36th International Conference on Software Engineering, ICSE 2014, pp.

299–310, New York, NY, USA, 2014. ACM.

[6] Antonio Filieri, Henry Hoffmann, and Martina Maggio. Automated multi-objective control for self-adaptive software design. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2015, pp. 13–24, New York, NY, USA, 2015. ACM.

[7] Antonio Filieri, Martina Maggio, Konstantinos Angelopoulos, Nicolás D’Ippolito, Ilias Gerostathopoulos, Andreas Berndt Hempel, Henry Hoffmann, Pooyan Jamshidi, Evangelia Kalyvianaki, Cristian Klein, Filip Krikava, Sasa Misailovic,

(43)

Alessandro Vittorio Papadopoulos, Suprio Ray, Amir M. Sharifloo, Stepan Shevtsov, Mateusz Ujma, and Thomas Vogel. Software engineering meets control theory. InProceedings of the 10th International Symposium on Software Engineer- ing for Adaptive and Self-Managing Systems, SEAMS ’15, pp. 71–82, Piscataway, NJ, USA, 2015. IEEE Press.

[8] S. Gerasimou, R. Calinescu, S. Shevtsov, and D. Weyns. Undersea: An exemplar for engineering self-adaptive unmanned underwater vehicles. In2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self- Managing Systems (SEAMS), pp. 83–89, May 2017.

[9] Jeffrey O. Kephart and David M. Chess. The vision of autonomic computing.

Computer, Vol. 36, No. 1, pp. 41–50, January 2003.

[10] Cristian Klein, Martina Maggio, and Francisco. Brownout: Building more ro- bust cloud applications. In Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pp. 700–711, New York, NY, USA, 2014. ACM.

[11] Martina Maggio, Alessandro Vittorio Papadopoulos, Antonio Filieri, and Henry Hoffmann. Self-adaptive video encoder: Comparison of multiple adaptation strate- gies made simple. InProceedings of the 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’17, pp. 123–128, Piscataway, NJ, USA, 2017. IEEE Press.

[12] Valerio Panzica La Manna, Joel Greenyer, Carlo Ghezzi, and Christian Brenner.

Formalizing correctness criteria of dynamic updates derived from specification changes. InProceedings of the 8th International Symposium on Software Engineer- ing for Adaptive and Self-Managing Systems, SEAMS ’13, pp. 63–72, Piscataway, NJ, USA, 2013. IEEE Press.

[13] Tharindu Patikirikorala, Alan Colman, Jun Han, and Liuping Wang. A systematic survey on the design of self-adaptive software systems using control engineer- ing approaches. In Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’12, pp. 33–42, Piscataway, NJ, USA, 2012. IEEE Press.

[14] R.J.ウィルソン, 隆夫西関, 裕子西関. "グラフ理論入門". "(株)近代科学社", 2001.

[15] R.Laddaga. Guest editor’s introduction: Creating robust software through self- adaptation. IEEE Intelligent Systems, Vol. 14, pp. 26–29, 05 1999.

(44)

[16] Mazeiar Salehie and Ladan Tahvildari. Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst., Vol. 4, No. 2, pp. 14:1–

14:42, May 2009.

[17] Genci Tallabaci and Vítor E. Silva Souza. Engineering adaptation with zanshin: An experience report. InProceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’13, pp. 93–102, Piscataway, NJ, USA, 2013. IEEE Press.

[18] Xiaoyun Zhu, Mustafa Uysal, Zhikui Wang, Sharad Singhal, Arif Merchant, Pradeep Padala, and Kang Shin. What does control theory bring to systems research? SIGOPS Oper. Syst. Rev., Vol. 43, No. 1, pp. 62–69, January 2009.

[19] "森政弘", "小川鑛一". "初めて学ぶ基礎制御工学". "東京電機大学出版局", 1994.

[20] 顕志鄭, 遼清水, 竜一高橋, 冬樹石川. 自己適応ソフトウェアのための自己適 応性設計に関する研究動向. コンピュータ ソフトウェア, Vol. 31, No. 1, pp.

1–49–1–59, 2014.

参照

関連したドキュメント