多次元状態 行動空間での強化学習−ランダム矩形タイルによる汎化方法の検討−                         
九州大学 大学院工学研究院 海洋システム工学部門 ○木村 元○                                                                                                                                                                       
はじめに
強化学習は，未知なる環境でロボットの制御規則を自ら発見していくための枠組みとし て有望である．単純かつ理論的に洗練された代表的な強化学習法としてテーブル形式の  !"# があるが，離散的な状態・行動を対象とし ており，これをそのまま実問題へ適用することは難しい．強化学習を実問題に適用するには，高次元の状態行動空間を扱う必要があり，そのためには高次元の空間において値を汎化する問題（ 関数）だけでなく，高次元の行動空間において 値などで計算される確率分布に従って行動を選択する問題も解決しなければならない．著者らは高次元の状態行動における強化学習法として，ランダムな矩形タイ
ルを多数用いた汎化方法に    を組合せ，$ サ
ンプリングによる行動選択を行う方法を提案している !%#．
この方法は，特徴量をランダムな矩形タイルで与えるという    な方法である割には格子状に空間を分割するよ
りもはるかに高い学習性能を示すが，一方でランダムに生成することから全く使用されない無駄な特徴量が存在するなど の問題点があった．本論文では，上記の方法においてランダムに生成していた矩形特徴量を評価するための方法と，この評価に従ってより良い矩形特徴量を生成する新しいアルゴ リズムを提案し ，シミュレーション実験により提案手法の評価を示す．

a2

T9
T5

T8

T7
T6
T3

T1
T4

状態空間を ，行動空間を ，上下界を持つ実数の集合を と表す．各時刻 でエージェントは状態観測   に基づいて行動    を実行し，状態遷移に伴う報酬   を得る．本論文が環境のモデルとして仮定するマルコフ決
定過程 &'()* では，一般に次の状態や報酬は確率的で，その分布は  と  にのみ依存する．'() では次の状態
  は遷移確率  &     * に従って決まり，報酬  も期待値 &  * によって与えられる．エージェントは予め &     * や  &  * についての知識を持っていない．
強化学習の目的はエージェントのパフォーマンスを最適化する政策を得ることである．無限期間のタスクにおける自然な評価規範として，割引報酬の合計がある．  は期
待値， は割引率を表すものとすると，'() での評価関a1+ ,- ２次元行動空間での . 個のタイルによるランダ
ムタイリングの例．タイル / は部分空間 , の矢印で示される区間で定義されるタイルのため，それ 以外の空間 %
では全領域をカバーするタイルになる．タイル " も同様．
数は以下のように定義される：
 問題の定式化

T2&* 0     0 




½


&,*

'() における学習の目的は，各状態  において式 &,* で定義される評価値を最大化するような最適政策を見つけることである．本論文で扱う環境では，状態空間 および行
動空間  は多次元空間で表されるものとする．

 ランダム矩形特徴量による空間汎化
多数の矩形ランダムタイルを用いて高次元空間を汎化する
方法 !1# を説明する．ある , つの矩形ランダムタイル & *は，入力空間 を構成する次元のうち，任意の１次元以上の複数次元で定義される部分空間中のある矩形領域を表し，入力された座標 がその矩形領域である場合 & * 0 , を出力し ，それ以外の場合 & * 0 2 である．矩形領域を構成する次元や矩形の範囲・大きさなどは，タイル毎にラン

ダムに与える．このように，ある１つのタイルは空間を構成する次元の一部分で構成される空間の，とある領域として処理するが，このタイルを空間全体からみると，定義される部分空間中では範囲の限定された矩形だが，それ以外の空間では全領域をカバーするタイルと同義である．このようなランダムタイルを多数用いて重み付け線形和することにより，空間全体に対して関数近似（ 汎化）を行う．本
論文では ，状態空間に対するランダ ムタイル  &*（ただし  , %      ）および 行動空間に対するランダムタ
イル  &*（ただし   , %      ）の２種類のタイル集合を用いて特徴量ベクトルを生成する．特徴量ベクトルを用いて関数近似を行う場合，絶対和ノルムが一定値（理想的には , ）であることが望ましい．そこで % 個の要素を持つ状態特徴量ベクトル  &* 0 & &* &*     *および % 個の要素を持つ行動特徴量ベクトル &* 0& &* &*     * を用いる．このとき，特徴量ベク
トルの前半の要素はタイルのベクトルそのままで 、後半の要素は , から各タイルの値を引いた値とする。

    &%*
,    &* &*
     &* 0&1*,   &*
状態 ，行動  に対する状態行動評価値（ 値）は，特徴量ベクトル  &* &* の各要素と % % コの重み変数 （ただし 0 ,     %  0 ,     % ）を用いて
& *0

&*

 

 

以下のように計算する：

&

 


* 0  , &*  &*    

&/*式 &/* の   は，  &*  &* の組合せで表される特徴量ベクトルのノルムを , にするための正規化定数である．
この 値を温度パラメータ  で除したボルツマン分布に従い，行動を確率的に選択する．各重み変数の値を調節することにより， 値および行動選択確率分布が変化する．
しかしこの行動選択では，高次元行動空間でそのまま実行
しようとすると組合せ爆発を起こすため，$ サンプリ
ングによる行動選択を行うなど 工夫が必要である．

, 一定期間動作したときの状態行動報酬のデ ー
タを取得し，エピソードデータ  とする．

% 矩形特徴量をランダムに，ただし 重複を避けて生成する．

1 エピソードデータ  を用いて，ランダムに生成した矩形特徴量を個別に評価し ，評価値がゼロの矩形特徴量をランダムに，ただし 重複を避けて作り直す．評価値がゼロの矩形特徴量が無くなるまで繰り返す．

/ エピソードデータ  を用いて，評価値が最も低い矩形特徴量をランダムに，ただし 重複を避けて作り直す．全ての矩形特徴量のうちで最低と評価される評価値が所定回数だけ改善されるまで繰り返す．

" エピソードデータ  と生成した矩形特徴量集合を用いてオフラインで    を行う．

+ %- ランダム矩形特徴量改善アルゴ リズム

本章では，ランダムに生成した特徴量を評価する方法と，その評価に基づいてより好ましい特徴量を生成するアルゴ
リズムを提案する．
「 好ましい特徴量」について，まず経験したデータに全く反応しない特徴量や，逆に全データに反応してし まう特徴量は，状態判別という目的から考えると無意味なので，評価値とし て最低値を与えるべきである．
よって，特徴量によってデ ータを判別したときによって得られる「 情報量」（ またはエントロピ ー）がその特徴量の評価とし て妥当である．一方で特徴量は，ある狭い局所的な状況を表して区別することで，その状況特有の行動を学習することを期待されており，注目している特徴量が全状
態空間中で占める割合が少ないほうが好ましいとも考えられる．そこで本研究では個々の特徴量  の評価関数  &  *とし て次の計算式を提案する：& * 0&   *   &   * 矩形 ,の体積





&"*



ただし &   * は入力データの集合  のもとで，特徴量「 矩形  の体積」
 が反応し て , を出力する確率を示す．
は，全空間の大きさを , とし たとき特徴量  が反応して, を出力する空間の大きさを体積で表したものである．
個別の特徴量の評価だけでなく，特徴量集合全体を評価することも必要である．このとき，個別の特徴量評価値を単に合計すれば良いわけではない点に注意が必要である．
例えば，特徴量集合中にデータに対して全く同じ反応を出力する特徴量が複数存在する場合，状態を区別する目的から考えて無意味になるため，同じ反応を出力する特徴量群に対する評価値としては高々特徴量１つ分とすべきである．
そこで本研究では特徴量集合に対する評価関数とし て次の計算式を提案する：

   の各データに反応する全ての特徴量の評価値のうち，最大の値

 ランダム矩形特徴量改善法の提案





&3*

+ % に式 &"* の個別特徴量の評価計算値を利用したランダム矩形特徴量改善アルゴ リズムを示す．しかしこのア
ルゴ リズムでは，特徴量集合全体に対する評価式 &3* を用いていない．以下の実験において本評価式の妥当性を検証するが，このような特徴量集合に対する評価関数を用いた
アルゴ リズム構築は今後の課題である．

  サンプリングによる行動選択
本論文では ，連続な行動空間を各次元毎に等し く  分割
して格子状に離散化する．よって行動空間を  次元と仮定すると  コの行動  & 0 ,      * へ離散化される．行動は，各行動  毎に定義された確率  &* に従って，どれか１つが選ばれる．本論文では，行動の確率  &*
は，一般に状態  において行動  に割り当てられた 値

P(a)select

P(a)

a2
a2
a1
a1
(1)
selectselect

P(a)

P(a)

a2

a2

a1

a1

(2)

(3)

+ 1- 格子状に分割された２次元行動空間を $ サンプリングする様子．左上の図は行動選択確率分布，右上 &,*は % を固定したときの条件付確率により , を選ぶ様子，左下 &%* は &,* で選んだ , を固定した条件付確率により % を選ぶ様子，右下 &1* は &%* で選んだ % を固定した条件付確率により再び , を選ぶ様子．, % は行動空間を表し ，たて軸は確率を表す．
&

  

* に応じた以下のボルツマン分布とする：
4&&  * * & * 0    4&&  * *&5*

ただし  は正の値をとる温度パラ メータであり，値が大
きいと全行動の確率が均一に近づき，ゼロに近づくと大きな 値を持つ行動の確率が大きくなる．このとき，各行動の &  * はランダムタイルの値と重み変数の線形和から計算される．この行動選択をそのまま実行すると，式 &5*の示すとおり全行動空間の 値を調べる必要があるため，行動次元数が %〜1 次元程度ならばある程度実用になるが，次元数が高くなると離散化した行動空間が指数的に増大するため，このままでは実行不能に陥る．
著者は高次元空間における確率分布に従って効率良くサンプ リング するための方法の１つである $ サンプリ
ングを用いる行動選択法と適正度の計算法を提案した !%#．
$ サンプリングとは，高次元の確率変数において，注目している次元以外の次元の変数の値を固定し，そのときの条件付確率分布を用いて , 次元ずつサンプルを行っていく処理を全ての次元に対し て十分な回数繰返し ，最終的に得た値をサンプルとする '  ' 6
法（ '6'6 法）の一種である !,#．+1 は % 次元の行動空間における $ サンプリングの様子を示す．% 次元空
間 , % で離散化された全ての格子における確率は式&5* のフラット選択の場合と同じだが，, 次元ずつサンプルを行っていくので，式 &5* のような全行動空間における確率を全て計算するような処理が不要であることが分かる．
+1 の右上 &,* は % を固定した条件付確率により , をサンプルし ，左下 &%* では &,* で選んだ , を固定した条件付確率により % をサンプルし ている．これで反復 , 回分であり，さらに右下 &1* では &%* で選んだ % を固定した条件付確率により再び , を選んでいる．このような反復を十分な回数繰返した結果得られた , % を最終的な行

動出力とする．$ サンプリングでは，反復回数についての理論的な下限については明らかにはされておらず，実験的に決められているのが実情である．

$ サンプリングでは行動選択確率分布自体は式 5 と同じだが，各行動座標軸毎に処理を行うため，記法を以下のように対応させる．フラットな行動選択の場合同様，行動の次元数  で，行動空間は各次元毎に  分割により離散化されているものとする．ある多次元行動  について，各行動次元毎に分解して次のように表す： 0 &       * た
だし各次元の要素  &ただし   , %     * は   
ただし   , %     である．ある状態  行動  に対す
る 値は，& * 0 &      * と表す．この値は，フラット選択における値と同一である．$ サン
プリングの 回目の反復においてサンプルされた行動要素
を  & * & *     & * と記する．このとき， 7, 回目の反復における行動要素は以下の確率分布に従ってサンプルされる：
 & 7 ,*
 & 7 ,*&  & * & *     & **  &  & *  & *     & **
  




& & * & *      & **ここで，条件付き確率  &       * は，以下のボル
& 7 ,*

 

ツマン分布で与えられる：

&  
*
4&
&             * *0 &8*
 4&&           * *         

フラットな行動選択と比べると，考慮すべき行動が１次元ずつになっただけで式 &5* と同じような処理を繰り返し 行
うようになっただけである．このとき，全行動空間について 値を調べる必要がないのが大きな利点である．

強化学習アルゴリズム
ランダムタイルによる空間汎化と $ サンプ リングによる行動選択を代表的な強化学習アルゴ リズムである    と組み合わせる．第 1 章で説明したように，状態空間のランダムタイル  &*（ただし  , %      ）および行動空間のランダムタイル  &*（ただし   , %      ）の２種類のタイル群を用いて，% 個の要素を持つ状態特徴量ベクトル  &* 0 &&*     * および % 個の要素を持つ行動特徴量ベクトル &* 0 &&*     * を
式 &%* &1* より生成する．状態 ，行動  に対する状態行
動評価値（ 値）は，特徴量ベクトル  &* &* の各要
素と % % コの重み変数 （ただし 0 ,    %+ /- 多自由度ほふくロボットシミュレ ータ．右側が
 0 ,    % ）を用いて以下のように計算する：
前方．足は  本で，各足にはモータ % 個ずつ計 % 個取り
 


付けられている．各足の先端にはタッチセンサが付いてい, &*  &* &.*& * 0
る．状態は % 個の関節の角度と  個のタッチセンサの    
値の計 1 次元で，行動は % 個の関節の目標値で計 %
次元である．
エージェントは状態  を観測し，以下のボルツマン分布に従って行動  を選択し 実行する：

4&&  * * & * 0    4&&  * *

¼

¼

&

  *&  

* 7   7  4 &¼  *

&

*
&,,*



& * & *   7  4 &¼  *
 7

 

*
&,%*
4 &¼  * を探す必要があるが，これは $




15

10

5
Generating 200 featuresat random  

ただし  は割引率， は学習率（ 2    , ）である．ここで 値は式 &.* で表されているので，式 &,,* で示される 値の更新は，重みパラメータ  を以下のように更新することで実現する：
   

Averaged Reward (1000 steps)&,2*

ただし行動は式 &8* の $ サンプリングにより選択する
ため，全行動について 値を計算する必要は無い．行動
選択後，報酬  と遷移先の状態  を観測する．遷移先での状態  における 値を使い，もとの状態  で実行した
行動  の 値を更新する：

Generating 200 featuresusing an episode(early 2000 steps)20&  

ここで
サンプリングを行う過程で見つかった最大の 値を用いるなど ，大規模問題では近似的に与えざ るを得ない．

実験+/ に示す仮想的なほふくロボットに本手法を適用する．
学習目標は，ロボットを前進させるために，アームを足のように作用させる動作の獲得である．関節は位置制御のサーボモーターによって角度を制御される．足の本数 は設定により変えることが可能で，+/ は  0 / の場合を示す．各時間ステップにおいて，エージェントは % 個の関節モータの角度および  個の足先のタッチセンサの状態という 1 個の状態量を要素とした 1 次元ベクトルを観測する：関節角度       は % 次元連続空間で定義され，タッチセンサ        は 2 または , の % 値である．行動は，関節角度の目標値を指示し ，% 次元ベクトル &     * の各要素がそれぞれ関節角度を表す．

0
0

5000

10000

15000

20000

25000

30000

35000

40000

Learning Steps+ "- % 本足ほふくロボット（ 状態 3 次元，行動 / 次元）での学習の様子．横軸は学習ステップ，縦軸は ,222 ス
テップ期間の平均報酬を表す．
行動ベクトルの各要素は !2 ,# の範囲に限定される．行動が選ばれると，モータは指示された目標位置へ動きはじめる．関節角度が指示された位置まで動くか，あるいはタッ
チセンサの値が変化すると，状態遷移の結果として報酬が与えられ，次の時刻へ進む．関節のモータが目標位置まで動く途中でセンサの値が変化すると，そこで意思決定イベ
ントが発生して動きが打ち切られるため，次のステップでの関節角度は行動として出力された目標角度には一致しない．よって状態遷移には不確実性が存在する．報酬は，ボディが前進した距離与えられる．ロボットが後退した場合，報酬の値は負になる．
強化学習エージェントは，関節の角度入力変数は ,2 分
割，タッチセンサの入力変数は % 分割して離散化する．行動については各次元を ,2 分割して離散化する．この状態空間に対し ，ランダムタイルを %22 個生成して状態特徴ベ
クトル  &* とする．このタイル群は，各状態次元についてタイル矩形領域の部分空間を構成する要素として選択する確率を 23 とし てランダムに作成する．ただし 各次元の要素を１つも選択しなかったタイルは 除外し 再生成する．
ランダムタイルの矩形領域については，離散化された空間35
Generating 200 featuresusing an episode(early 2000 steps)

Generating 200 featuresusing an episode(early 2000 steps)

30

Averaged Reward (1000 steps)

Averaged Reward (1000 steps)

20

15

10

25

20

15

10

5
Generating 200 featuresat random
0
0

5000

10000

15000

20000

25000

30000

35000

40000

Learning Steps

5

Grid partitioning(6x6x6)x(6x6x6)(5x5x5)x(5x5x5)

Generating 200
features at random

0
0

20000

40000

60000

80000

100000

Learning Steps+ 3- 1 本足ほふくロボット（ 状態 . 次元，行動 3 次元）での学習の様子．横軸は学習ステップ，縦軸は ,222 ス

テップ期間の平均報酬を表す．

+ 8-     問題（ 状態 1 次元，行動 1 次元）における学習の ,2 試行の平均と標準偏差を示す．横軸は学習ステップ，縦軸は ,222 ステップ 期間の平均報酬．
棒の端は常に円の部分より上にしか存在できない．行動も1 次元で，目標とする位置座標を表す．行動により目標座

GOAL+ 5-     問題．学習主体は棒下部の円が黒く表示された時点毎に意思決定を行う．
の境界に合わせて一様な乱数で生成する．行動のランダム
タイル  &* も同様に %22 個生成する．$ サンプリン
グの反復回数は 12 回，割引率  0 2.，ボルツマン分布の温度パラメータ  0 2/ で一定，学習率  0 2/ に設定する．特徴量を生成する提案手法については ，最初の %222
ステップ分について学習せずにランダムに動作した経験をデータとし て蓄え，+% のアルゴ リズムによって特徴量を生成した後，%222 ステップ後より環境中での試行錯誤により    を行う．

+" に % 本足，+3 に 1 本足ほふくロボットの学習
結果（ ,2 試行平均）を示す．この問題は % 本足の場合，足を交互に動かすのが最適な動作で，1 本足の場合は各足の動作の位相を ,%2 度ずつずらすのが最適な動作となる．ランダムな特徴量生成では最適な動作を見つけることは困難
だが，提案手法では高い割合で最適な動作を学習できた．
+5 に示す     問題 !/# に修正を加えた問題
へ本手法を適用する．状態空間は，棒の下端の円の中心座標および 棒が水平面となす角の 1 次元空間で構成される．

標が与えられると，その方向へ空間中を直線的に移動し ，
途中で障害物あるいはゴ ール領域に触れるか，目標座標に到達すると，イベントが発生して次の意思決定を行う．棒がゴ ール領域に到達すると ,22 の報酬が与えられて初期状態へ戻り，それ以外では報酬 2 である．問題設定の詳細は
文献 !1# を参照のこと．
強化学習エージェントは，1 次元の状態入力の各次元の変数を ,22 分割して離散化する．1 次元の行動についても同様に各次元を ,22 分割して離散化する．この状態空間に対し，ランダムタイルを %22 個生成して状態特徴ベクトル
 &* とする．行動のランダ ムタイル  &* も同様に %22個生成する．$ サンプ リングの反復回数は ," 回，割引率  0 2.，ボルツマン分布の温度パラメータ  0 2/で一定，学習率  0 2" に設定する．参考までに，状態と行動空間を " " " 0 ,%" 個のタイルへ均一にグ リッド
分割した場合と，3 3 3 0 %,3 個のタイルに均一に分割した場合についても表示した．その他の設定については
ほふくロボットの実験と同じである．

+8 に学習結果（ ,2 試行平均）を示す．この問題はスタートから 1 ステップでゴ ールする解が最良解だが，どの手法でも /〜" ステップを要する解しか見つからない場合がある．この問題の場合，提案手法とランダムな特徴量生
成とでは有意な差は見られない．これに対して，空間を均一にグリッド 分割した場合，全く解を見つけられない．
さらに +. に示す冗長アームのリーチングタスク !/#に修正を加えた問題へも適用した．アームは 8 本のリンクが関節を介して直列に接続されており，% 次元平面上を動く．行動も 8 次元で，目標とする関節角度を表す．行動により目標角度が与えられると，その方向へ空間中を直線的に移動し ，途中で障害物あるいはゴ ール領域に触れるか，
目標座標に到達すると，イベントが発生して次の意思決定を行う．問題設定の詳細は文献 !1# を参照のこと．
強化学習エージェントは，8 次元の状態入力の各次元を,2 分割して離散化する．8 次元の行動についても同様に各次元を ,2 分割して離散化する．この空間に対し ，ランダ
ムタイルを %22 個生成して特徴ベクトル  &*  &* とす
る．ランダムタイルは，各次元についてタイル矩形領域のり見られず，冗長アームの到達問題では大幅に悪化している．この原因は，特徴量の生成を行うときに使用するエピ
ソードデータが学習初期のランダム動作だけであることが考えられる．つまり，多足ほふくロボットでは学習初期のランダム動作によって最適政策やそれに近い政策を表現す
るのに十分な状態を訪問することが可能なのに対し，  ' 問題や冗長アームの問題では，ランダム動作によりスタート付近の状態を訪問できても，なかなかその先のゴ ールまで進めず，ゴ ール付近での制御規則の表現に必要な特徴量を生成できなかったと考えられる．このような問題では，強化学習の進行と共に特徴量を追加・削除していくことが必要だろう．

GOAL

また，個別特徴量評価式 &"* はある程度有効と考えられるものの，データの量など によって値がかなり異なってくるため，'(9 などデータ量を考慮に入れた規範を参考にして適切な修正を行うことが必要と思われる．

+ .- 8 関節冗長アームのリーチング タスク．学習主体は関節が黒丸で示された時点毎に意思決定を行う．
35
Generating 200 featuresat random

Averaged Reward (1000 steps)

30

Generate 200 featuresusing an episode(early 2000 steps)

25

Grid partitioning(2x2x2x2x2x2x2x2)
x(2x2x2x2x2x2x2x2)

20

おわりに

15

10

5

0
0

20000

40000
60000
Learning Steps

さらに，特徴量集合の評価式 &3* は，この式による評価
値と強化学習後に得た政策の性能との相関が負になった．
例えば % 足ほふくロボットの場合，評価値と /2222  
学習後の平均報酬の相関係数  0 25, で，1 足ほふくロ
ボットの場合でも相関係数  0 2"1 であり，有効な評価
式ではないと考えられる．+% に示した提案手法は，式&3* を用いていないため，本手法の有用性を否定するもの
ではないが，今後アルゴ リズムを改良する上で特徴量集合の評価式を適切に定式化することが必要である．

80000

100000+ ,2- 8 関節冗長アームのリーチングタスク（ 状態 8
次元，行動 8 次元）での学習の様子．横軸は学習ステップ，
縦軸は ,222 ステップ期間の平均報酬を表す．
部分空間を構成する要素とし て選択する確率を 21 としてランダムに作成する．$ サンプリングの反復回数は /2
回で，他の設定はほふくロボットや    問題と同じである．参考までに，状態と行動空間を % 0 %"3 個のタイルへ均一にグリッド 分割した場合について挙げた．

+,2 に学習の様子（ ,2 試行平均）を示す．この問題
はスタートから 1 ステップでゴ ールする解が最良解であるが，ランダムにタイルを生成する手法では全ての試行で最良解が見つかっているのに対し，提案手法では大幅に学習性能が悪化している．
考察
提案手法の効果は，多足ほふくロボットの問題で顕著に見られたことから ，個別の特徴量を評価する方法（ 式 &"* ）とそれに基づいて改善するアルゴ リズムは有効であると考えられる．しかし，   ' 問題では性能向上はあま

高次元の状態行動空間における強化学習とし て有望な矩形ランダム特徴量による汎化と $ サンプリングによる
行動選択法を用いた    を取り上げ，矩形ランダ
ム特徴量の評価方法および 改良アルゴ リズムを提案した．
 問題本手法を多足ほふくロボット学習問題，  および冗長アームのリーチング問題へ適用し，有用性や限界について考察した．


!,# :   ' - 9    $ '  ' ) &,...*!%# 木村 元：強化学習における高次元数の行動空間の扱いについて−ハッシュと $;   を用いた行動選択方法の提案 計測自動制御学会 第 1% 回知能シ
ステムシンポジウム 1..</2/ &%22"*
!1# 木村 元：ランダムタイリングを用いた多次元状態行動の強化学習計測自動制御学会 システム・情報部門
学術講演会 %22" 講演論文集 15</% &%22"*

!/# '  =>   =   6$-  )  =     ?       
9    '    ;      ,..<%11 &,.."*
!"# ;  ; @ A  =-       =            ' )
&,..8*