# chat-AMAN: 管制官との双方向コミュニケーションで実現する 協働型の航空管制支援システムの構築

宮岡佑弥 ${ }^{1}$ 井上正樹 1 虎谷大地 ${ }^{2}$ 石井南 1
1 慶應義塾大学 2 電子航法研究所

## 概要

本研究では，新しい管制支援システム“chatAMAN”を提案する。 chat-AMAN は自然言語処理技術（抜き出し型質疑応答タスク，文書類似タスク） を活用し，管制官との双方向コミュニケーションを可能にする. chat-AMAN は，航空機に対する指示内容案を管制官へ提示し，管制官からの自然言語形式のチャットに基づいて修正を行う。このやり取りを通じて，航空機への指示内容を両者で決定する。 chat-AMAN には，管制官のチャットを反映する機能だけでなく，常に航空機の安全性を損なわないような機構もを取り入れている. 数値実験では，空港へ到着する航空機に対し, chat-AMANによって高度指示を決定する過程を示す。

## 1 はじめに

航空交通管理とは，航空機の安全かつ秩序立った飛行を行うことを目的に，航空機を外部から支援する業務である [1]. 例えば，航空機同士が衝突したり接近しすぎたりしないよう，各航空機へ飛行する高度や位置を指示するものがある. 近年の航空輸送の需要増加に伴い, AMAN (Arrival Manager) [2]などといった，管制官の負担軽減を目的とする支援システムの導入が進んでいる. これらのシステムは，航空機へ与える指示を計算し，管制官へ提示する.管制官は，提示された内容を参考にしながら航空機へ実際に指示を与える。

これら従来の支援システムの弱点として，航空機への指示内容案を管制官へ一方的に提示するだけであることが挙げられる．管制官は，自身の経験や現在の状況に基づき，提示された指示内容案を受け入れるかを判断する。支援システムの提示した指示内容案が不適切と判断した場合，管制官は，航空機への指示内容を自ら修正する必要があり，システムとの協調性に課題が残る.本研究では，指示内容案を管制官へ提案するだけでなく，管制官が双方向でやり取りできる支援システム，“chat-AMAN”を提案する。 chat-AMANは，提示した指示内容案に対し，管制官が自然言語形式のチャットを受け取り，その意図に基づいて再び提示し直すものである．チャットの内容としては，提示された指示内容案に対し，管制官の経験や現在の状況に基づいて修正依頼をするものを想定している. この仕組みにより, 両者で協働しながら航空機への指示内容を決定することができる。従来の支援システムと chat-AMAN の比較を図 1 に示す.

与えられた自然言語形式の指示文をコンピュー ターが解釈可能な形式に変換する先行研究例は多数ある。例えば，[3] では，BERT モデルを，[4] では $\mathrm{G}^{3}$ と呼ばれる構文解析フレームワークを, [5] では強化学習を用いてそれぞれ自然言語で書かれた指示文を解釈している。これらの研究の共通点は，指示文の意図を直接行動に変換していることである.

それに対し, 本研究で提案する chat-AMAN では, プロンプトの意図が直接指示内容案へ変換される訳ではない. chat-AMAN の構造を図 2 に示す. chat-AMAN は “コントローラC” と“インタプリタ I" という 2 つの要素から構成されている. 本稿では，管制官から受け取る自然言語形式の文字列を “ プロンプト $p$ ”と呼ぶ. コントローラ $C$ は，最適制御問題を用いて各航空機への高度指示を作成する。最適制御によって，様々な制約を満たしつつ，最適

図 1 管制の様子の比較: 従来の支援システム（左）と提案する chat-AMAN（右）

図 2 chat-AMAN の構造

な行動を決定することができる。本研究では，安全な飛行軌道を得られるような制約を組み込んでいる.また，最適制御問題はパラメータ $\theta$ によってパラメトライズされている，インタプリタ $I$ は，自然言語処理技術を用いてプロンプト $p$ を分析し，意図に基づいてパラメータ $\theta$ を更新する. その後, 修正された最適制御問題によって指示内容案が作成され，再度管制官へ提示される。

本研究の貢献は二点ある。一つ目は，管制官と双方向のコミュニケーションを取りながら航空機への指示内容を決定するという新しい管制の様態を提案することである．二つ目は，管制官からの自由度の高い自然言語を許容しつつも，航空機の安全な運行を担保するように chat-AMAN を設計している点である. 図 2 に示す通り，chat-AMAN は管制官からプロンプト $p$ を受け取る要素と指示内容案を作成する要素が独立している. この分離によって，管制官からの意図を安全性を損なうことなく反映でき，かつ，最適な指示内容案が作成できる.

## 2 chat-AMAN

chat-AMANを構成するインタプリタ I とコントローラ $C$ について，それぞれ 2.1，2.2で紹介する。

## 2.1 インタプリタI

インタプリタ I は，管制官から与えられたプロンプトを分析し，その意図に基づいてコントローラ中のパラメータ $\theta$ を更新する.

プロンプトの分析は，抜き出し型質疑応答タスクと類似文書検索タスクの 2 つを組み合わせて行う。

抜き出し型質疑応答タスクこれは，コンテキスト文に対する質問文に回答するタスクである [6]. インタプリタでは，コンテキスト文としてプロンプトを, 質問文として予め用意しておいた文を当てはめることで，プロンプトから所望の情報を抜き出す。 また, 本研究では, 言語モデルとして Hugging Face
の distilbert-base-cased-distilled-squad を使用した [7].

類似文書検索タスク文書類似タスクとは，文書同士の意味合い上の類似度を計算するタスクである [8]. このタスクでは，文の埋め込み表現を計算する言語モデルが使われる. 本研究では，このタスクを応用して，与えられた文に最も類似している文を検索するタスク，“類似文書検索タスク”を構築する。

文の埋め込み表現を出力する言語モデルを $f_{\mathrm{emb}}$,対象とする文を $p$ ，比較対象となる $n$ 個の文を $p_{i}, i \in\{1, \ldots, n\}$ として, 最も類似している文 $i^{*} を$以下のようにして求める.

$
i^{*}=\arg \max _{i=1 \ldots n} \cos \left(f_{\mathrm{emb}}(p), f_{\mathrm{emb}}\left(p_{i}\right)\right)
$

ただし, $\cos (x, y)$ はベクトル $x, y$ のコサイン類似度を表す。インタプリタでは， $p$ にプロンプ卜， $p_{i}$ に予め用意した文 (“代表文”と呼ぶこととする）を当てはめ，プロンプトを判別する. また, 本研究では, $f_{\text {emb }}$ として Hugging Face の deepset/sentence_bert を利用した [9].

次に，プロンプトの要件について述べる. プロンプトは “到着時間差クエリ”と“高度クエリ”の 2 種類に分けられる。両者は類似文書検索タスクによって判別される．各種類において，以下のような情報を抽出する。なお，“E” は抜き出し型質疑応答タスクに，“S”は類似文書検索タスクによって抽出される情報であることを表している。

到着時間差クエリ航空機間の到着時間差制約 (3) に言及する. query = etagap とする.

$\mathrm{re} / \mathrm{E}$ 対象となる航空機間. $\mathrm{re}=$ 隣り合う 2 つのうち小さい方の航空機番号とする.

op/S 制約を増やすか減らすか. 増やす場合は $\mathrm{op}=+1$, 減らす場合は $\mathrm{op}=-1$ とする.

高度クエリ航空機の高度制約 (4)，(5) に言及する。 query = height とする.

$\mathrm{re} / \mathrm{E}$ 対象となる航空機. $\mathrm{re}=$ 航空機番号とする.

bo/S 言及対象となる制約の種類. 下限の場合は bo $=\min ，$ 上限の場合は $\mathrm{bo}=\max$ とする.

op/S 制約を上げるか下げるか. 上げる場合は $\mathrm{op}=+1$, 下げる場合は $\mathrm{op}=-1$ とする.

$\mathrm{ip} / \mathrm{S}$ 指示点の番号. $\mathrm{ip} \in\{1,2\}$ とする.

なお，抜き出し型質疑応答タスクにおける質問文，類似文書検索タスクにおける代表文は付録に記載してある.

ここで. 修正マーカー $d$, 更新定数 $\Delta$ を導入する. これらの次元は，コントローラ $C$ が持つパラメータ $\theta$ と同じである. 修正マーカーは，パラメータのうちどの要素を増やすか, あるいは減らすかを表すべクトルであり，以下のように表される。

$
\begin{aligned}
d= & {\left[d_{T}^{(1)} \ldots d_{T}^{(N-1)}\right.} \\
& d_{1, \min }^{(1)} \ldots d_{1, \min }^{(N)} d_{1, \max }^{(1)} \ldots d_{1, \max }^{(N)} \\
& \left.d_{2, \min }^{(1)} \ldots d_{2, \min }^{(N)} d_{2, \max }^{(1)} \ldots d_{2, \max }^{(N)}\right]^{\top} \in\{-1,0,+1\}^{5 N-1}
\end{aligned}
$

更新定数 $\Delta$ は，パラメータの各要素において，増やすあるいは減らす幅を表す非負の定数である. なお，具体的な値は付録に記載してある。

修正マーカー $d$ は，プロンプトの意図に基づいて修正すべきパラメータ $\theta$ と同じ位置の要素が非零となる。具体的には，Algorithm1 により生成する。

最後に，修正マーカー $d$ と更新定数 $\Delta$ を使って，現状のパラメータ $\theta$ からつぎのようにパラメータを更新する。

$
\theta^{+}=\operatorname{Proj}_{\geq 0}(\theta+\Delta \odot d)
$

なお， $\operatorname{Proj}_{\geq 0}$ は，受け取ったべクトルの要素全てが非負の値となるように射影する関数である. これによって，コントローラの制約を厳しくする方向のみに自由度を与えることができる.この意義については 2.2 にて述べる.

## 2.2 コントローラ $C$

コントローラは，最適制御理論に基づいて各航空機への指示内容案を決定する.このための最適制御問題は，和田ら (2023) の先行研究 [10] をもとに以下のように設定した.

図 3 指示が与えられた時の航空機の軌道例

$N$ 機の航空機が空港に向けて飛行する状況を想定する.この時，航空機同士が接近しすぎないょう，各航空機に高度指示を与えるとする。これらの航空機が空港へ向かうまでの地点上に 2 つの点を導入 ᄂ，それぞれ指示点 1 (Indicate Point 1, “IP1") と指示点 2 ("IP2") と呼ぶこととする. コントローラは,各航空機 $i$ の IP1とIP2における通過高度 $h_{1}^{(i)}, h_{2}^{(i)}$ を生成する. 指示 $h_{1}^{(i)}, h_{2}^{(i)}$ が与えられた時の航空機の軌道を図 3 に示す。横軸は空港までの距離，縦軸は航空機の高度を示す. $h_{1}^{(i)}, h_{2}^{(i)} \forall i \in\{1, \ldots, N\}$ を決定する際，以下のような目標と制約が課される。

到着時間差制約安全性の観点から，隣り合う航空機 $i$ と $i+1$ 間の予想到着時刻の差が $120 \mathrm{~s}+\theta_{T}^{(i)}$ 以上になるようにすること. 航空機 $i$ の予想到着時刻を $t_{\text {ETA }}^{(i)}\left(h_{1}^{(i)}, h_{2}^{(i)}\right)$ とすると，この制約は以下のように表される。

$
\begin{aligned}
& t_{\mathrm{ETA}}^{(i+1)}\left(h_{1}^{(i+1)}, h_{2}^{(i+1)}\right)-t_{\mathrm{ETA}}^{(i)}\left(h_{1}^{(i)}, h_{2}^{(i)}\right) \geq 120 \mathrm{~s}+\theta_{T}^{(i)} \\
& \quad \forall i \in\{1, \ldots, N-1\}
\end{aligned}
$

高度制約運用上の仕様として, 通過高度 $h_{1}^{(i)}, h_{2}^{(i)}$ は次のような上下限を持つ。

$
\begin{aligned}
& h_{1}^{(i)} \in\left[20,000 \mathrm{ft}+\theta_{1, \min }^{(i)}, h_{0}^{(i)}-\theta_{1, \max }^{(i)}\right], \\
& h_{2}^{(i)} \in\left[14,000 \mathrm{ft}+\theta_{2, \min }^{(i)}, 19,000 \mathrm{ft}-\theta_{2, \max }^{(i)}\right], \\
& \quad \forall i \in\{1, \ldots, N\} .
\end{aligned}
$

なお， $h_{0}^{(i)}$ は現在時刻における航空機 $i$ の高度である。

軌道目標通過高度 $h_{1}^{(i)}, h_{2}^{(i)}$ はそれぞれ事前に定められた参照高度 $h_{1, \text { ref }}^{(i)}, h_{2, \text { ref }}^{(i)}$ となるべく近い値とすること。評価関数を以下のように定める。

$
J=\sum_{i=1}^{N}\left(\left(h_{1}^{(i)}-h_{1, \text { ref }}^{(i)}\right)^{2}+\left(h_{2}^{(i)}-h_{2, \text { ref }}^{(i)}\right)^{2}\right)
$

以上をまとめて，各航空機への高度指示 $h_{1}^{(i)}, h_{2}^{(i)}, \forall i \in\{1, \ldots, N\}$ は以下の最適化問題を
求解することで得られる.

$
C: \min J \text { s.t. (3), (4), (5) }
$

ただし，制約 (3)，(4)，(5) 中の数值のうち

$
\begin{aligned}
\theta= & {\left[\theta_{T}^{(1)} \ldots \theta_{T}^{(N-1)}\right.} \\
& \theta_{1, \min }^{(1)} \ldots \theta_{1, \min }^{(N)} \theta_{1, \max }^{(1)} \ldots \theta_{1, \max }^{(N)} \\
& \left.\theta_{2, \text { min }}^{(1)} \ldots \theta_{2, \min }^{(N)} \theta_{2, \max }^{(1)} \ldots \theta_{2, \max }^{(N)}\right]^{\top} \in \mathbb{R}_{\geq 0}^{5 N-1}
\end{aligned}
$

がパラメータであり，インタプリタが必要に応じて調整する。また，パラメータ $\theta$ の值は全て非負に限定されており，(7) の制約を厳しくする方向のみに自由度があるといえる。

## 3 数値実験

管制官と chat-AMAN の双方向のコミュニケー ションの様子についてシミュレーションする．管制官が chat-AMAN ヘプロンプトを与えるにつれ，高度指示がどのように変化していくかを確認する。

ここでは，関西国際空港に到着する $N=6$ 機の航空機を想定する. 各航空機の詳細は付録の表 2 に示している。 (3) にて使用される予測到着時刻 $t_{\mathrm{ETA}}^{(i)}\left(h_{1}^{(i)}, h_{2}^{(i)}\right)$ は [11] のシミュレータから収集したデータを元に推定し，作成した。

## 3.1 手順

まず. コントローラCのパラメータの初期値を $\theta=0$ に設定し，コントローラが (7) を求解して高度指示案 $h_{1}^{(i)}, h_{2}^{(i)}, i \in\{1, \ldots, N\}$ を生成する. 高度指示案を受けて，管制官はプロンプトによって修正依頼を行うとする．ここでは，以下に示すプロンプトが順番に与えられるとする。

1. please increase the gap between the flight 1 and 2 .

2. low the max height on flight 4 at the indicate point 1

3. we need more eta gap between the flight 4 and 5 !

各プロンプトを与えるごとに，インタプリタIがパラメータ $\theta$ を更新し，それに基づいてコントローラ $C$ が高度指示案を再生成する.

## 3.2 結果

はじめに，各プロンプトに対するインタプリタの解釈結果を示す. 修正マーカー $d$ 中の非零成分は，プロンプト $1 ， 2 ， 3$ においてそれぞれ $d_{T}^{(1)}=+1 ，$ $d_{1, \max }^{(1)}=+1, d_{T}^{(4)}=+1$ が得られた. 3 例とも, プロンプトの意図通りに解积が行われ，適切な修正マー カー $d$ が生成されたと言える.

図 4 各航空機の IP1 高度 $h_{1}^{(i)} \forall i \in\{1, \ldots, N\}$ の指示案

次に，コントローラ $C$ が出力する高度指示 $h_{1}^{(i)}$ の変化を図 4 示す. 横軸はプロンプトの番号，縦軸は各航空機への指示高度を表す. プロンプト番号 0 では，インタプリタにまだプロンプトを与えていない段階での指示高度を表す. プロンプト番号 $1 ， 2 ， 3$ は，それぞれプロンプト $1 ， 2 ， 3$ を与えた後の指示高度を表す.プロンプト 2 により, 航空機 4 (紫) の指示高度 $h_{1}^{(4)}$ が降下していることを確認できる.

最後に，航空機間の到着時間差を表 1 に示す.プロンプト 1 の内容に基づいて航空機 1,2 間の到着時間差が，プロンプト 3 の内容に基づいて航空機 3,4 間の到着時間差がそれぞれ増加した. また，到着時間差に言及していないプロンプトが与えられた際は，到着時間差が縮まっていない.このことから，安全性を損なうことなく管制官の意図を指示内容案へ反映できていることが分かる.

表 1 航空機間の到着時間差

## 4 結論

管制官との双方向のやりとりを目指した管制支援システム “chat-AMAN”を提案した. chat-AMANは，自然言語を受け付けられるようにすると同時に，安全性と運用上の制約を満たす指示内容案を提示できる構造となっている．数値実験では，管制官とのやり取りを通じて指示内容が得られる過程を示した。 また，定められた制約を満たしつつ，プロンプトの意図に沿った指示内容案が得られたことを確認できた.

## 参考文献

[1] Eri Itoh. Introduction to Air Traffic Management System. Corona Publishing, 2023 (in Japanese).

[2] EUROCONTROL. Arrival Manager Implementation Guidelines and Lessons Learned. 2010.

[3] Sagar Gubbi Venkatesh, Raviteja Upadrashta, and Bharadwaj Amrutur. Translating Natural Language Instructions to Computer Programs for Robot Manipulation. In 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 19191926. IEEE Press, 2021.

[4] Stefanie Tellex, Thomas Kollar, Steven Dickerson, Matthew R. Walter, Ashis Gopal Banerjee, Seth Teller, and Nicholas Roy. Understanding Natural Language Commands for Robotic Navigation and Mobile Manipulation. In Proceedings of the Twenty-Fifth AAAI Conference on Artificial Intelligence, AAAI'11, pp. 1507-1514. AAAI Press, 2011

[5] S. R. K. Branavan, Harr Chen, Luke S. Zettlemoyer, and Regina Barzilay. Reinforcement Learning for Mapping Instructions to Actions. In Proceedings of the Joint Conference of the 47th Annual Meeting of the ACL and the 4th International Joint Conference on Natural Language Processing of the AFNLP: Volume 1 - Volume 1, ACL'09, pp. 82-90, USA, 2009. Association for Computational Linguistics.

[6] Luqi Wang, Kaiwen Zheng, Liyin Qian, and Sheng Li. A Survey of Extractive Question Answering. In 2022 International Conference on High Performance Big Data and Intelligent Systems (HDIS), pp. 147-153, 2022

[7] Victor Sanh, Lysandre Debut, Julien Chaumond, and Thomas Wolf. Distilbert, a distilled version of bert: smaller, faster, cheaper and lighter. In NeurIPS EMC ${ }^{2}$ Workshop, 2019.

[8] Daniel Cer, Mona Diab, Eneko Agirre, Inigo Lopez-Gazpio, and Lucia Specia. SemEval-2017 Task 1: Semantic Textual Similarity Multilingual and Crosslingual Focused Evaluation. In Proceedings of the 11th International Workshop on Semantic Evaluation (SemEval-2017). Association for Computational Linguistics, 2017.

[9] deepset. Hugging face: deepset/sentence_bert, 52021.

[10] Shinji Wada, Minami Ishii, Masaki Inoue, and Daichi Toratani. Semi-Continuous Descent Operation: A Fuel-Efficient Interval Management Algorithm. Journal of Aircraft, 2023.

[11] Daichi Toratani, Navinda Kithmal Wickramasinghe, and Hiroko Hirabayashi. SIMULATION TECHNIQUES FOR ARRIVAL PROCEDURE DESIGN IN CONTINUOUS DESCENT OPERATION. In 2018 Winter Simulation Conference (WSC), pp. 22492260, 2018.

## Appendix

## 更新定数 $\Delta$

3 節で設定した更新定数について述べる. 更新定数 $\Delta \in \mathbb{R}_{\geq 0}^{5 N-1}$ を

$
\begin{aligned}
\Delta= & {\left[\Delta_{T}^{(1)} \ldots \Delta_{T}^{(N-1)}\right.} \\
& \Delta_{1, \min }^{(1)} \ldots \Delta_{1, \min }^{(N)} \Delta_{1, \max }^{(1)} \ldots \Delta_{1, \max }^{(N)} \\
& \left.\Delta_{2, \min }^{(1)} \ldots \Delta_{2, \min }^{(N)} \Delta_{2, \max }^{(1)} \ldots \Delta_{2, \max }^{(N)}\right]^{\top} \in \mathbb{R}_{\geq 0}^{5 N-1}
\end{aligned}
$

のように表すとすると，

$\Delta_{T}^{(i)}=5 \mathrm{~s} \forall i \in\{1, \ldots, N-1\}$

$\Delta_{1, \min }^{(i)}=\Delta_{1, \max }^{(i)}=\Delta_{2, \min }^{(i)}=\Delta_{2, \max }^{(i)}=1000 \mathrm{ft}$

$\forall i \in\{1, \ldots, N\}$.

と設定した.

## 質問文・代表文

抜き出し型質疑応答タスクにおける質問文，類似文書検索タスクにおける代表文は以下の通りである，

## プロンプトの種類代表文

到着時間差クエリ “To increase or decrease the eta gap between two flights."

高度クエリ “To lower or raise the min or max height of indicate point 1 or indicate point 2 on a flight."

到着時間差クエリ/re 質問文 “Which flight number is the interval between where the gap should be up- dated?"

## 到着時間差クエリ/op 代表文

増やす “We should increase the gap between the flights. We need more gap."

減らす “We should decrease the gap between the flights. We need less gap."

高度クエリ/re 質問文 “Which flight do we refer to?"

高度クエリ/bo 代表文

下限 “We refer to the min height."

上限 “We refer to the max height."

## 高度クエリ/op 代表文

上げる "We should raise the height."

下げる "We should lower the height."

## 高度クエリ/ip 代表文

IP1 "We should lower or raise the height at indicate point $1 . "$

IP2 "We should lower or raise the height at indicate point 2."

## 数値実験での航空機の設定

表 2 航空機一覧