(57)【要約】  通信システム（１００）は、マスタ装置（１）と複数のスレーブ装置（２）とを備える。各スレーブ装置（２）は、同期周期と、マスタ装置（１）の時刻とスレーブ装置（２）の時刻との差の補正量を記憶する。マスタ装置（１）は、スレーブ装置（２）から補正量を取得し、スレーブ装置（２）から取得された補正量に基づいて同期周期と補正量との対応関係を算出し、スレーブ装置（２）の対応関係に基づいてスレーブ装置（２）における目標同期周期を算出し、各スレーブ装置（２）における目標同期周期に基づいて各スレーブ装置（２）を複数のグループに分類し、各グループに分類された１以上のスレーブ装置（２）における目標同期周期のうち最大の目標同期周期を、マスタ装置（１）が１以上のスレーブ装置（２）と時刻同期を行なう新たな同期周期として設定する。
2020213190.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
各前記スレーブ装置は、複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、
前記マスタ装置は、
各前記スレーブ装置から、各前記同期周期についての前記補正量を取得し、
前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された各前記補正量に基づいて、前記マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、
前記複数のスレーブ装置の各々について、当該スレーブ装置の前記対応関係に基づいて、当該スレーブ装置における前記補正量の目標値に対応する目標同期周期を算出し、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を複数のグループに分類し、
前記複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における前記目標同期周期のうち最大の目標同期周期を、前記マスタ装置が前記１以上のスレーブ装置と時刻同期を行なう新たな同期周期として設定する、通信システム。
【請求項２】
各前記スレーブ装置は、前記複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を複数回実行し、複数回分の各前記補正量を記憶し、
前記マスタ装置は、前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された複数回分の各前記補正量に基づいて、当該スレーブ装置における前記対応関係を算出し、
前記複数のスレーブ装置の各々における前記対応関係は、当該スレーブ装置が前記マスタ装置と時刻同期を行なう同期周期に対して、複数回分の前記補正量における、平均値と標準偏差との加算値を、直線近似した一次関数である、請求項１に記載の通信システム。
【請求項３】
前記マスタ装置は、前記複数のスレーブ装置の各々について、当該スレーブ装置における前記一次関数と前記補正量の目標値とに基づいて、当該スレーブ装置における前記目標同期周期を算出する、請求項２に記載の通信システム。
【請求項４】
前記マスタ装置は、前記複数のスレーブ装置の各々について、当該スレーブ装置における前記目標同期周期と各前記グループに対応するクラスタ中心との距離を算出し、当該距離が最も小さくなる前記クラスタ中心に対応するグループに当該スレーブ装置を分類する、請求項１〜請求項３のいずれか１項に記載の通信システム。
【請求項５】
前記新たな同期周期を設定した後に、各前記スレーブ装置から取得された前記補正量の少なくとも１つが前記目標値以上である場合、前記マスタ装置は、各前記補正量を取得する処理、前記対応関係を算出する処理、前記目標同期周期を算出する処理、各前記スレーブ装置を前記複数のグループに分類する処理、および、前記新たな同期周期を設定する処理の各処理を再度実行する、請求項１〜請求項４のいずれか１項に記載の通信システム。
【請求項６】
前記マスタ装置は、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を第１の複数の候補グループに分類し、
各前記スレーブ装置を、前記第１の複数の候補グループとは異なる第２の複数の候補グループに分類し、
予め定められた式に基づいて、各前記スレーブ装置が前記第１の複数の候補グループに分類された場合における、前記通信システムのネットワーク負荷を示す第１評価値と、各前記スレーブ装置が前記第２の複数の候補グループに分類された場合における、前記通信システムのネットワーク負荷を示す第２評価値とを算出し、
前記第１および第２評価値のうち最小の評価値に対応する複数の候補グループを、前記複数のグループとして決定する、請求項１〜請求項５のいずれか１項に記載の通信システム。
【請求項７】
前記マスタ装置は、前記第１の複数の候補グループに分類する際に用いた前記補正量の目標値の変更、および前記第１の複数の候補グループの数の変更のうちの少なくとも１つを実行することによって、各前記スレーブ装置を前記第２の複数の候補グループに分類する、請求項６に記載の通信システム。
【請求項８】
前記マスタ装置は、前記第２の複数の候補グループのうちの第１候補グループに属するスレーブ装置と、前記第２の複数の候補グループのうちの第２候補グループに属するスレーブ装置とを入れ替えることによって、各前記スレーブ装置を第３の複数の候補グループに分類する、請求項７に記載の通信システム。
【請求項９】
前記マスタ装置および各前記スレーブ装置はマルチホップ通信可能に構成されており、
前記マスタ装置は、
前記複数のグループの各々について、前記マスタ装置と当該グループに属する複数のスレーブ装置との間における複数の通信経路を算出し、
前記複数のグループの各々について、当該グループにおける前記複数の通信経路のうち、当該グループに属する複数のスレーブ装置のホップ数を最小化する通信経路に従って、当該複数のスレーブ装置とマルチホップ通信を行なう、請求項１〜請求項７のいずれか１項に記載の通信システム。
【請求項１０】
前記マスタ装置は、前記新たな同期周期で時刻同期を実行した場合に、各前記スレーブ装置から取得された各前記補正量の少なくとも１つが目標範囲外となった回数をカウントし、
前記回数が閾値未満である場合、前記マスタ装置は、
各前記補正量、各前記新たな同期周期、および、各前記スレーブ装置を前記複数のグループに分類するための分類情報を入力とする学習モデルを用いて、各前記スレーブ装置を他の複数のグループに分類するための他の分類情報と、前記他の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう他の新たな同期周期とを選択する、請求項１〜請求項４のいずれか１項に記載の通信システム。
【請求項１１】
複数のスレーブ装置と通信可能に構成されたマスタ装置であって、
前記マスタ装置は、
各前記スレーブ装置から、複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、
前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された各前記補正量に基づいて、前記マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、
前記複数のスレーブ装置の各々について、当該スレーブ装置の前記対応関係に基づいて、当該スレーブ装置における前記補正量の目標値に対応する目標同期周期を算出し、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を複数のグループに分類し、
前記複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における前記目標同期周期のうち最大の目標同期周期を、前記マスタ装置が前記１以上のスレーブ装置と時刻同期を行なう新たな同期周期として設定する、マスタ装置。
【請求項１２】
マスタ装置と通信可能に構成されたスレーブ装置であって、
前記スレーブ装置は、
複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、
各前記同期周期についての前記補正量を前記マスタ装置に送信し、
各前記補正量に基づいて前記マスタ装置により設定された新たな同期周期で前記マスタ装置と時刻同期を実行する、スレーブ装置。
【請求項１３】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
前記マスタ装置は、
第１分類情報に基づいて、各前記スレーブ装置を第１の複数のグループに分類し、
前記第１の複数のグループの各々について、当該グループに設定された第１同期周期で当該グループに分類された１以上のスレーブ装置と時刻同期を行ない、
前記時刻同期を行なった場合に、各前記スレーブ装置から、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の第１補正量を取得し、
各前記第１補正量、各前記第１同期周期、および前記第１分類情報を入力とする学習モデルを用いて、各前記スレーブ装置を第２の複数のグループに分類するための第２分類情報と、前記第２の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第２同期周期とを選択する、通信システム。
【請求項１４】
前記マスタ装置は、各前記第１同期周期の総和および各前記第１補正量の少なくとも一方に基づいて、前記学習モデルの学習に用いられる報酬を計算する、請求項１３に記載の通信システム。
【請求項１５】
前記マスタ装置は、
前記学習モデルの学習が終了した学習済モデルに基づいて、前記複数のスレーブ装置を第３の複数のグループに分類するための第３分類情報と、前記第３の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第３同期周期とを選択し、
前記第３分類情報に基づいて、前記複数のスレーブ装置を前記第３の複数のグループに分類し、
前記第３の複数のグループのうちの１のグループに新たな他のスレーブ装置を追加することにより、前記複数のスレーブ装置および前記他のスレーブ装置を第４の複数のグループに分類し、
前記第４の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と、当該グループに設定された前記第３同期周期で時刻同期を行なう、請求項１３または請求項１４に記載の通信システム。
【請求項１６】
前記マスタ装置は、
前記第３同期周期で時刻同期を行なった場合に、前記複数のスレーブ装置および前記他のスレーブ装置の各々から、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の第２補正量を取得し、
各前記第２補正量の少なくとも１つが基準閾値以上である場合、各前記第２補正量と、各前記第３同期周期と、前記複数のスレーブ装置および前記他のスレーブ装置を前記第４の複数のグループに分類するための第４分類情報とを再学習前の前記学習済モデルに入力し、
各前記第２補正量と、各前記第３同期周期と、前記第４分類情報とが前記再学習前の前記学習済モデルに入力されることにより再学習された前記学習済モデルを用いて、前記複数のスレーブ装置および前記他のスレーブ装置を第５の複数のグループに分類するための第５分類情報と、前記第５の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第４同期周期とを選択する、請求項１５に記載の通信システム。
【請求項１７】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
前記マスタ装置は、
設定された同期周期で各前記スレーブ装置と時刻同期を行ない、
各前記スレーブ装置から、前記同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、
取得した各前記補正量および前記同期周期を入力とする学習モデルを用いて、各前記スレーブ装置と時刻同期を行なう新たな同期周期を選択する、通信システム。
【請求項１８】
複数のスレーブ装置と通信可能に構成されたマスタ装置であって、
前記マスタ装置は、
第１分類情報に基づいて、各前記スレーブ装置を第１の複数のグループに分類し、
前記第１の複数のグループの各々について、当該グループ用に設定された第１同期周期で当該グループに分類された１以上のスレーブ装置と時刻同期を行ない、
前記時刻同期を行なった場合に、各前記スレーブ装置から、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の第１補正量を取得し、
各前記第１補正量、各前記第１同期周期、および前記第１分類情報を入力とする学習モデルを用いて、各前記スレーブ装置を第２の複数のグループに分類するための第２分類情報と、前記第２の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第２同期周期とを選択する、マスタ装置。
【請求項１９】
複数のスレーブ装置と通信可能に構成されたマスタ装置であって、
前記マスタ装置は、
設定された同期周期で各前記スレーブ装置と時刻同期を行ない、
各前記スレーブ装置から、前記同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、
取得した各前記補正量および前記同期周期を入力とする学習モデルを用いて、各前記スレーブ装置と時刻同期を行なう新たな同期周期を選択する、マスタ装置。
【請求項２０】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
各前記スレーブ装置は、複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、
前記マスタ装置は、
各前記スレーブ装置から、各前記同期周期についての前記補正量を取得し、
前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された各前記補正量に基づいて、前記マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、
前記複数のスレーブ装置の各々について、当該スレーブ装置の前記対応関係に基づいて、当該スレーブ装置における前記補正量の目標値に対応する目標同期周期を算出し、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を複数のグループに分類し、
前記複数のグループの各々について、当該グループに分類された１以上のスレーブ装置の中からサブマスタ装置を選定し、
前記複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における前記目標同期周期のうち最大の目標同期周期を、前記マスタ装置が当該グループにおける前記サブマスタ装置と時刻同期を行なう新たな同期周期として設定する、通信システム。
【請求項２１】
前記サブマスタ装置は、
前記新たな同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該サブマスタ装置の時刻との差の補正量を示す第１時刻補正量を算出し、
前記新たな同期周期で前記サブマスタ装置と同じグループに分類されている各スレーブ装置と時刻同期を行ない、
前記同じグループに分類されている各スレーブ装置から、前記新たな同期周期で前記サブマスタ装置と時刻同期を行なった場合における、前記サブマスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を示す第２時刻補正量を取得し、
前記第１時刻補正量と、各前記第２時刻補正量を前記マスタ装置に送信する、請求項２０に記載の通信システム。
【請求項２２】
マスタ装置および複数のスレーブ装置と通信可能に構成されたサブマスタ装置であって、
前記サブマスタ装置は、
設定された同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と前記サブマスタ装置の時刻との差の補正量を示す第１時刻補正量を算出し、
前記同期周期で前記複数のスレーブ装置と時刻同期を行ない、
各前記スレーブ装置から、前記同期周期で前記サブマスタ装置と時刻同期を行なった場合における、前記サブマスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を示す第２時刻補正量を取得し、
前記第１時刻補正量と、各前記第２時刻補正量を前記マスタ装置に送信する、サブマスタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、マスタ装置と複数のスレーブ装置とを含む通信システム、マスタ装置、スレーブ装置、およびサブマスタ装置に関する。
【背景技術】
【０００２】
ネットワークに含まれる各装置の時刻を高精度に合わせて、各装置を同期制御したり、分散制御したりすることが求められている。ネットワークにつながる装置間で時刻の同期をとる方式の代表的なものとして、ＩＥＥＥ１５８８の規格で定められているＰＴＰ（Precision  Timer  Protocol）を用いる方式が知られている。【０００３】
例えば、特開２０１５−６８８０６号公報（特許文献１）は、マスタ装置と複数のスレーブ装置と備えた時刻同期システムを開示している。この時刻同期システムでは、複数のスレーブ装置は、マスタ装置から第１の時刻同期用メッセージを受信する。マスタ装置は、代表スレーブ装置から第１の時刻同期用メッセージに対する応答メッセージである第２の時刻同期用メッセージを受信し、第２の時刻同期用メッセージに対する応答メッセージである第３の時刻同期用メッセージを時刻同期システムに送信する。複数のスレーブ装置は、第１の時刻同期用メッセージおよび第３の時刻同期用メッセージに含まれる情報に基づいて、自己の保持する時刻を補正する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−６８８０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に係る時刻同期システムでは、上述した構成により時刻同期の精度を下げることなく、ネットワークトラフィックの負荷を低減することを検討している。しかし、マスタ装置から送信されるＰＴＰメッセージの送信間隔は一定であり、この観点から改善の余地があると考えられる。【０００６】
本開示のある局面における目的は、マスタ装置を複数のスレーブ装置とを含む通信システムにおいて、時刻同期の精度を確保しつつ、時刻同期メッセージの通信量を削減することによりネットワークの負荷を軽減することである。
【課題を解決するための手段】
【０００７】
ある実施の形態に従う通信システムは、マスタ装置と、マスタ装置から送信される時刻同期メッセージに基づいてマスタ装置と時刻同期を行なう複数のスレーブ装置とを備える。各スレーブ装置は、複数の同期周期の各々について、当該同期周期でマスタ装置と時刻同期を行なった場合における、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶する。マスタ装置は、各スレーブ装置から、各同期周期についての補正量を取得し、複数のスレーブ装置の各々について、当該スレーブ装置から取得された各補正量に基づいて、マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、複数のスレーブ装置の各々について、当該スレーブ装置の対応関係に基づいて、当該スレーブ装置における補正量の目標値に対応する目標同期周期を算出し、各スレーブ装置における目標同期周期に基づいて、各スレーブ装置を複数のグループに分類し、複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における目標同期周期のうち最大の目標同期周期を、マスタ装置が１以上のスレーブ装置と時刻同期を行なう新たな同期周期として設定する。【０００８】
他の実施の形態に従うと、複数のスレーブ装置と通信可能に構成されたマスタ装置が提供される。マスタ装置は、各スレーブ装置から、複数の同期周期の各々について、当該同期周期でマスタ装置と時刻同期を行なった場合における、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、複数のスレーブ装置の各々について、当該スレーブ装置から取得された各補正量に基づいて、マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、複数のスレーブ装置の各々について、当該スレーブ装置の対応関係に基づいて、当該スレーブ装置における補正量の目標値に対応する目標同期周期を算出し、各スレーブ装置における目標同期周期に基づいて、各スレーブ装置を複数のグループに分類し、複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における目標同期周期のうち最大の目標同期周期を、マスタ装置が１以上のスレーブ装置と時刻同期を行なう新たな同期周期として設定する。【０００９】
さらに他の実施の形態に従うと、マスタ装置と通信可能に構成されたスレーブ装置が提供される。スレーブ装置は、複数の同期周期の各々について、当該同期周期でマスタ装置と時刻同期を行なった場合における、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、各同期周期についての補正量をマスタ装置に送信し、各補正量に基づいてマスタ装置により設定された新たな同期周期でマスタ装置と時刻同期を実行する。【００１０】
さらに他の実施の形態に従う通信システムは、マスタ装置と、マスタ装置から送信される時刻同期メッセージに基づいてマスタ装置と時刻同期を行なう複数のスレーブ装置とを備える。マスタ装置は、第１分類情報に基づいて、各スレーブ装置を第１の複数のグループに分類し、第１の複数のグループの各々について、当該グループに設定された第１同期周期で当該グループに分類された１以上のスレーブ装置と時刻同期を行ない、時刻同期を行なった場合に、各スレーブ装置から、マスタ装置の時刻と当該スレーブ装置の時刻との差の第１補正量を取得し、各第１補正量、各第１同期周期、および第１分類情報を入力とする学習モデルを用いて、各スレーブ装置を第２の複数のグループに分類するための第２分類情報と、第２の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置とマスタ装置が時刻同期を行なう新たな第２同期周期とを選択する。【００１１】
さらに他の実施の形態に従う通信システムは、マスタ装置と、マスタ装置から送信される時刻同期メッセージに基づいてマスタ装置と時刻同期を行なう複数のスレーブ装置とを備える。マスタ装置は、設定された同期周期で各スレーブ装置と時刻同期を行ない、各スレーブ装置から、当該同期周期でマスタ装置と時刻同期を行なった場合における、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、取得した各補正量および当該同期周期とを入力とする学習モデルを用いて、各スレーブ装置と時刻同期を行なう新たな同期周期を選択する。【００１２】
さらに他の実施の形態に従うと、複数のスレーブ装置と通信可能に構成されたマスタ装置が提供される。マスタ装置は、第１分類情報に基づいて、各スレーブ装置を第１の複数のグループに分類し、第１の複数のグループの各々について、当該グループ用に設定された第１同期周期で当該グループに分類された１以上のスレーブ装置と時刻同期を行ない、時刻同期を行なった場合に、各スレーブ装置から、マスタ装置の時刻と当該スレーブ装置の時刻との差の第１補正量を取得し、各第１補正量、各第１同期周期、および第１分類情報を入力とする学習モデルを用いて、各スレーブ装置を第２の複数のグループに分類するための第２分類情報と、第２の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置とマスタ装置が時刻同期を行なう新たな第２同期周期とを選択する。【００１３】
さらに他の実施の形態に従うと、複数のスレーブ装置と通信可能に構成されたマスタ装置が提供される。マスタ装置は、設定された同期周期で各スレーブ装置と時刻同期を行ない、各スレーブ装置から、当該同期周期でマスタ装置と時刻同期を行なった場合における、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、取得した各補正量および当該同期周期とを入力とする学習モデルを用いて、各スレーブ装置と時刻同期を行なう新たな同期周期を選択する。【００１４】
さらに他の実施の形態に従う通信システムは、マスタ装置と、マスタ装置から送信される時刻同期メッセージに基づいてマスタ装置と時刻同期を行なう複数のスレーブ装置とを備える。各スレーブ装置は、複数の同期周期の各々について、当該同期周期でマスタ装置と時刻同期を行なった場合における、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶する。マスタ装置は、各スレーブ装置から、各同期周期についての補正量を取得し、複数のスレーブ装置の各々について、当該スレーブ装置から取得された各補正量に基づいて、マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、複数のスレーブ装置の各々について、当該スレーブ装置の対応関係に基づいて、当該スレーブ装置における補正量の目標値に対応する目標同期周期を算出し、各スレーブ装置における目標同期周期に基づいて、各スレーブ装置を複数のグループに分類し、複数のグループの各々について、当該グループに分類された１以上のスレーブ装置の中からサブマスタ装置を選定し、複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における目標同期周期のうち最大の目標同期周期を、マスタ装置が当該グループにおけるサブマスタ装置と時刻同期を行なう新たな同期周期として設定する。【００１５】
さらに他の実施の形態に従うと、マスタ装置および複数のスレーブ装置と通信可能に構成されたサブマスタ装置が提供される。サブマスタ装置は、設定された同期周期でマスタ装置と時刻同期を行なった場合における、マスタ装置の時刻とサブマスタ装置の時刻との差の補正量を示す第１時刻補正量を算出し、当該同期周期で複数のスレーブ装置と時刻同期を行ない、各スレーブ装置から、当該同期周期でサブマスタ装置と時刻同期を行なった場合における、サブマスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を示す第２時刻補正量を取得し、第１時刻補正量と、各第２時刻補正量をマスタ装置に送信する。
【発明の効果】
【００１６】
本開示によると、マスタ装置を複数のスレーブ装置とを含む通信システムにおいて、時刻同期の精度を確保しつつ、時刻同期メッセージの通信量を削減することによりネットワークの負荷を軽減することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１に従う通信システムの全体構成の一例を示す図である。
【図２】実施の形態１に従うマスタ装置のハードウェア構成を示すブロック図である。
【図３】実施の形態１に従うマスタ装置とスレーブ装置との間における時刻同期の手順の一例を示すシーケンス図である。
【図４】実施の形態１に従う通信システムにおける初期状態の構成を示す図である。
【図５】単一のスレーブ装置についての同期周期および補正量の関係を示す散布図である。
【図６】各スレーブ装置についての同期周期および補正量の関係を示す散布図である。
【図７】実施の形態１に従う通信システムにおける、同期周期が最適化された状態の構成を示す図である。
【図８】実施の形態１に従うマスタ装置の機能構成を示す模式図である。
【図９】実施の形態１に従うマスタ装置の処理手順の一例を示すフローチャートである。
【図１０】実施の形態１に従うマスタ装置の処理手順の他の例を示すフローチャートである。
【図１１】実施の形態２に従う分類方式を説明するための図である。
【図１２】実施の形態２に従うマスタ装置により実行される分類処理の一例を示すフローチャートである。
【図１３】実施の形態３に従う通信システムにおけるネットワーク構成の一例を説明するための図である。
【図１４】実施の形態３に従う通信システムにおける変更後のネットワーク構成を示す図である。
【図１５】実施の形態３に従うマスタ装置の機能構成を示すブロック図である。
【図１６】実施の形態３に従うマスタ装置の処理手順の一例を示すフローチャートである。
【図１７】実施の形態３のその他の利点を説明するためのイメージ図である。
【図１８】強化学習アルゴリズムの基本的な概念を説明するための図である。
【図１９】実施の形態４に従うマスタ装置の機械学習器の入力パラメータおよび出力パラメータを説明するための図である。
【図２０】実施の形態４に従う報酬基準を説明するための図である。
【図２１】機械学習器の学習によりネットワーク負荷が軽減されていく過程を説明するための図である。
【図２２】機械学習器の学習により時刻同期の補正量が目標範囲に収束していく過程を説明するための図である。
【図２３】実施の形態４に従うマスタ装置の機能構成を示す模式図である。
【図２４】実施の形態４に従うマスタ装置の処理手順の一例を示すフローチャートである。
【図２５】実施の形態５に従うマスタ装置の機能構成を説明するための図である。
【図２６】オーバー回数のカウント方式を説明するための図である。
【図２７】実施の形態５に従うマスタ装置の処理手順の一例を示すフローチャートである。
【図２８】実施の形態６に従う通信システムにおいて、同期周期が最適化された状態の構成を示す図である。
【図２９】実施の形態６に従うサブマスタ装置の機能構成を示す模式図である。
【図３０】実施の形態６に従うマスタ装置およびサブマスタ装置の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１９】
実施の形態１．
＜システム構成＞
図１は、実施の形態１に従う通信システム１００の全体構成の一例を示す図である。通信システム１００は、マスタ装置１と、ネットワーク３を介してマスタ装置１と通信する複数のスレーブ装置２とを含む。
【００２０】
マスタ装置１は、通信システム１００において、時刻同期の基準となる時刻情報を管理する装置であり、例えば、ＩＥＥＥ１５８８のマスタ装置として動作する。スレーブ装置２は、マスタ装置１から送信される時刻同期メッセージ（例えば、ＰＴＰメッセージ）に基づいて時刻同期を実行するスレーブ装置として動作する。
【００２１】
図２は、実施の形態１に従うマスタ装置１のハードウェア構成を示すブロック図である。典型的には、マスタ装置１およびスレーブ装置２は、同様のハードウェア構成を有するネットワーク機器である。ここでは、代表してマスタ装置１のハードウェア構成について説明する。
【００２２】
図２を参照して、マスタ装置１は、ＣＰＵ１１と、メモリ１２と、ネットワークインターフェイス１３とを含む。これらは、バス１４で結合されている。
【００２３】
ＣＰＵ１１は、メモリ１２に記憶されたプログラムを読み出して実行することで、マスタ装置１の各部の動作を制御する。ＣＰＵ１１は、当該プログラムを実行することによって、後述するマスタ装置１の処理の各々を実現する。なお、マスタ装置１は、複数のＣＰＵ１１を有していてもよい。
【００２４】
メモリ１２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read-Only  Memory）、フラッシュメモリなどによって実現される。メモリ１２は、ＣＰＵ１１によって実行されるプログラム、またはＣＰＵ１１によって用いられるデータなどを記憶する。
【００２５】
ネットワークインターフェイス１３には、有線または無線で構成されるネットワーク３が接続される。マスタ装置１は、ネットワークインターフェイス１３およびネットワーク３を介して、スレーブ装置２と通信する。
【００２６】
図３は、実施の形態１に従うマスタ装置１とスレーブ装置２との間における時刻同期の手順の一例を示すシーケンス図である。具体的には、図２に示す手順は、ＩＥＥＥ１５８８に従う時刻同期手順である。図２に示す各処理は、主に、マスタ装置１およびスレーブ装置２のＣＰＵ１１によって実行される。
【００２７】
マスタ装置１は、Syncメッセージをスレーブ装置２に送信する（シーケンスＳＱ２）。このとき、マスタ装置１は、Syncメッセージの送信時刻ｔ１をメモリ１２に記憶する。スレーブ装置２は、Syncメッセージを受信し、その受信時刻ｔ２をメモリ１２に記憶する。
【００２８】
マスタ装置１は、Syncメッセージの送信時刻ｔ１をメモリ１２から読み出して、送信時刻ｔ１を格納したFollow_Upメッセージをスレーブ装置２に送信する（シーケンスＳＱ４）。スレーブ装置２は、受信したFollow_Upメッセージに格納された送信時刻ｔ１をメモリ１２に記憶する。なお、マスタ装置１は、送信時刻ｔ１が格納されたSyncメッセージをスレーブ装置２に送信する構成であってもよい。
【００２９】
スレーブ装置２は、マスタ装置１にDelay_Reqメッセージを送信する（シーケンスＳＱ６）。スレーブ装置２は、Delay_Reqメッセージの送信時刻ｔ３をメモリ１２に記憶する。マスタ装置１は、Delay_Reqメッセージを受信し、その受信時刻ｔ４を記憶する。
【００３０】
マスタ装置１は、受信時刻ｔ４を格納したDelay_Respメッセージをスレーブ装置２に送信する（シーケンスＳＱ８）。スレーブ装置２は、受信したDelay_Respメッセージに格納された受信時刻ｔ４をメモリ１２に記憶する。
【００３１】
上述のシーケンスにより、スレーブ装置２のメモリ１２には、送信時刻ｔ１，ｔ３および受信時刻ｔ２，ｔ４が記憶されている。
【００３２】
スレーブ装置２は、送信時刻ｔ１と受信時刻ｔ２との差（すなわち、「ｔ２−ｔ１」）を計算することにより、マスタ装置１からスレーブ装置２への伝送路について、マスタ装置１およびスレーブ装置２の各時刻のずれと伝送路遅延との和を取得する。また、スレーブ装置２は、送信時刻ｔ３と受信時刻ｔ４との差（すなわち、「ｔ４−ｔ３」）を計算することにより、スレーブ装置２からマスタ装置１への伝送路について、マスタ装置１およびスレーブ装置２の各時刻のずれと伝送路遅延との和を取得する。
【００３３】
また、時刻差“ｔ４−ｔ３”と時刻差“ｔ２−ｔ１”との和は、伝送路遅延の二倍の時間に相当する。時刻差“ｔ４−ｔ３”と時刻差“ｔ２−ｔ１”との差は、マスタ装置１の時刻（以下「マスタ時刻」とも称する。）とスレーブ装置２の時刻（以下「スレーブ時刻」とも称する。）とのずれの二倍の時間に相当する。ここで、ＩＥＥＥ１５８８プロトコルの伝送路の遅延計算では、マスタ装置１とスレーブ装置２との間の伝送遅延は、往路と復路で等価であると仮定する。したがって、単一方向の伝送路の遅延時間ｔｄは、以下の式（１）のように表わされる。
【００３４】
ｔｄ＝｛（ｔ４−ｔ３）＋（ｔ２−ｔ１）｝／２・・・（１）
また、マスタ時刻とスレーブ時刻との時刻差ｔｄｉｆｆは、以下の式（２）のように表わされる。
【００３５】
ｔｄｉｆｆ＝｛（ｔ４−ｔ３）−（ｔ２−ｔ１）｝／２・・・（２）
スレーブ装置２は、時刻差ｔｄｉｆｆを時刻同期の補正量として、自装置の時刻を補正することにより、マスタ装置１との時刻同期を実施する。
【００３６】
このように、マスタ装置１およびスレーブ装置２間の時刻同期においては、ＰＴＰメッセージの往復の遅延が等しい、あるいは往復の遅延に時間差がある場合でも、その時間差が既知であることを前提としている。
【００３７】
しかし、各装置のネットワークインターフェイス１３内に含まれるクロック発振器のジッタ、ネットワーク３から各装置内のクロックへの載せ替え、各装置を使用する周辺環境の温度変化等の要因により、遅延時間ｔｄおよび時刻差ｔｄｉｆｆは、測定を行なう度にバラツキが生じる。そのため、マスタ時刻とスレーブ時刻とのずれを防ぎ、マスタ装置１とスレーブ装置２との時刻同期の精度を確保するためには、定期的にマスタ装置１とスレーブ装置２との間で図３に示す時刻同期に係る処理を実行する必要がある。
【００３８】
一方、マスタ装置１に多数のスレーブ装置２が接続されたネットワーク構成において高い時刻同期精度を保つためには、短い周期で時刻同期に係る処理を実行して、マスタ時刻とスレーブ時刻との時刻補正を行なう必要がある。この場合、マスタ装置１と各スレーブ装置２との間で頻繁にＰＴＰメッセージが送受信されるため、ネットワーク負荷が増大してしまう。
【００３９】
そこで、本実施の形態に従う通信システム１００では以下のような処理が実行される。まず、マスタ装置１は、ある同期周期で、各スレーブ装置２と時刻同期を実施する。各スレーブ装置２は、当該同期周期で時刻同期を行なった場合における、マスタ時刻とスレーブ時刻との時刻差の補正量を記憶する。他の同期周期でも同様の時刻同期が実施され、各スレーブ装置２は、他の補正量を記憶する。
【００４０】
マスタ装置１は、各スレーブ装置２から取得した複数の補正量に基づいて、各スレーブ装置２について、同期周期および補正量の対応関係を求める。マスタ装置１は、各スレーブ装置２における当該対応関係に基づいて、各スレーブ装置２について、補正量の目標値（以下「目標補正量」とも称する。）に対応する目標同期周期を算出する。目標補正量は、マスタ時刻とスレーブ時刻との最大許容時刻差に相当する。換言すると、目標補正量は、要求される時刻同期精度である。
【００４１】
マスタ装置１は、各スレーブ装置２における目標同期周期に基づいて、各スレーブ装置２を複数のグループに分類する。マスタ装置１は、各グループについて、当該グループに分類された複数のスレーブ装置２における目標同期周期のうち最大の目標同期周期を、当該複数のスレーブ装置２がマスタ装置１と時刻同期を行なう新たな同期周期として設定する。これにより、マスタ装置１と各スレーブ装置２との間の同期周期が全体として最適化され、時刻同期精度を確保しつつネットワーク負荷を軽減することができる。以下、通信システム１００の構成および処理について、より詳細に説明する。
【００４２】
＜同期周期の設定方式＞
図４は、実施の形態１に従う通信システム１００における初期状態の構成を示す図である。図４中の「ＭＡ」はマスタ装置を表わしており、「ＳＬ」はスレーブ装置を表わしている。以下では、説明の容易化のため、通信システム１００は１３個のスレーブ装置２を含むものとし、１３個のスレーブ装置２に対して、便宜上、＃１〜＃１３の番号を付与してそれぞれを区別する。具体的には、１３個のスレーブ装置２は、それぞれスレーブ♯１〜♯１３とも称される。
【００４３】
図４では、マスタ装置１と、各スレーブ＃１〜＃１３とが同一の同期周期Ｘｉで時刻同期を実行する例が示されている。この場合、マスタ装置１と各スレーブ＃１〜＃１３との間の同期周期が最適化されていないため、時刻同期精度を確保しようとするとネットワーク負荷が増大する。
【００４４】
そのため、通信システム１００では、マスタ装置１と各スレーブ装置２との間の同期周期を最適化する処理が実行される。まず、マスタ装置１は、複数の同期周期（例えば、同期周期Ｘ１，Ｘ２，Ｘ３）の各々で、各スレーブ♯１〜♯１３と時刻同期を実施する。典型的には、マスタ装置１は、各同期周期Ｘ１〜Ｘ３で、各スレーブ♯１〜♯１３と時刻同期を複数回実行する。
【００４５】
同期周期は、時刻同期精度（例えば、±１μｓ）を確保可能な最大同期周期を超えないように変更される。具体的には、各同期周期Ｘ１〜Ｘ３は最大同期周期よりも短い。最大同期周期は、発振器のクロック精度、エラスティックバッファでのクロックの載せ替え等による、マスタ時刻および各スレーブ時刻のバラツキ要因を考慮して算出される理論値である。
【００４６】
各スレーブ＃１〜＃１３は、同期周期Ｘ１で時刻同期を実施した際に、式（２）を用いて算出したマスタ時刻とスレーブ時刻との時間差に相当する補正量Ｙ１を、同期周期Ｘ１と関連付けて記憶する。
【００４７】
同様に、各スレーブ＃１〜＃１３は、同期周期Ｘ２で時刻同期を実施した際に算出した補正量Ｙ２を同期周期Ｘ２と関連付けて記憶し、同期周期Ｘ３で時刻同期を実施した際に算出した補正量Ｙ３を同期周期Ｘ３と関連付けて記憶する。なお、典型的には、１つの同期周期につき、時刻同期が複数回実施されているため、各スレーブ♯１〜♯１３は、複数回分の補正量Ｙ１〜Ｙ３を記憶する。
【００４８】
マスタ装置１は、各スレーブ＃１〜＃１３から、複数回分の補正量Ｙ１〜Ｙ３を取得する。マスタ装置１は、各スレーブ＃１〜＃１３について、複数回分の補正量Ｙ１〜Ｙ３に基づいて、同期周期と補正量との対応関係を求める。
【００４９】
図５は、単一のスレーブ装置についての同期周期および補正量の関係を示す散布図である。横軸は同期周期を示しており、縦軸は時刻同期の補正量の絶対値である。説明の容易化のため、補正量を絶対値化しているが、そうでなくてもよい。以下の説明では、補正量の絶対値を、単に「補正量」と記載する。図５では、例えば、スレーブ♯１について、同期周期および補正量の対応関係の算出方式について説明する。
【００５０】
図５を参照して、同期周期Ｘ１に対応する補正量Ｙ１を示す点が複数個プロットされている。これは、複数回分の補正量Ｙ１に対応する。同様に、同期周期Ｘ２に対応する補正量Ｙ２を示す点、同期周期Ｘ３に対応する補正量Ｙ３を示す点がそれぞれ複数個プロットされている。
【００５１】
ここで、スレーブ♯１で算出された補正量Ｙ１〜Ｙ３のバラツキが正規分布に従うとする。マスタ装置１は、複数の補正量Ｙ１の平均値μ１および標準偏差σ１と、複数の補正量Ｙ２の平均値μ２および標準偏差σ２と、複数の補正量Ｙ３の平均値μ３および標準偏差σ３とを算出する。
【００５２】
マスタ装置１は、同期周期に対して、平均値と標準偏差との加算値を直線近似した一次関数を求める。具体的には、マスタ装置１は、座標点（Ｘ１，μ１＋Ｎ×σ１）、座標点（Ｘ２，μ２＋Ｎ×σ２）、座標点（Ｘ３，μ３＋Ｎ×σ３）を直線近似した一次関数５０１を求める。図５の例ではＮ＝７である。ただし、Ｎ＞０であればよい。
【００５３】
“μ１＋Ｎ×σ１”は補正量Ｙ１のずれを許容する限界値に対応し、“μ２＋Ｎ×σ２”は補正量Ｙ２のずれを許容する限界値に対応し、“μ３＋Ｎ×σ３”は補正量Ｙ３のずれを許容する限界値に対応する。Ｎが大きくなると、補正量が限界値内に含まれる確率が大きくなる（すなわち、限界値から外れる確率が小さくなる）。Ｎの値は、補正量のバラツキの許容量に応じて適宜決定すればよい。
【００５４】
図６は、各スレーブ装置についての同期周期および補正量の関係を示す散布図である。マスタ装置１は、各スレーブ♯１〜♯１３について図５で説明した処理を実行する。そうすると、図６に示すように、各スレーブ♯１〜♯１３における１３個の一次関数が得られる。図６中では、スレーブ♯ｍに対応する一次関数を「Ｌ♯ｍ」で示している。例えば、図５で示したスレーブ♯１における一次関数５０１は、図６中の一次関数Ｌ♯１に対応している。
【００５５】
マスタ装置１は、補正量の目標値である目標補正量Ｙｓを設定する。具体的には、目標補正量Ｙｓは、要求される（すなわち、目標とされる）時刻同期精度に相当する。マスタ装置１は、各一次関数Ｌ♯１〜Ｌ♯１３と、目標補正量Ｙｓとの交点を求める。図６では、各交点が黒丸で示されている。ここで、一次関数Ｌ♯ｍと目標補正量Ｙｓとの交点Ｐ♯ｍにおける同期周期を目標同期周期Ｘ♯ｍで表わす。例えば、交点Ｐ♯１の座標は（Ｘ♯１，Ｙｓ）である。
【００５６】
マスタ装置１は、各目標同期周期Ｘ♯１〜♯１３を用いて、各スレーブ♯１〜♯１３を複数のグループに分類する。この分類には、例えば、クラスタ分析のアルゴリズムであるｋ平均法（k-means法）が用いられる。なお、作成するグループの数をＨとする。グループの数は適用するアルゴリズムによって異なる。
【００５７】
まず、１）各スレーブ♯１〜♯１３に対して任意のグループをランダムに割り振る。続いて、２）Ｈ個のグループの各々に対応するクラスタ中心であるＶｊ（１≦ｊ≦Ｈ）を計算する。クラスタ中心は、対応するグループに属する全スレーブの特徴量の平均値である。ここで、特徴量は目標同期周期である。さらに、３）各スレーブ♯１〜♯１３の特徴量と各Ｖｊとの距離を算出し、各スレーブ♯１〜♯１３を各Ｖｊの中で最も近いＶｊに対応するグループに割り当て直す。
【００５８】
上記の１）〜３）の処理ですべてのスレーブ♯１〜♯１３のグループの割り当てが変化しなかった場合（すなわち、各スレーブ♯１〜♯１３について、当該スレーブが割り当てられたグループと、当該スレーブが既に割り当てられているグループとが一致している場合）に収束したと判断して、分類処理を終了する。そうでない場合には、新しく割り当てられたグループのクラスタ中心Ｖｊを再計算して、上記３）の処理を繰り返す。
【００５９】
このような分類処理により、マスタ装置１は、各スレーブ♯１〜♯１３を複数のグループに分類する。図６の例では、３つのグループＡ〜Ｃに各スレーブ♯１〜♯１３が分類されている。具体的には、スレーブ♯４，♯７，♯９，♯１３がグループＡに分類され、スレーブ♯５，♯６，♯８，♯１０がグループＢに分類され、スレーブ♯１，♯２，♯３，♯１１，♯１２がグループＣに分類される。
【００６０】
マスタ装置１は、各グループＡ〜Ｃについて、当該グループに分類された全スレーブにおける目標同期周期のうち最大の目標同期周期を算出する。具体的には、グループＡに分類されたスレーブ♯４，♯７，♯９，♯１３における目標同期周期Ｘ♯４，Ｘ♯７，Ｘ♯９，Ｘ♯１３のうち最大の目標同期周期Ｘａは、目標同期周期Ｘ♯１３である。同様に、グループＢにおける最大の目標同期周期Ｘｂは目標同期周期Ｘ♯６であり、グループＣにおける最大の目標同期周期Ｘｃは目標同期周期Ｘ♯２である。
【００６１】
マスタ装置１は、グループＡに属する各スレーブ♯４，♯７，♯９，♯１３と時刻同期を行なう新たな同期周期として目標同期周期Ｘａを設定する。また、マスタ装置１は、グループＢに属する各スレーブ♯５，♯６，♯８，♯１０と時刻同期を行なう新たな同期周期として目標同期周期Ｘｂを設定し、グループＣに属する各スレーブ♯１，♯２，♯３，♯１１，♯１２と時刻同期を行なう新たな同期周期として目標同期周期Ｘｃを設定する。このように、各グループにおいて、最大の目標同期周期を新たな同期周期として設定する理由は、グループ内の各スレーブ装置２が補正量の目標値を確実に満たせるようにするためである。
【００６２】
そして、マスタ装置１は、新たな同期周期Ｘａで、グループＡに属する各スレーブ装置２とＰＴＰメッセージを送受信して時刻同期を実行する。同様に、マスタ装置１は、同期周期ＸｂでグループＢに属する各スレーブ装置２と時刻同期を実行し、同期周期ＸｃでグループＣに属する各スレーブ装置２と時刻同期を実行する。このように、マスタ装置１は、グループ毎に異なる同期周期で時刻同期を実行する。
【００６３】
図７は、実施の形態１に従う通信システム１００における、同期周期が最適化された状態の構成を示す図である。図４に示すように、通信システム１００における初期状態の構成では、マスタ装置１が、同期周期Ｘｉで各スレーブ♯１〜♯１３と時刻同期を実施していた。図６に示すように、同期周期Ｘａは同期周期Ｘｉよりも少し短い。そのため、マスタ装置１とグループＡに属する各スレーブ装置２との間で時刻同期を実行した際のネットワーク負荷（すなわち、ＰＴＰメッセージの通信量）は少し大きくなる。
【００６４】
しかし、同期周期Ｘｂは同期周期Ｘｉよりも長く、同期周期Ｘｃは同期周期Ｘｉよりもかなり長いため、マスタ装置１とグループＢ，Ｃに属する各スレーブ装置２との間で時刻同期を実行した際のネットワーク負荷はかなり小さくなる。したがって、本実施の形態に従う通信システム１００によると、マスタ装置１と各スレーブ♯１〜♯１３との間でのＰＴＰメッセージの通信量を全体として削減でき、ネットワーク負荷を軽減できる。
【００６５】
＜機能構成＞
図８は、実施の形態１に従うマスタ装置１の機能構成を示す模式図である。図８を参照して、マスタ装置１は、主な機能構成として、時刻同期通信部１０１と、補正量取得部１０３と、関係算出部１０５と、目標同期周期算出部１０７と、分類部１０９と、設定部１１１とを含む。典型的には、これらの各機能は、ＣＰＵ１１がメモリ１２に格納されたプログラムを実行することによって実現される。なお、これらの機能の一部または全部は専用の回路を用いることによって実現されるように構成されていてもよい。
【００６６】
スレーブ装置２は、時刻同期通信部２０１と、補正量算出部２０３と、時刻カウンタ２０５と、補正量送信部２０７とを含む。典型的には、これらの各機能は、スレーブ装置２のＣＰＵがメモリに格納されたプログラムを実行することによって実現される。なお、これらの機能の一部または全部は専用の回路を用いることによって実現されるように構成されていてもよい。
【００６７】
時刻同期通信部１０１は、複数の同期周期（例えば、同期周期Ｘ１〜Ｘ３）の各々で、各スレーブ装置２の時刻同期通信部２０１と時刻同期を実行する。具体的には、時刻同期通信部１０１は、図３に示すシーケンスに従って、各スレーブ装置２の時刻同期通信部２０１とＰＴＰメッセージを送受信する。
【００６８】
時刻同期通信部２０１は、受信したＰＴＰメッセージに従って、マスタ時刻とスレーブ時刻との時刻差の補正量の算出指示を補正量算出部２０３に与える。補正量算出部２０３は、当該算出指示に従って、複数の同期周期の各々について、当該同期周期でマスタ装置１と時刻同期を行なった場合における、マスタ時刻とスレーブ時刻との時刻差の補正量を算出する。
【００６９】
時刻カウンタ２０５は、算出された時刻同期の補正量を用いてスレーブ装置２の時刻を補正することにより、マスタ装置１との時刻同期を実施する。補正量送信部２０７は、複数の同期周期の各々についての補正量をマスタ装置１に送信する。なお、各スレーブ装置２は、複数の同期周期の各々について、当該同期周期でマスタ装置１と時刻同期を行なった場合における、マスタ時刻とスレーブ時刻との時刻差の補正量を記憶する。一例として、各スレーブ装置２は、各補正量をメモリ１２に記憶する。
【００７０】
典型的には、時刻同期通信部１０１は、各同期周期で、各スレーブ装置２と時刻同期を複数回実行する。したがって、各スレーブ装置２は、複数の同期周期の各々について、当該同期周期でマスタ装置１と時刻同期を複数回実行し、複数回分の各補正量を記憶する。
【００７１】
補正量取得部１０３は、各スレーブ装置２から、各同期周期についての補正量を取得する。具体的には、補正量取得部１０３は、ネットワークインターフェイス１３を介して、各スレーブ装置２から送信される各補正量を受信する。
【００７２】
関係算出部１０５は、各スレーブ装置２について、当該スレーブ装置２から取得された各補正量に基づいて、マスタ装置１が当該スレーブ装置２と時刻同期を行なう同期周期と、マスタ時刻とスレーブ時刻との時刻差の補正量との対応関係を算出する。
【００７３】
具体的には、関係算出部１０５は、複数のスレーブ装置２の各々について、当該スレーブ装置２から取得された複数回分の各補正量に基づいて、当該スレーブ装置２における対応関係を算出する。当該スレーブ装置２における対応関係は、当該スレーブ装置２がマスタ装置１と時刻同期を行なう同期周期に対して、複数回分の補正量の平均値および標準偏差の加算値（例えば、μ＋Ｎ×σ）を直線近似した一次関数（例えば、一次関数５０１）である。
【００７４】
目標同期周期算出部１０７は、複数のスレーブ装置２の各々について、当該スレーブ装置２の対応関係に基づいて、当該スレーブ装置２における目標補正量Ｙｓに対応する目標同期周期（例えば、目標同期周期Ｘ♯１〜Ｘ♯１３）を算出する。具体的には、目標同期周期算出部１０７は、複数のスレーブ装置２の各々について、当該スレーブ装置２における一次関数と目標補正量Ｙｓとに基づいて、当該スレーブ装置２における目標同期周期を算出する。
【００７５】
分類部１０９は、各スレーブ装置２における目標同期周期（例えば、目標同期周期Ｘ♯１〜Ｘ♯１３）に基づいて、各スレーブ装置２を複数のグループ（例えば、グループＡ〜Ｃ）に分類する。具体的には、分類部１０９は、複数のスレーブ装置２の各々について、当該スレーブ装置２における目標同期周期と各グループに対応するクラスタ中心との距離を算出し、当該距離が最も小さくなるクラスタ中心に対応するグループに当該スレーブ装置を分類する。例えば、分類部１０９は、上述の分類手順に従って、各スレーブ装置２を複数のグループのいずれかに分類する。分類部１０９は、各スレーブ装置２がどのグループに分類されたのかを示す分類情報を設定部１１１に出力する。分類情報は、例えば、グループ数、各グループに属するスレーブ装置２の数、および、各グループに属するスレーブ装置２の識別情報（例えば、♯１〜♯１３等の装置番号）を含む。
【００７６】
設定部１１１は、複数のグループの各々について、当該グループ（例えば、グループＡ）に分類された１以上のスレーブ装置２における目標同期周期のうち最大の目標同期周期（例えば、目標同期周期Ｘａ）を算出する。設定部１１１は、当該最大の目標同期周期を、マスタ装置１が当該１以上のスレーブ装置と時刻同期を行なう新たな同期周期として設定する。時刻同期通信部１０１は、設定部１１１によってグループごとに設定された新たな同期周期で、各グループに属する複数のスレーブ装置２と時刻同期を実行する。
【００７７】
スレーブ装置２の時刻同期通信部２０１は、各補正量に基づいてマスタ装置１により設定された新たな同期周期でマスタ装置１と時刻同期を実行する。補正量算出部２０３は、新たな同期周期で時刻同期を行なった場合における補正量を算出する。補正量送信部２０７は、当該補正量をマスタ装置１へ送信する。
【００７８】
マスタ装置１の設定部１１１により新たな同期周期が設定された後、補正量取得部１０３は、各スレーブ装置２から補正量を取得する。具体的には、補正量取得部１０３は、新たな同期周期で時刻同期を行なった場合における補正量を取得する。
【００７９】
監視部１１３は、複数のスレーブ装置２から取得された複数の補正量のうち少なくとも１つが目標補正量Ｙｓ以上であるか否かを監視する。監視部１１３は、監視結果を時刻同期通信部１０１に出力する。すなわち、監視部１１３は、新たに設定した同期周期で時刻同期が実行される場合に、要求された時刻同期精度が満たされているか否かを監視する。
【００８０】
時刻同期通信部１０１は、各補正量のうちの少なくとも１つが目標補正量Ｙｓ以上であるとの監視結果の入力を受け付けた場合、再度、複数の同期周期の各々で、各スレーブ装置２と時刻同期を実行する。以下、補正量取得部１０３、関係算出部１０５、目標同期周期算出部１０７、分類部１０９および設定部１１１の各処理が再度実行されることにより、新たな同期周期が再度設定される。
【００８１】
＜処理手順＞
図９は、実施の形態１に従うマスタ装置１の処理手順の一例を示すフローチャートである。以下の各ステップは、典型的には、マスタ装置１のＣＰＵ１１がメモリ１２に格納されたプログラムを実行することによって実現される。
【００８２】
図９を参照して、マスタ装置１は、複数の同期周期の各々で、スレーブ装置２と時刻同期を実行する（ステップＳ１０）。マスタ装置１は、各スレーブ装置２から、各同期周期と、各同期周期で時刻同期を実行した際の補正量を取得する（ステップＳ１２）。
【００８３】
マスタ装置１は、各スレーブ装置２について、同期周期および補正量の対応関係を算出する（ステップＳ１４）。例えば、マスタ装置１は、各スレーブ装置２における一次関数Ｌ♯１〜Ｌ♯１３を算出する。
【００８４】
マスタ装置１は、各スレーブ装置２の当該対応関係に基づいて、目標補正量Ｙｓに対応する目標同期周期（例えば、Ｘ♯１〜Ｘ♯１３）を算出する（ステップＳ１６）。マスタ装置１は、各スレーブ装置２における目標同期周期に基づいて、各スレーブ装置２を複数のグループに分類する（ステップＳ１８）。
【００８５】
マスタ装置１は、各グループについて、当該グループに分類されたスレーブ装置２における目標同期周期のうち最大の目標同期周期を、マスタ装置１がスレーブ装置２と時刻同期を行なう新たな同期周期として設定する（ステップＳ２０）。マスタ装置１は、グループごとに設定された新たな同期周期で、各グループに属する複数のスレーブ装置２と時刻同期を実行する（ステップＳ２２）。
【００８６】
図１０は、実施の形態１に従うマスタ装置１の処理手順の他の例を示すフローチャートである。図１０を参照して、ステップＳ１０〜ステップＳ２２の処理は図９に示す処理と同様であるため、その詳細な説明は繰り返さない。
【００８７】
マスタ装置１は、各スレーブ装置２から、新たな同期周期で時刻同期を実行した際の補正量を取得する（ステップＳ３０）。具体的には、マスタ装置１は、新たな同期周期に関連付けられた補正量を取得する。
【００８８】
マスタ装置１は、複数のスレーブ装置２から取得された複数の補正量のうちの少なくとも１つが目標補正量Ｙｓ以上であるか否かを判断する（ステップＳ３２）。各補正量のうちの少なくとも１つが目標補正量Ｙｓ以上である場合（ステップＳ３２においてＹＥＳ）、マスタ装置１はステップＳ１０の処理を実行する。そうではない場合（ステップＳ３２においてＮＯ）、マスタ装置１はステップＳ２２の処理を実行する。
【００８９】
＜利点＞
実施の形態１によると、時刻同期精度を確保できるように各スレーブ装置２を複数のグループに分類し、グループ毎に、マスタ装置１とスレーブ装置２との間で送受信されるＰＴＰメッセージの通信頻度を適正化できる。これにより、時刻同期精度を確保しつつ、ＰＴＰメッセージの通信量を削減でき、ネットワークの負荷を軽減できる。また、マスタ装置１およびスレーブ装置２において、高価かつ高精度のクロック発信器を用いる必要が無いため、装置の価格を抑えることもできる。
【００９０】
実施の形態２．
実施の形態１では、予め設定された目標補正量を利用して、各スレーブ装置２を複数のグループに分類する方式について説明した。実施の形態２では、実施の形態１と異なる方法により各スレーブ装置２を複数のグループに分類する方式について説明する。
【００９１】
図１１は、実施の形態２に従う分類方式を説明するための図である。図１１を参照して、まず、実施の形態１と同様に、ｋ平均法を用いて各スレーブ♯１〜♯１３をグループＡ〜Ｃに分類する。各スレーブ♯１〜♯１３をグループＡ〜Ｃに分類する分類方式を、分類方式Ｏ１と定義する。
【００９２】
次に、目標補正量ＹｓをＹｓ１に小さくし、グループ数および各グループに含まれるスレーブ装置２の数を変更して、各スレーブ♯１〜♯１３をグループＡ１，Ｂ１に分類したとする。グループＡ１には６個のスレーブ♯４，♯７〜♯１０，♯１３が含まれ、グループＢ１には７個のスレーブ♯１〜♯３，♯５，♯６，♯１１，♯１２が含まれる。各スレーブ♯１〜♯１３をグループＡ１，Ｂ１に分類する分類方式を、分類方式Ｏ２と定義する。
【００９３】
また、目標補正量Ｙｓ１をＹｓ２にさらに小さくし、各グループに含まれるスレーブ装置２の数を変更して、各スレーブ♯１〜♯１３をグループＡ２，Ｂ２に分類したとする。グループＡ２には９個のスレーブ♯３〜♯１０，♯１３が含まれ、グループＢ２には４個のスレーブ♯１，♯２，♯１１，♯１２が含まれる。各スレーブ♯１〜♯１３をグループＡ２，Ｂ２に分類する分類方式を、分類方式Ｏ３と定義する。
【００９４】
マスタ装置１は、分類方式Ｏ１〜Ｏ３のうちのどの分類方式を用いて各スレーブ♯１〜♯１３を分類した場合に、マスタ装置１と各スレーブ♯１〜♯１３とが時刻同期する際のネットワーク負荷を全体として軽減できるのかを評価する。
【００９５】
グループに含まれるスレーブ装置２の数が少ない場合、当該グループにおけるマスタ装置１と各スレーブ装置２間でＰＴＰメッセージを送信する回数が減り、通信システム１００のネットワーク負荷が小さくなる。また、同期周期が大きい場合、ＰＴＰメッセージを送受信する間隔が長くなるため、ネットワーク負荷が小さくなる。これらのことを考慮して、評価値Ｅを以下の式（３）のように定義する。
【００９６】
【数１】
2020213190.tif 000003
【００９７】
式（３）において、ＧＮはグループの数を示し、ＳＮｉはグループｉに含まれるスレーブ装置２の数を示し、Ｘｉはグループｉに含まれる各スレーブ装置２における各目標同期周期のうち最大の目標同期周期を示す。なお、目標同期周期Ｘａ１，Ｘａ２は、それぞれ目標同期周期Ｘ♯１０，Ｘ♯３であり、目標同期周期Ｘｂ１，Ｘｂ２は、それぞれ目標同期周期Ｘ♯２，Ｘ♯２である。分類方式Ｏ１〜Ｏ３にそれぞれ対応する評価値Ｅ１〜Ｅ３は以下の式（４）〜（６）で表わされる。
【００９８】
Ｅ１＝４／Ｘａ＋４／Ｘｂ＋５／Ｘｃ・・・（４）
Ｅ２＝６／Ｘａ１＋７／Ｘｂ１・・・（５）
Ｅ３＝９／Ｘａ２＋４／Ｘｂ２・・・（６）
評価値Ｅは、マスタ装置１および各スレーブ装置２間で時刻同期を実行する（すなわち、ＰＴＰメッセージを送受信する）際の通信システム１００全体のネットワーク負荷を示す指標である。すなわち、評価値Ｅが小さいほどネットワーク負荷が小さい。
【００９９】
マスタ装置１は、評価値Ｅ１〜Ｅ３のうち最小の評価値に対応する分類方式に従って、各スレーブ♯１〜♯１３を複数のグループに分類する。例えば、評価値Ｅ２が最小の評価値であった場合には、マスタ装置１は、各スレーブ♯１〜♯１３をグループＡ１，Ｂ１に分類する（すなわち、分類方式Ｏ１に従って分類する）。このように、各スレーブ装置２を複数のグループに分類することによって、目標補正量が小さく、同期周期が長くなるようなグループ分けを実現できる。
【０１００】
なお、上記では、分類方式が３つの場合について説明したが、当該分類方式の数は２つであってもよいし、４つ以上であってもよい。
【０１０１】
＜機能構成＞
実施の形態２に従うマスタ装置１の機能構成は、図８に示す機能構成と同様であるが、分類部１０９の機能が異なる。ここでは、実施の形態２に従うマスタ装置１の分類部１０９の機能について説明する。
【０１０２】
実施の形態２に従う分類部１０９は、各スレーブ装置２における目標同期周期に基づいて、各スレーブ装置２を第１の複数の候補グループに分類する。例えば、分類部１０９は、目標同期周期Ｘ♯１〜Ｘ♯１３に基づいて、各スレーブ♯１〜♯１３を、第１の複数の候補グループ（例えば、グループＡ〜Ｃ）に分類する。
【０１０３】
分類部１０９は、各スレーブ装置２を、第１の複数の候補グループとは異なる第２の複数の候補グループに分類する。具体的には、分類部１０９は、第１の複数の候補グループに分類する際に用いた目標補正量Ｙｓの変更、および第１の複数の候補グループの数の変更のうちの少なくとも１つを実行することにより、各スレーブ装置２を第２の複数の候補グループに分類する。
【０１０４】
ここで、第１の複数の候補グループがグループＡ〜Ｃであるとする。この場合、例えば、分類部１０９は、目標補正量ＹｓをＹｓ１に変更し、かつグループ数を３つから２つに変更することにより、各スレーブ♯１〜♯１３を第２の複数の候補グループ（例えば、グループＡ１，Ｂ１）に分類する。
【０１０５】
また、分類部１０９は、グループ数を変更せずに（すなわち、グループ数は３つ）、目標補正量ＹｓをＹｓ１に変更することで、各スレーブ♯１〜♯１３を第２の複数の候補グループに分類してもよい。この場合、例えば、１つ目のグループには６個のスレーブ♯４，♯７〜♯１０，♯１３が含まれ、２つ目のグループには４個のスレーブ♯１，♯５，♯６，♯１３が含まれ、３つ目のグループには３個のスレーブ♯２，♯１１，♯１２が含まれるような分類方式が考えられる。
【０１０６】
また、分類部１０９は、目標補正量Ｙｓを変更せずに、グループ数を変更することで（例えば、３つから２つに変更）、各スレーブ♯１〜♯１３を第２の複数の候補グループに分類してもよい。この場合、例えば、１つ目のグループには４個のスレーブ♯４，♯７，♯９，♯１３が含まれ、２つ目のグループには９個のスレーブ♯１〜♯３，♯５，♯６，♯８，♯１０〜♯１２が含まれるような分類方式が考えられる。
【０１０７】
さらに、分類部１０９は、第２の複数の候補グループのうちの第１候補グループに属するスレーブ装置２と、第２の複数の候補グループのうちの第２候補グループに属するスレーブ装置２とを入れ替えることによって、各スレーブ装置２を新たな第３の複数の候補グループに分類してもよい。ここで、第２の複数の候補グループがグループＡ１，Ｂ１であるとする。この場合、例えば、グループＡ１に含まれるスレーブ♯８と、グループＢ１に含まれる♯５とを入れ替えることによって、あるいは、グループＡ１に含まれるスレーブ♯１０と、グループＢ１に含まれる♯６とを入れ替えることによって、各スレーブ♯１〜♯１３を新たな複数の候補グループに分類する分類方式等が考えられる。
【０１０８】
なお、分類部１０９は、第１の複数の候補グループのうちの第１候補グループに属するスレーブ装置２と、第１の複数の候補グループのうちの第２候補グループに属するスレーブ装置２とを入れ替えることによって、各スレーブ装置２を第２の複数の候補グループに分類してもよい。ここで、第１の複数の候補グループがグループＡ〜Ｃであるとする。この場合、例えば、グループＡに含まれるスレーブ♯１３と、グループＢに含まれる♯１０とを入れ替えることによって各スレーブ♯１〜♯１３を新たな複数の候補グループに分類する分類方式等が考えられる。
【０１０９】
このように分類部１０９は、目標補正量の変更、グループ数の変更、およびグループ間でのスレーブ装置２の入れ替えをランダムに実行することによって、各スレーブ装置２を複数の候補グループに分類する。
【０１１０】
次に、分類部１０９は、予め定められた式（例えば、式（３））に基づいて、各スレーブ装置２が第１の複数の候補グループ（例えば、グループＡ〜Ｃ）に分類された場合における、通信システム１００のネットワーク負荷を示す第１評価値（例えば、評価値Ｅ１）と、各スレーブ装置２が第２の複数の候補グループ（例えば、グループＡ１，Ｂ１）に分類された場合における、通信システム１００のネットワーク負荷を示す第２評価値（例えば、評価値Ｅ２）とを算出する。なお、第１評価値および第２評価値の各々は、別の言い方をすれば、ネットワーク負荷を評価するための１指標である。
【０１１１】
分類部１０９は、第１評価値および第２評価値のうち最小の評価値に対応する複数の候補グループを、最終的に各スレーブ装置２を分類する複数のグループとして決定し、各スレーブ装置２を当該複数のグループに分類する。
【０１１２】
＜処理手順＞
図１２は、実施の形態２に従うマスタ装置１により実行される分類処理の一例を示すフローチャートである。実施の形態２に従うマスタ装置１の処理手順は、実施の形態１従う処理手順と比較して、図９または図１０のステップＳ１８の分類処理が異なる。以下の各ステップは、実施の形態２に従うステップＳ１８の分類処理をより具体的に説明したものである。
【０１１３】
図１２を参照して、マスタ装置１は、探索する分類方式の数を設定する（ステップＳ５０）。ここでは、当該数が設定値Ｆに設定されたとする。続いて、マスタ装置１は、目標補正量の変更、グループ数の変更、およびグループ間でのスレーブ装置２の入れ替えをランダムに実行することによって、各スレーブ装置２を複数の候補グループに分類する（ステップＳ５２）。
【０１１４】
マスタ装置１は、ステップＳ５２において複数の候補グループに分類された各スレーブ装置２とマスタ装置１とが時刻同期を実行した場合における、通信システム１００のネットワーク負荷を示す評価値を算出する（ステップＳ５４）。具体的には、マスタ装置１は式（３）を用いて当該評価値を算出する。
【０１１５】
マスタ装置１は、ステップＳ５４において算出された評価値が、これまで探索した複数の候補グループに対応する評価値と比較して最小の評価値であるか否かを判断する（ステップＳ５６）。最小の評価値ではない場合には（ステップＳ５６においてＮＯ）、マスタ装置１はステップＳ６０の処理を実行する。最小の評価値である場合には（ステップＳ５６においてＹＥＳ）、マスタ装置１はステップＳ５２における複数の候補グループを、グループ分けの候補として暫定採用する（ステップＳ５８）。
【０１１６】
マスタ装置１は、探索された分類方式の数が設定値Ｆに到達したか否かを判断する（ステップＳ６０）。設定値Ｆに到達していない場合には（ステップＳ６０においてＮＯ）、マスタ装置１はステップＳ５２の処理を実行する。設定値Ｆに到達した場合には（ステップＳ６０においてＹＥＳ）、マスタ装置１は、ステップＳ５８において暫定的に採用されている複数の候補グループに従って各スレーブ装置２を分類する（ステップＳ６２）。具体的には、マスタ装置１は暫定採用されている複数の候補グループを最終的な複数のグループとして決定し、各スレーブ装置２を当該複数のグループに分類する。
【０１１７】
＜利点＞
実施の形態２によると、複数の分類方式のうち最もネットワーク負荷が小さくなる分類方式に従って各スレーブ装置２が分類される。これにより、実施の形態１の利点に加えて、通信システム１００のネットワーク負荷をより適切に軽減できる。
【０１１８】
実施の形態３．
実施の形態３では、マスタ装置１および各スレーブ装置２がマルチホップ通信を行なう構成について説明する。
【０１１９】
図１３は、実施の形態３に従う通信システム１００Ａにおけるネットワーク構成の一例を説明するための図である。なお、図１３に示す通信システム１００Ａでは、上述した実施の形態１または２で説明したグループの分類方式に従って、各スレーブ装置２が複数のグループに分類された状態を示している。図１３の例では、各スレーブ装置２がグループＡ〜Ｃに分類されているものとする。
【０１２０】
図１３を参照して、マスタ装置１および複数のスレーブ♯１〜♯１３は、複数の装置がバケツリレー方式でデータを中継し、遠隔地間を結ぶマルチホップ通信に対応している。マスタ装置１および各スレーブ♯１〜♯１３の各装置は、無線特性（例えば、信号強度、受信感度、指向性等）によって定まる通信範囲に存在する装置と通信可能に構成される。マスタ装置１および各スレーブ♯１〜♯１３によって、自律的な無線ネットワークであるアドホックネットワークが形成されている。アドホックネットワークは、マスタ装置１を最上位のノードとした木構造を有する。
【０１２１】
図１３の例では、マスタ装置１から１ホップ目の経路にあたるノードはスレーブ♯１，♯４，♯５であり、２ホップ目の経路にあたるノードはスレーブ♯２，♯６，♯７であり、３ホップ目の経路にあたるノードはスレーブ♯３，♯８，♯９であり、４ホップ目の経路にあたるノードはスレーブ♯１０〜♯１３である。ここでは、マスタ装置１からＫホップ目の経路にあたるノードのホップ数は“Ｋ”であるとする。
【０１２２】
図１３のようにネットワークが構成されている場合に、マスタ装置１は、自装置と通信可能なスレーブ装置２を探索し、その探索結果を示す探索情報を記憶する。各スレーブ♯１〜♯１３は、自装置と通信可能な装置（例えば、マスタ装置１および他のスレーブ装置２）を探索し、その探索結果を示す探索情報を記憶するとともに、マルチホップ通信によりマスタ装置１に当該探索情報を送信する。マスタ装置１は、自装置の探索情報と、各スレーブ♯１〜♯１３から受信した探索情報とを用いて、マスタ装置１と各スレーブ♯１〜♯１３との間における複数の通信経路を算出する。
【０１２３】
例えば、グループＡにおいて、スレーブ♯４がマスタ装置１およびスレーブ♯７と通信可能であり、スレーブ♯７がスレーブ♯９，♯１３と通信可能であるとする。この場合、マスタ装置１は、自装置と、グループＡに属する各スレーブ♯４，♯７，♯９，♯１３との間の通信経路として、マスタ装置１→スレーブ♯４→スレーブ♯７→スレーブ♯９→スレーブ♯１３という通信経路Ｒ１と、マスタ装置１→スレーブ♯４→スレーブ♯７→スレーブ♯１３という通信経路Ｒ２とを算出する。通信経路Ｒ１は、図１３に示す通信経路である。
【０１２４】
ここで、マルチホップ無線ネットワークにおいて、時刻同期を実行する場合には、中継器のスレーブ装置２で発生するジッタによって伝搬遅延時間がばらつくため、中継器を介するごとに時刻同期精度が劣化する。したがって、時刻同期精度を確保するためには、各グループに属する複数のスレーブ装置２のホップ数を最小化することが好ましい。
【０１２５】
例えば、グループＡにおいて、上記のように通信経路Ｒ１，Ｒ２が算出された場合を想定する。通信経路Ｒ１の場合、グループＡに属する各スレーブ♯４，♯７，♯９，♯１３のうちのスレーブ♯１３が最大ホップ数である“４”を有している。一方、通信経路Ｒ２の場合、スレーブ♯９，♯１３が最大ホップ数である“３”を有している。したがって、通信経路Ｒ２の方が通信経路Ｒ１よりも各スレーブ装置２のホップ数を最小化している。したがって、マスタ装置１は、グループＡに属する各スレーブ装置２とマルチホップ通信する際の通信経路を、通信経路Ｒ１から通信経路Ｒ２に変更する。
【０１２６】
図１４は、実施の形態３に従う通信システム１００Ａにおける変更後のネットワーク構成を示す図である。図１４を参照して、上述したように、グループＡに属する各スレーブとマスタ装置１との間の通信経路は、図１３に示す通信経路Ｒ１から通信経路Ｒ２に変更されている。グループＢに属する各スレーブ♯５，♯６，♯８，♯１０とマスタ装置１との間の通信経路も変更され、最大ホップ数が“４”から“３”に小さくなっている。同様に、グループＣに属する各スレーブ♯１〜♯３，♯１１，♯１２とマスタ装置１との間の通信経路も変更されて、最大ホップ数が“４”から“３”に小さくなっている。
【０１２７】
マスタ装置１は、複数のグループの各々について、当該グループにおける複数の通信経路のうち、当該グループに属する複数のスレーブ装置２のホップ数を最小化する通信経路に従って、当該複数のスレーブ装置２とマルチホップ通信を行なう。具体的には、マスタ装置１は、マルチホップ通信を利用して各スレーブ装置２と時刻同期を実行する。
【０１２８】
＜機能構成＞
図１５は、実施の形態３に従うマスタ装置１Ａの機能構成を示すブロック図である。図１５を参照して、マスタ装置１Ａの機能構成は、図８に示す機能構成に経路算出部１１５を追加した構成に相当する。スレーブ装置２Ａの機能構成は、図８に示す機能構成に経路探索部２０９を追加した構成に相当する。そのため、経路算出部１１５および経路探索部２０９の構成について説明する。なお、マスタ装置１Ａは図１に示すマスタ装置１に対応し、スレーブ装置２Ａは図１に示すスレーブ装置２に対応するが、図８に示す機能構成との区別のため、便宜上「Ａ」といった追加の符号を付している。これは、以下の実施の形態でも同様である。
【０１２９】
経路探索部２０９は、スレーブ装置２Ａと通信可能な装置（例えば、マスタ装置１および他のスレーブ装置２）を探索し、その探索結果を示す探索情報を記憶し、マルチホップ通信によりマスタ装置１に当該探索情報を送信する。
【０１３０】
経路算出部１１５は、各スレーブ装置２の経路探索部２０９から受信した探索情報と、マスタ装置１の探索情報と、分類部１０９からの分類情報とに基づいて、複数のグループの各々について、マスタ装置と当該グループに属する複数のスレーブ装置との間における複数の通信経路を算出する。
【０１３１】
続いて、経路算出部１１５は、複数のグループの各々について、当該グループにおける複数の通信経路のうち、当該グループに属する複数のスレーブ装置２のホップ数を最小化する通信経路を抽出する。例えば、経路算出部１１５は、グループＡにおける複数の通信経路のうち、グループＡに属するスレーブ♯４，♯７，♯９，♯１３のホップ数の最大値を最小にする通信経路を抽出する。
【０１３２】
時刻同期通信部１０１は、複数のグループの各々について抽出された通信経路に従って、当該グループに属する複数のスレーブ装置２とマルチホップ通信することにより時刻同期を実行する。
【０１３３】
＜処理手順＞
図１６は、実施の形態３に従うマスタ装置１Ａの処理手順の一例を示すフローチャートである。
【０１３４】
図１６を参照して、ステップＳ１０〜Ｓ２０の各処理は、図９に示す処理と同様であるため、その詳細な説明は繰り返さない。マスタ装置１Ａは、複数のグループの各々について、マスタ装置１Ａと当該グループに属する複数のスレーブ装置２との間における複数の通信経路のうち、当該複数のスレーブ装置２のホップ数を最小化する通信経路を抽出する（ステップＳ７０）。マスタ装置１Ａは、複数のグループの各々について抽出された通信経路に従って、当該グループに属する複数のスレーブ装置２とマルチホップ通信することにより時刻同期を実行する（ステップＳ７２）。
【０１３５】
上記フローチャートは、図９に示すフローチャートのステップＳ２２を、ステップＳ７０，Ｓ７２で置き換えたものである。なお、マスタ装置１Ａは、図１０に示すフローチャートのステップＳ２２を、ステップＳ７０，Ｓ７２で置き換えた処理を実行してもよい。
【０１３６】
＜利点＞
実施の形態３によると、ホップ数が最小の通信経路に従って、マスタ装置１および各スレーブ装置２がマルチホップ通信を行なうため、要求される時刻同期精度を確保できる。
【０１３７】
実施の形態３において、実施の形態２に従う分類方式を採用して、各スレーブ装置２を複数のグループに分類する構成であってもよい。図１７は、実施の形態３のその他の利点を説明するためのイメージ図である。図１７を参照して、実施の形態２の分類方式により、各スレーブ装置２は、目標補正量が小さく、同期周期が長くなるように複数のグループに分類される。また、実施の形態３により、ホップ数が最小の通信経路に従って、マスタ装置１および各スレーブ装置２がマルチホップ通信を実行できる。これにより、マルチホップ通信を行なう場合であっても、時刻同期の精度を確保しつつネットワークの負荷を軽減することができる。
【０１３８】
実施の形態４．
上述した実施の形態では、ｋ平均法等のグループ分類のアルゴリズムを利用して各スレーブ装置２を複数のグループに分類する構成について説明した。実施の形態４では、機械学習を利用してグループ分類を行なう構成について説明する。例えば、実施の形態４に従うマスタ装置は強化学習を行なうように構成されている。なお、強化学習とは、ある状態において行動を与えた場合に、次に行なうべき行動として将来的に得られる報酬が最大になるような行動を選択するように学習モデルを繰り返し学習させる過程で、学習モデルの更新による変化が収束し（すなわち、学習が終了して）、ある状態において最適な行動を選択する学習済モデルを獲得する方法である。
【０１３９】
図１８は、強化学習アルゴリズムの基本的な概念を説明するための図である。図１８を参照して、強化学習の枠組みは、エージェント、環境およびこれらの間の相互作用からなる。エージェントは、行動を決定する主体であり、実施の形態４においてはマスタ装置内の機械学習器がこれに相当する。環境は、エージェントが相互作用を行なう対象であり、実施の形態４においては制御対象となる通信システムがこれに相当する。
【０１４０】
具体的には、（１）エージェントはある時点における環境の状態ｓｔを観測する。（２）観測結果と過去の学習に基づいて行動ａｔを選択して行動ａｔを実行する。（３）行動ａｔが実行されることで環境の状態ｓｔが次の状態ｓｔ＋１へと変化する。（４）その状態の変化に基づいてエージェントに報酬ｒｔ＋１を与える。（５）エージェントが状態ｓｔ、行動ａｔ、報酬ｒｔ＋１、および過去に学習した結果に基づいて学習を進め、最適な方策が得られるように収束させていく。
【０１４１】
図１９は、実施の形態４に従うマスタ装置１Ｂの機械学習器５の入力パラメータおよび出力パラメータを説明するための図である。
【０１４２】
図１９を参照して、機械学習器５の入力パラメータは状態変数である。状態変数は、分類情報、各グループに属する１以上のスレーブ装置２と時刻同期を行なう際の同期周期（以下、「各グループの同期周期」とも称する。）、および各スレーブ装置２から取得した補正量を含む。なお、各グループの同期周期は、例えば、同期周期Ｘａ〜Ｘｃ等である。分類情報は、グループ数、各グループのスレーブ装置数、および各グループに属するスレーブ装置の装置番号を含む。
【０１４３】
機械学習器５の出力パラメータは行動値である。行動値は、将来的に得られる報酬が最大になるような分類情報と、各グループの同期周期とを含む。
【０１４４】
図２０は、実施の形態４に従う報酬基準を説明するための図である。機械学習器５は、報酬基準Ｊ１および報酬基準Ｊ２の少なくとも一方に基づいて報酬を計算する。まず、機械学習器５が報酬基準Ｊ１に基づいて報酬を計算する場合について説明する。この場合、機械学習器５は、各スレーブ装置２がマスタ装置１Ｂと時刻同期を実行する同期周期の総和Ｈが、各スレーブ装置２の目標同期周期閾値の総和Ｈｓ以上である場合には報酬を低減し、同期周期の総和Ｈが目標同期周期閾値の総和Ｈｓ未満である場合には報酬を増大する。
【０１４５】
例えば、スレーブ♯１〜♯１３がグループＡ〜Ｃに分類されており、グループＡのスレーブ装置数が４、グループＢのスレーブ装置数が４、グループＣのスレーブ装置数が５であるとする。また、グループＡ〜Ｃについての同期周期がそれぞれＸａ〜Ｘｃであるとする。この場合、総和Ｈ＝４Ｘａ＋４Ｘｂ＋５Ｘｃとなる。各スレーブ装置２の目標同期周期閾値は、同一の値に設定されてもよいし、グループごとに異なる値が設定されてもよい。
【０１４６】
次に、機械学習器５は、報酬基準Ｊ２に基づいて報酬を計算する場合について説明する。この場合、機械学習器５は、時刻同期の補正量の目標範囲と、各スレーブ装置２から取得した補正量とを比較して、報酬を増減させる。目標範囲の上限値を「目標範囲上限値Ｄｕ」とも称し、目標範囲の下限値を「目標範囲下限値Ｄｄ」とも称する。なお、目標範囲上限値Ｄｕは、目標補正量Ｙｓよりも小さい値に設定される。
【０１４７】
機械学習器５は、各スレーブ装置２から取得した各補正量のうち少なくとも１つが、目標範囲上限値Ｄｕよりも大きいまたは目標範囲下限値Ｄｄよりも小さい場合（すなわち、目標範囲外である場合）、報酬を低減する。機械学習器５は、各スレーブ装置２から取得したすべての補正量が目標範囲上限値Ｄｕ以下かつ目標範囲下限値Ｄｄ以上である場合（すなわち、目標範囲内に収まっている場合）、報酬を増大する。
【０１４８】
なお、機械学習器５は、報酬基準Ｊ１および報酬基準Ｊ２以外の他の報酬基準を用いて報酬を計算する構成であってもよい。
【０１４９】
図２１は、機械学習器５の学習によりネットワーク負荷が軽減されていく過程を説明するための図である。具体的には、図２１には、機械学習器５が報酬基準Ｊ１に従って報酬を増減した場合に、ネットワーク負荷が軽減されていく過程が示されている。
【０１５０】
図２１を参照して、時刻ｔ１ｘ〜ｔ２ｘの間においては、機械学習器５により選択された各スレーブ装置２の同期周期が大きく、その結果、同期周期の総和Ｈが大きい。この場合、ＰＴＰメッセージを送受信する際のネットワーク負荷は小さいが、要求される時刻同期精度を確保できない。
【０１５１】
また、時刻ｔ３ｘ〜時刻ｔ４ｘにおいては、機械学習器５により選択された各スレーブ装置２の同期周期がかなり小さく、その結果、同期周期の総和Ｈも小さくなる。この場合、時刻同期精度は確保できるが、ＰＴＰメッセージを送受信する際のネットワーク負荷が大きくなる。
【０１５２】
機械学習器５の学習が進んだ時刻ｔ５ｘ〜時刻ｔ６ｘにおいては、機械学習器５により選択された同期周期が最適化されており、同期周期の総和Ｈが目標同期周期閾値の総和Ｈｓに収束している。この場合、時刻同期精度を確保しつつＰＴＰメッセージを送受信する際のネットワーク負荷を軽減できる。すなわち、ネットワーク負荷が最適化されている。
【０１５３】
図２２は、機械学習器５の学習により時刻同期の補正量が目標範囲に収束していく過程を説明するための図である。具体的には、図２２には、機械学習器５が報酬基準Ｊ２に従って報酬を増減した場合に、あるスレーブ装置２から取得される補正量が目標範囲に収束していく過程が示されている。
【０１５４】
図２２を参照して、時刻ｔ１ａ〜ｔ２ａの間においては、機械学習器５によって選択されたスレーブ装置２の同期周期が大きいため、時刻同期精度が低くなり時刻同期の補正量が大きい。この場合、ＰＴＰメッセージを送受信する際のネットワーク負荷は小さいが、時刻同期精度を確保できない。
【０１５５】
また、時刻ｔ２ａ〜時刻ｔ３ａにおいては、機械学習器５によって選択された同期周期がかなり小さいため時刻同期精度が過剰に高くなり、時刻同期の補正量が小さい。この場合、時刻同期精度は確保できるが、ＰＴＰメッセージを送受信する際のネットワーク負荷が大きくなる。
【０１５６】
機械学習器５の学習が進んだ時刻ｔ４ａ〜時刻ｔ５ａにおいては、機械学習器５により選択された同期周期が最適化されており補正量が目標範囲に収束する。この場合、時刻同期精度を確保しつつＰＴＰメッセージを送受信する際のネットワーク負荷を軽減できる。すなわち、ネットワーク負荷が最適化されている。
【０１５７】
＜機能構成＞
図２３は、実施の形態４に従うマスタ装置１Ｂの機能構成を示す模式図である。図２３を参照して、マスタ装置１Ｂは、主な機能構成として、時刻同期通信部１０１Ｂと、補正量取得部１０３と、機械学習器５とを含む。機械学習器５は、状態観測部５２と、学習部５４と、行動選択部５６とを含む。
【０１５８】
状態観測部５２は、補正量取得部１０３が各スレーブ装置２から取得した各補正量と、行動選択部５６により選択された各グループの同期周期および分類情報とを状態変数として観測する。
【０１５９】
学習部５４は、各補正量、各グループの同期周期、分類情報を含む状態変数に基づいて作成される学習用のデータセットに従って、ネットワーク負荷を最適化するための各グループの同期周期および分類情報を学習する。
【０１６０】
学習部５４が用いる学習アルゴリズムはどのようなものを用いてもよい。一例として、強化学習（Reinforcement  Learning）を適用した場合について説明する。強化学習では、ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する。エージェントは行動を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Ｑ学習（Q-learning）やＴＤ学習（TD-learning）が知られている。例えば、Ｑ学習の場合、行動価値関数Ｑ（ｓ，ａ）の一般的な更新式（すなわち、行動価値テーブル）は以下の式（７）で表される。
【０１６１】
【数２】
2020213190.tif 000004
【０１６２】
式（７）において、ｔは時刻ｔにおける環境を表し、ａｔは時刻ｔにおける行動を表す。行動ａｔにより、環境はｓｔ+1に変わる。ｒｔ+1はその環境の変化によってもらえる報酬を表し、γは割引率を表し、αは学習係数を表す。なお、γは０＜γ≦１、αは０＜α≦１の範囲とする。Ｑ学習を適用した場合、機械学習器５の出力パラメータが行動ａｔとなる。
【０１６３】
式（７）で表される更新式は、時刻ｔ＋１における最良の行動ａの行動価値が、時刻ｔにおいて実行された行動ａの行動価値よりも大きければ、行動価値を大きくし、逆の場合には、行動価値を小さくする。換言すれば、時刻ｔにおける行動ａの行動価値を、時刻ｔ＋１における最良の行動価値に近づけるように、行動価値関数Ｑ（ｓ，ａ）を更新する。これにより、ある環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播していくようになる。
【０１６４】
学習部５４は、報酬基準設定部５０２と、報酬計算部５０４と、学習結果記憶部５０６と、関数更新部５０８とを含む。
【０１６５】
報酬基準設定部５０２は、学習モデルの学習に用いられる報酬をどのように増減させるのかを規定する報酬基準を設定する。例えば、報酬基準設定部５０２は、上述した報酬基準Ｊ１および報酬基準Ｊ２の少なくとも一方を設定する。この場合、報酬基準設定部５０２は、目標同期周期閾値の総和Ｈｓ、目標範囲上限値Ｄｕ、目標範囲下限値Ｄｄ等を設定する。
【０１６６】
報酬計算部５０４は、報酬基準設定部５０２により設定された報酬基準と、状態観測部５２により観測された状態変数とに基づいて報酬を計算する。報酬基準Ｊ１が設定されている場合には、報酬計算部５０４は、行動選択部５６により選択された各グループの同期周期を加算して総和Ｈを計算し、総和Ｈが目標同期周期閾値の総和Ｈｓ以上である場合には報酬を低減させ（例えば、「−１」の報酬を与える）、総和Ｈが総和Ｈｓ未満である場合には報酬を増大させる（例えば、「＋１」の報酬を与える）。
【０１６７】
報酬基準Ｊ２が設定されている場合には、報酬計算部５０４は、補正量取得部１０３により取得された各補正量のうちの少なくとも１つが目標範囲外である場合には報酬を低減させ、各補正量が目標範囲内である場合には報酬を増大させる。報酬基準Ｊ１および報酬基準Ｊ２の両方が設定されている場合には、報酬計算部５０４は、総和Ｈが総和Ｈｓ未満であって、かつ各補正量が目標範囲内であるとの条件が成立する場合には報酬を増大させ、当該条件が成立しない場合には報酬を低減させる。
【０１６８】
学習結果記憶部５０６は、学習に伴う更新により変化する学習モデルを記憶する。具体的には、学習結果記憶部５０６は、行動価値テーブル（すなわち、Ｑテーブル）を記憶する。なお、初期状態においては、行動価値テーブルの報酬は０である。
【０１６９】
関数更新部５０８は、報酬計算部５０４によって計算された報酬に従って、機械学習器５の出力パラメータを決定するための関数を更新する。関数更新部５０８は、学習結果記憶部５０６に記憶された行動価値テーブルを更新することにより当該関数を更新する。行動価値テーブルは、任意の行動と、その行動価値とを関連付けてテーブルの形式で記憶したデータセットである。例えば、Ｑ学習の場合、式（７）で表される行動価値関数Ｑ（ｓt，ａt）が、出力パラメータを求めるための関数として用いられる。
【０１７０】
行動選択部５６は、学習結果記憶部５０６に記憶された学習部５４の学習結果である行動価値関数Ｑ（ｓ，ａ）に基づいて各グループの同期周期および分類情報を選択する。典型的には、行動選択部５６は、初期状態においては、ランダムに分類情報および各グループの同期周期を選択する。行動選択部５６は、学習途中段階においては、例えば、ε-greedy法を用いて、分類情報および各グループの同期周期を選択する。ε-greedy法とは、一定の確率εで、ある環境から取り得る行動のうち一つをランダムに選び、（１−ε）の確率である環境から最大のＱ値を有する行動を選択する手法である。なお、その他の公知の行動選択方式を採用してもよい。
【０１７１】
行動選択部５６により選択された各グループの同期周期および分類情報が、機械学習器５の出力パラメータとなる。行動選択部５６は、次の分類情報を選択する分類情報選択部５１０と、次の各グループの同期周期を選択する同期周期選択部５１２とを含む。
【０１７２】
分類情報選択部５１０によって選択された分類情報に基づいて、各スレーブ装置２は複数のグループに分類される。なお、分類情報は状態観測部５２へ入力される。同期周期選択部５１２によって選択された各グループの同期周期は、当該グループ用に設定された同期周期である。なお、各グループの同期周期は状態観測部５２へ入力される。
【０１７３】
関数更新部５０８は、行動価値テーブルの更新が行われなくなり行動価値関数Ｑ（ｓt，ａt）が収束した場合、機械学習器５による学習は終了したと判定する。この場合、行動選択部５６は、収束した行動価値関数Ｑ（ｓt，ａt）に基づいて報酬が最も多く得られる分類情報および各グループの同期周期を選択する。
【０１７４】
時刻同期通信部１０１Ｂは、行動選択部５６により選択された各グループの同期周期および分類情報を取得する。時刻同期通信部１０１は、分類情報に基づく複数のグループの各々について、当該グループに設定された同期周期で、当該グループに分類された１以上のスレーブ装置２と時刻同期を実行する。
【０１７５】
補正量取得部１０３は、当該時刻同期を行なった場合に各スレーブ装置２から送信される、マスタ装置１Ｂの時刻と当該スレーブ装置２の時刻との差の補正量を取得する。補正量取得部１０３は、機械学習器５（具体的には、状態観測部５２）へ各補正量を出力する。
【０１７６】
機械学習器５は、前回の状態変数の入力を受けたときに選択した分類情報および各グループの同期周期と、補正量取得部１０３により取得された各補正量とを入力とする学習モデル（例えば、行動価値関数Ｑ（ｓt，ａt））を用いて、各スレーブ装置２を他の複数のグループに分類するための分類情報と、他の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置２とマスタ装置１Ｂが時刻同期を行なう新たな同期周期とを選択する。
【０１７７】
＜処理手順＞
図２４は、実施の形態４に従うマスタ装置１Ｂの処理手順の一例を示すフローチャートである。図２４を参照して、マスタ装置１Ｂは、分類情報および各グループの同期周期をランダムに選択して、当該選択された分類情報に基づいて各スレーブ装置２を複数のグループに分類する（ステップＳ３００）。具体的には、マスタ装置１Ｂは、分類情報および各グループの同期周期の初期値をランダムに設定する。ここで、ステップＳ３００において選択された分類情報および同期周期を、それぞれ「第１分類情報」および「第１同期周期」とも称する。マスタ装置１Ｂは、グループごとに設定された第１同期周期で、各グループに属する１以上のスレーブ装置２と時刻同期を実行する（ステップＳ３０２）。
【０１７８】
マスタ装置１Ｂは、各スレーブ装置２から、当該第１同期周期で時刻同期を実行した際の補正量（以下、「第１補正量」とも称する。）を取得し、取得した各第１補正量と、ステップＳ３０２で設定した第１分類情報および各グループの第１同期周期を状態変数として観測する（ステップＳ３０４）。
【０１７９】
マスタ装置１Ｂは、上述した報酬基準に従って報酬を計算する（ステップＳ３０６）。マスタ装置１Ｂは、式（７）を用いて行動価値関数Ｑ（ｓt，ａt）を更新する（ステップＳ３０８）。マスタ装置１Ｂは、例えば、ε-greedy法を用いて、分類情報および各グループの同期周期を選択する（ステップＳ３１０）。
【０１８０】
マスタ装置１Ｂは、選択された分類情報に基づいて各スレーブ装置２を複数のグループに分類し、グループごとに設定された同期周期で、各グループに属する１以上のスレーブ装置２と時刻同期を実行する（ステップＳ３１２）。続いて、マスタ装置１Ｂは、ステップＳ３０４からの処理を繰り返し実行する。これにより、行動価値関数（ｓt，ａt）が更新され学習が進んでいく。マスタ装置１Ｂは、同期周期に合わせて上記処理を繰り返してもよいが、その場合、マスタ装置１Ｂの処理負荷が高くなるため、複数の同期周期ごとに上記処理を繰り返してもよい。
【０１８１】
その後、マスタ装置１Ｂは、ステップＳ３０８において更新が行われなくなり、行動価値関数Ｑ（ｓt，ａt）が収束したと判定した場合、機械学習器５による学習を終了する。この場合、マスタ装置１Ｂは、収束した行動価値関数Ｑ（ｓt，ａt）に基づいて報酬が最も多く得られる分類情報および各グループの同期周期を選択する。ここで、ステップＳ３１０において選択された分類情報および同期周期を、それぞれ「第２分類情報」および「第２同期周期」とも称する。そして、マスタ装置１Ｂは、第２分類情報および各グループの第２同期周期に基づいて、各スレーブ装置２と時刻同期を実行する。図２４の一連の処理により、図２１および図２２で説明したように、時刻同期精度を確保しつつネットワーク負荷が最適化される。
【０１８２】
＜変形例＞
ここでは、収束した行動価値関数（ｓt，ａt）を利用する場面について説明する。例えば、複数のスレーブ装置２がスレーブ♯１〜♯１３で構成されており、マスタ装置１Ｂが図２４に示す処理を進めた結果、行動価値関数Ｑ（ｓt，ａt）が収束したものとする。この収束した行動価値関数Ｑ（ｓt，ａt）は、学習モデルの更新による変化が収束し学習が終了した学習済モデルに対応する。
【０１８３】
マスタ装置１Ｂは、収束した行動価値関数Ｑ（ｓt，ａt）に基づいて、スレーブ♯１〜♯１３を複数のグループに分類するための分類情報（以下、「第３分類情報」とも称する。）と、当該複数のグループの各々について、当該グループに分類された１以上のスレーブ装置とマスタ装置１Ｂが時刻同期を行なう新たな同期周期（以下、「第３同期周期」とも称する。）とを選択する。すなわち、マスタ装置１は、収束した行動価値関数Ｑ（ｓt，ａt）に基づいて報酬が最も多く得られる第３分類情報と各グループの第３同期周期とを選択する。マスタ装置１Ｂは、この第３分類情報に基づいて、スレーブ♯１〜♯１３を当該複数のグループに分類する。ここで、説明の容易化のため、当該複数のグループがグループＧ１〜Ｇ３であるとし、グループＧ１〜Ｇ３の第３同期周期がＭ１〜Ｍ３であるとする。
【０１８４】
次に、通信システム１００にスレーブ♯１〜♯１３以外の新たな他のスレーブ♯１４が追加されたとする。この場合、マスタ装置１Ｂは、他のスレーブ♯１４の追加により機械学習器５の学習をすぐにやり直すのではなく、複数のグループＧ１〜Ｇ３のうちの１のグループ（例えば、グループＧ１）にスレーブ♯１４を追加する。
【０１８５】
グループＧ１にスレーブ♯１４を追加した後のグループをＧ１ａとすると、スレーブ♯１〜♯１４は、複数のグループＧ１ａ，Ｇ２，Ｇ３に分類される。このように、マスタ装置１Ｂは、複数のグループＧ１〜Ｇ３のうちのグループＧ１にスレーブ♯１４を追加することにより、スレーブ♯１〜♯１４を複数のグループＧ１ａ，Ｇ２，Ｇ３に分類する。ここで、グループＧ１ａの同期周期は、グループＧ１の同期周期と同一、すなわち同期周期Ｍ１である。なお、グループＧ２，Ｇ３の同期周期は、それぞれ同期周期Ｍ２，Ｍ３のままである。
【０１８６】
マスタ装置１Ｂは、複数のグループＧ１ａ，Ｇ２，Ｇ３の各々について、当該グループに分類された１以上のスレーブ装置と、当該グループに設定された同期周期で時刻同期を行なう。マスタ装置１Ｂは、当該時刻同期を行なった場合に、スレーブ♯１〜♯１４の各々から、マスタ装置１Ｂの時刻と当該スレーブ装置の時刻との差の補正量（以下、「第２補正量」とも称する。）を取得する。
【０１８７】
ところで、マスタ装置１Ｂは、収束した行動価値関数Ｑ（ｓt，ａt）、つまり獲得した学習済モデルが有するロバスト性によって、ある程度の環境の変化に対しては、通信システムを安定して継続させることが可能である。
【０１８８】
そのため、スレーブ♯１４の追加に伴い、マスタ装置１Ｂが各スレーブ装置との間で時刻同期を行なうにあたって、各スレーブ装置の同期周期の総和および補正量を許容範囲に抑えられるか否かを判定する。
【０１８９】
これが許容範囲に抑えられると判定される場合、学習済モデルは環境の変化に対し安定的に対応することができるため、マスタ装置１Ｂは獲得した学習済モデルを継続して用いても問題はない。一方、これが許容範囲に抑えられないと判定される場合、学習済モデルは環境の変化に対し安定的に対応することができないため、マスタ装置１Ｂは学習済モデルを改めて学習させることにより更新し、再び収束させる必要がある。このように、一旦は学習が終了して学習済モデルとなった学習モデルを改めて学習させる過程を、学習済モデルの再学習と呼ぶ。以下に、学習済モデルを再学習させる場合の一例について説明する。なお、学習済モデルのうち、再学習が行われていない学習済モデルを「再学習前の学習済モデル」と称し、再学習が行われた後の学習済モデルを「再学習後の学習済モデル」と称する。
【０１９０】
マスタ装置１Ｂは、各第２補正量の少なくとも１つが基準閾値（すなわち、目標補正量Ｙｓ）以上である場合、機械学習器５の学習をやり直す。具体的には、マスタ装置１Ｂは、各第２補正量と、第３同期周期Ｍ１〜Ｍ３と、スレーブ♯１〜♯１４を複数のグループＧ１ａ，Ｇ２，Ｇ３に分類するための第４分類情報Ｇｘとを再学習前の学習済モデルに入力する。これにより、スレーブ♯１〜♯１３の場合に収束していた学習済モデルが再学習される。
【０１９１】
マスタ装置１Ｂは、各第２補正量と、第３同期周期Ｍ１〜Ｍ３と、第４分類情報Ｇｘとが再学習前の学習済モデルに入力されることにより再学習された学習済モデル（すなわち、再学習後の学習済モデル）を用いて、スレーブ♯１〜♯１４を他の複数のグループに分類するための第５分類情報Ｇｘ１と、他の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置とマスタ装置１Ｂが時刻同期を行なう新たな第４同期周期とを選択する。その後、再学習が進んで行動価値関数Ｑ（ｓt，ａt）が収束すると、通信システム１００がスレーブ♯１〜♯１４を含む場合に最適化された学習済モデルが得られる。
【０１９２】
＜利点＞
実施の形態４によると、機械学習を用いて、時刻同期精度を確保できるように各スレーブ装置２を複数のグループに分類することができる。これにより、時刻同期精度を確保しつつネットワークの負荷を軽減できる。
【０１９３】
実施の形態５．
実施の形態４では、分類情報および各グループの同期周期の初期値をランダムに選択する構成について説明した。実施の形態５では、実施の形態１における図９の処理手順を用いて分類情報および各グループの同期周期の初期値を設定する構成について説明する。
【０１９４】
図２５は、実施の形態５に従うマスタ装置１Ｃの機能構成を説明するための図である。図２５を参照して、マスタ装置１Ｃは、図２３に示す機能構成に、図８に示す関係算出部１０５と、目標同期周期算出部１０７と、分類部１０９と、設定部１１１とを追加し、さらに監視部１１３Ｃを追加した構成に相当する。
【０１９５】
まず、図８で説明したように、分類部１０９は、各スレーブ装置２を複数のグループに分類する。設定部１１１は、複数のグループの各々について、当該グループに分類された１以上のスレーブ装置２とマスタ装置１Ｃが時刻同期を行なう新たな同期周期を設定する。時刻同期通信部１０１は、設定部１１１によってグループごとに設定された同期周期で、各グループに属する複数のスレーブ装置２と時刻同期を実行する。設定部１１１により各グループの同期周期が設定された後、補正量取得部１０３は、各スレーブ装置２から補正量を取得する。
【０１９６】
そして、監視部１１３Ｃは、複数のスレーブ装置２から取得された複数の補正量のうち少なくとも１つが目標範囲外（例えば、目標範囲上限値Ｄｕよりも大きい、または目標範囲下限値Ｄｄよりも小さい）であるか否かを監視する。監視部１１３Ｃは、目標範囲外となった回数（以下、「オーバー回数」とも称する。）をカウントする。
【０１９７】
図２６は、オーバー回数のカウント方式を説明するための図である。図２６を参照して、監視部１１３Ｃは、各補正量のうちの少なくとも１つが目標範囲外となったオーバー回数をカウントする。図２６の例では、時刻ｔ１ａ〜ｔ５ａの間に、あるスレーブ装置２から取得した補正量が目標範囲外となった回数（すなわち、オーバー回数）は１０回である。
【０１９８】
再び、図２５を参照して、監視部１１３Ｃは、オーバー回数が閾値Ｔｈに到達したか否かを判断する。監視部１１３Ｃは、当該判断結果に基づいて、情報切替部３０１，３０３，３０５，３０７に指示を与える。
【０１９９】
具体的には、オーバー回数が閾値Ｔｈ未満である場合、監視部１１３Ｃは、機械学習器５による機械学習を進めるために、情報切替部３０１，３０３，３０５，３０７へ指示を与える。具体的には、監視部１１３Ｃは、情報切替部３０１に対して、同期周期選択部５１２からの各グループの同期周期を時刻同期通信部１０１Ｂへ出力するように指示する。監視部１１３Ｃは、情報切替部３０３に対して、分類情報選択部５１０からの分類情報を時刻同期通信部１０１Ｂへ出力するように指示し、情報切替部３０５に対して、分類情報選択部５１０からの分類情報を状態観測部５２へ出力するように指示し、情報切替部３０７に対して、同期周期選択部５１２からの各グループの同期周期を状態観測部５２へ出力するように指示する。
【０２００】
一方、オーバー回数が閾値Ｔｈ以上である場合、監視部１１３Ｃは、分類情報および各グループの同期周期の初期設定をやり直してから機械学習器５による学習を進めるために、情報切替部３０１，３０３，３０５，３０７へ指示を与える。具体的には、監視部１１３Ｃは、情報切替部３０１に対して、設定部１１１からの各グループの同期周期を時刻同期通信部１０１Ｂへ出力するように指示する。監視部１１３Ｃは、情報切替部３０３に対して、分類部１０９からの分類情報を時刻同期通信部１０１Ｂへ出力するように指示し、情報切替部３０５に対して、分類部１０９からの分類情報を状態観測部５２へ出力するように指示し、情報切替部３０７に対して、設定部１１１からの各グループの同期周期を状態観測部５２へ出力するように指示する。
【０２０１】
これにより、オーバー回数が閾値Ｔｈ未満である間は、機械学習器５による学習が進み、機械学習器５による学習中にオーバー回数が閾値Ｔｈ以上になった場合には、最初の初期設定が好ましくないとみなして、設定部１１１および分類部１０９により分類情報および各グループの同期周期の初期設定が再度実行される。
【０２０２】
＜処理手順＞
図２７は、実施の形態５に従うマスタ装置１Ｃの処理手順の一例を示すフローチャートである。図２７を参照して、マスタ装置１Ｃは、各スレーブ装置２から取得される各補正量のうちの少なくとも１つが目標範囲外となる回数（すなわち、オーバー回数）の閾値Ｔｈを設定する（ステップＳ３２０）。ステップＳ１０〜Ｓ２２の各処理は、図９に示す処理と同様であるため、その詳細な説明は繰り返さない。
【０２０３】
マスタ装置１Ｃは、ステップＳ２０において設定された新たな同期周期でステップＳ２２における時刻同期を実行した場合に、各スレーブ装置２から取得された各補正量の少なくとも１つが目標範囲外となった回数（すなわち、オーバ回数）をカウントする（ステップＳ３２２）。具体的には、マスタ装置１Ｃは、各補正量の少なくとも１つが目標範囲外である場合には現在のオーバー回数に１カウントを追加し、各補正量が目標範囲内である場合には現在のオーバー回数を維持する。
【０２０４】
マスタ装置１Ｃは、オーバー回数が閾値Ｔｈ以上であるか否かを判断する（ステップＳ３２４）。オーバー回数が閾値Ｔｈ以上である場合には（ステップＳ３２４においてＹＥＳ）、マスタ装置１ＣはステップＳ１０の処理を実行する。この場合、マスタ装置１Ｃは、再度、ステップＳ１０〜Ｓ２２の処理を実行し、各スレーブ装置２を複数のグループに再分類するとともに、各グループの同期周期を再設定する。
【０２０５】
オーバー回数が閾値Ｔｈ未満である場合には（ステップＳ３２４においてＮＯ）、マスタ装置１Ｃは、各スレーブ装置２から、ステップＳ２２における時刻同期を実行した場合の各補正量と、ステップＳ１８において設定された複数のグループに各スレーブ装置２を分類するための分類情報と、ステップＳ２０において設定された各グループの同期周期とを状態変数として観測する（ステップＳ３０４Ａ）。
【０２０６】
続いて、マスタ装置１Ｃは、図２４で説明したステップＳ３０６〜Ｓ３１２の各処理を実行する。具体的には、マスタ装置１Ｃは、ステップＳ３０４Ａにおいて観測された各補正量、各グループの同期周期、および分類情報を入力とする学習モデルを用いて、各スレーブ装置２を他の複数のグループに分類するための他の分類情報と、他の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置２とマスタ装置１Ｃが時刻同期を行なう他の新たな同期周期とを選択する。選択される他の分類情報は、ステップＳ１８での処理に対応する分類情報とは別の分類情報であり、他の新たな同期周期は、ステップＳ２０において設定された新たな同期周期とは別の同期周期である。マスタ装置１Ｃは、選択された分類情報に基づいて各スレーブ装置２を他の複数のグループに分類し、グループごとに設定された同期周期で、各グループに属する１以上のスレーブ装置２と時刻同期を実行する。
【０２０７】
続いて、ステップＳ３２２において、マスタ装置１Ｃは、各スレーブ装置２から、ステップＳ３１２における時刻同期を実行した場合に、各スレーブ装置２から取得された各補正量の少なくとも１つが目標範囲外となった回数をカウントする。オーバー回数が閾値Ｔｈ未満である場合（ステップＳ３２４においてＮＯ）、マスタ装置１ＣはステップＳ３０４Ａを実行する。具体的には、マスタ装置１Ｃは、ステップＳ３１２における時刻同期を実行した場合の各補正量と、ステップＳ３１０で選択された分類情報および各グループの同期周期とを状態変数として観測する。以降、図２４で説明したステップＳ３０６〜Ｓ３１２の各処理を実行する。
【０２０８】
＜利点＞
実施の形態５によると、機械学習の開始時に時刻同期精度が要求される目標同期精度から外れることを抑制する。また、オーバー回数が閾値以上になった場合には学習結果が発散しているとみなして、再度、分類情報および各グループの同期周期を設定することができる。
【０２０９】
実施の形態６．
実施の形態１では、マスタ装置１が各グループに属する複数のスレーブ装置２と直接時刻同期を実行する構成について説明した。実施の形態６では、各グループに属する複数のスレーブ装置２の中から選定されたサブマスタ装置とマスタ装置１との間で時刻同期が実施される。また、各グループにおいて、サブマスタ装置と複数のスレーブ装置２との間で時刻同期が実施される。
【０２１０】
図２８は、実施の形態６に従う通信システムにおいて、同期周期が最適化された状態の構成を示す図である。ここで、ネットワークの初期構成は、図４に示すように、マスタ装置１に複数のスレーブ装置２が接続されている構成であるとする。マスタ装置１は、各スレーブ装置２を複数のグループに分け、各グループを代表するサブマスタ装置４を選定すると、図２８に示すネットワークが形成される。
【０２１１】
具体的には、実施の形態１で説明したように、マスタ装置１は、各スレーブ♯４，♯７，♯９，♯１３をグループＡに分類し、各スレーブ♯５，♯６，♯８，♯１０をグループＢに分類し、各スレーブ♯１，♯２，♯３，♯１１，♯１２をグループＣに分類する。
【０２１２】
ここで、図２８中の「ＳＭＡ」はサブマスタ装置４を表わしており、３つのサブマスタ装置４は、それぞれサブマスタ♯１〜♯３とも称される。マスタ装置１は、グループＡに属する各スレーブ装置２のうちの１のスレーブ装置（例えば、スレーブ♯４）を、グループＡにおけるサブマスタ装置４（以下、「サブマスタ♯１」とも称する。）として選定する。マスタ装置１は、グループＢに属する各スレーブ装置２のうちの１のスレーブ装置（例えば、スレーブ♯５）を、グループＢにおけるサブマスタ装置４（以下、「サブマスタ♯２」とも称する。）として選定し、グループＣに属する各スレーブ装置２のうちの１のスレーブ装置（例えば、スレーブ♯１）を、グループＣにおけるサブマスタ装置４（以下、「サブマスタ♯３」とも称する。）として選定する。例えば、サブマスタ装置４の選定は、ランダムに行われる。
【０２１３】
マスタ装置１は、グループＡのサブマスタ♯１と時刻同期を行なう新たな同期周期として、グループＡに属する各スレーブ装置２における目標同期周期のうち最大の目標同期周期Ｘａを設定する。マスタ装置１は、グループＢのサブマスタ♯２と時刻同期を行なう新たな同期周期として目標同期周期Ｘｂを設定し、グループＣのサブマスタ♯３と時刻同期を行なう新たな同期周期として目標同期周期Ｘｃを設定する。マスタ装置１は、新たな同期周期Ｘａ，Ｘｂ，Ｘｃで、それぞれサブマスタ♯１，♯２，♯３とＰＴＰメッセージを送受信して時刻同期を実行する。
【０２１４】
また、サブマスタ♯１は、マスタ装置１により設定された同期周期Ｘａで、グループＡに属するスレーブ♯７，♯９，♯１３とＰＴＰメッセージを送受信して時刻同期を実行する。サブマスタ♯２は、同期周期Ｘｂで、グループＢに属するスレーブ♯６，♯８，♯１０と時刻同期を実行する。サブマスタ♯３は、同期周期Ｘｃで、グループＣに属するスレーブ♯２，♯３，♯１１，♯１２と時刻同期を実行する。
【０２１５】
各スレーブ装置２は、当該同期周期でサブマスタ装置４と時刻同期を行なった場合における補正量をサブマスタ装置４に送信する。サブマスタ装置４は、各スレーブ装置２から取得した補正量と、自装置がマスタ装置１と時刻同期を行なった場合における補正量とをマスタ装置１に送信する。例えば、サブマスタ♯１は、各スレーブ♯７，♯９，♯１３から取得した補正量と、自身が算出した補正量とをマスタ装置１に送信する。
【０２１６】
このように、実施の形態６では、サブマスタ装置４は、設定された同期周期でマスタ装置１と時刻同期を実行するとともに、当該設定された同期周期と同じ同期周期で、自装置と同じグループに属する各スレーブ装置２と時刻同期を実行する。したがって、実施の形態６では、実施の形態１よりも、マスタ装置１のＰＴＰメッセージの通信量を削減できるため、マスタ装置１のネットワークの負荷を軽減できる。
【０２１７】
＜機能構成＞
図２９は、実施の形態６に従うサブマスタ装置４の機能構成を示す模式図である。図２９を参照して、サブマスタ装置４は、実施の形態１の図８で説明したスレーブ装置２としての機能として、時刻同期通信部２０１と、補正量算出部２０３と、時刻カウンタ２０５と、補正量送信部２０７とを含む。サブマスタ装置４は、同じグループに属する各スレーブ装置２の時刻同期を管理する機能として、同期周期計測部４０１と、時刻同期通信部４０３と、補正量取得部４０５とを含む。典型的には、これらの各機能は、サブマスタ装置４のＣＰＵがメモリに格納されたプログラムを実行することによって実現される。なお、これらの機能の一部または全部は専用の回路を用いることによって実現されるように構成されていてもよい。
【０２１８】
図２９では、マスタ装置１によって各スレーブ装置２が複数のグループに分類され、各グループのサブマスタ装置４が選定された状態であるとする。また、マスタ装置１およびスレーブ装置２は、例えば、図８に示すような機能構成を有するものとする。
【０２１９】
時刻同期通信部２０１は、マスタ装置１により設定された同期周期で、マスタ装置１の時刻同期通信部１０１と時刻同期を実行する。補正量算出部２０３は、マスタ装置１と時刻同期を行なった場合における、サブマスタ装置４の時刻（以下、「サブマスタ時刻」とも称する。）とマスタ時刻との時刻差の補正量を算出する。
【０２２０】
同期周期計測部４０１は、マスタ装置１の時刻同期通信部１０１および時刻同期通信部２０１が送受信しているＰＴＰメッセージを監視する。同期周期計測部４０１は、当該ＰＴＰメッセージの送受信間隔に基づいて、マスタ装置１およびサブマスタ装置４間の時刻同期の同期周期を計測する。なお、マスタ装置１により設定された同期周期は、サブマスタ装置４には通知されない。そこで、サブマスタ装置４側で当該同期周期を把握するために、同期周期計測部４０１によって、マスタ装置１およびサブマスタ装置４間の時刻同期の同期周期が計測される。
【０２２１】
時刻同期通信部４０３は、計測された同期周期（すなわち、マスタ装置１およびサブマスタ装置４間で実行される時刻同期の同期周期）で、サブマスタ装置４と同じグループに属する各スレーブ装置２と時刻同期を実行する。各スレーブ装置２は、当該同期周期でサブマスタ装置４と時刻同期を行なった場合における、サブマスタ時刻とスレーブ時刻との時刻差の補正量を算出する。補正量取得部４０５は、各スレーブ装置２から、当該算出された補正量を取得する。
【０２２２】
補正量送信部２０７は、補正量算出部２０３により算出された補正量と、各スレーブ装置２から取得した補正量とをマスタ装置１に送信する。
【０２２３】
＜処理手順＞
図３０は、実施の形態６に従う通信システムの動作の一例を示すフローチャートである。図３０のステップＳ１０〜Ｓ１８，Ｓ８０〜Ｓ８４の各処理は、典型的には、マスタ装置１のＣＰＵ１１がメモリ１２に格納されたプログラムを実行することによって実現される。図３０のステップＳ１０２〜Ｓ１０８の各処理は、典型的には、サブマスタ装置４のＣＰＵがメモリに格納されたプログラムを実行することによって実現される。なお、フローチャートの開始時点では、各スレーブ装置２は複数のグループに分類されていないものとする。
【０２２４】
図３０を参照して、ステップＳ１０〜Ｓ１８の処理は、図９に示す処理と同様であるため、その詳細な説明は繰り返さない。ステップＳ１８までの処理が終了すると、各スレーブ装置２が複数のグループに分類される。例えば、図２８に示すように、各スレーブ装置２がグループＡ〜Ｃに分類される。
【０２２５】
ステップＳ１８の後、マスタ装置１は、複数のグループの各々について、当該グループに分類された１以上のスレーブ装置２の中からサブマスタ装置４を選定する（ステップＳ８０）。例えば、マスタ装置１は、各スレーブ装置２の中からサブマスタ装置４をランダムに選定する。
【０２２６】
マスタ装置１は、複数のグループの各々について、当該グループに分類された１以上のスレーブ装置２における目標同期周期のうち最大の目標同期周期を、マスタ装置１が当該グループにおけるサブマスタ装置４と時刻同期を行なう新たな同期周期として設定する（ステップＳ８２）。マスタ装置１は、グループごとに設定された新たな同期周期で、各グループにおけるサブマスタ装置４と時刻同期を実行する（ステップＳ８４）。
【０２２７】
次に、サブマスタ装置４は、新たな同期周期でマスタ装置１と時刻同期を行った場合における、マスタ時刻とサブマスタ時刻との時刻差の補正量（以下、便宜上「第１時刻補正量」とも称する。）を算出し、当該第１時刻補正量を用いてサブマスタ時刻を補正する（ステップＳ１０２）。サブマスタ装置４は、マスタ装置１と送受信しているＰＴＰメッセージの送受信間隔に基づいて、マスタ装置１との間で実行している時刻同期の同期周期を計測する（ステップＳ１０４）。
【０２２８】
サブマスタ装置４は、計測した同期周期（すなわち、新たな同期周期）で、自装置と同じグループに分類されている各スレーブ装置２と時刻同期を実行する（ステップＳ１０６）。各スレーブ装置２は、当該同期周期でサブマスタ装置４と時刻同期を行った場合における補正量（以下、便宜上「第２時刻補正量」とも称する。）を算出し、当該第２時刻補正量をサブマスタ装置４に送信する。サブマスタ装置４は、ステップＳ１０２において算出した第１時刻補正量と、各スレーブ装置２から取得した第２時刻補正量とをマスタ装置１に送信する（ステップＳ１０８）。
【０２２９】
上記において、マスタ装置１は、ステップＳ１０８において送信された各時刻補正量を用いて図１０のステップＳ３２に示す処理を実行してもよい。具体的には、各サブマスタ装置４から受信した複数の時刻補正量のうちの少なくとも１つが目標補正量Ｙｓ以上である場合、マスタ装置１はステップＳ１０からの処理を再実行する。この場合、マスタ装置１は、各サブマスタ装置４から取得した複数の時刻補正量に基づいて、各スレーブ装置２と時刻同期を行なう際の同期周期を再設定する。
【０２３０】
各サブマスタ装置４から受信したすべての時刻補正量が目標補正量Ｙｓ未満である場合、マスタ装置１はステップＳ８４からの処理を繰り返す。この場合、現在設定されている同期周期で、マスタ装置１はサブマスタ装置４と時刻同期を行ない、サブマスタ装置４は各スレーブ装置２と時刻同期を行なう。
【０２３１】
実施の形態６において、他の実施の形態（例えば、実施の形態２，４，５）に従う分類方式を採用して、各スレーブ装置２を複数のグループに分類する構成であってもよい。また、実施の形態６において、実施の形態３の図１４のように、ホップ数が最小の通信経路に従って、マスタ装置１および各スレーブ装置２がマルチホップ通信を行なう構成であってもよい。この場合、サブマスタ装置４は、マスタ装置１から１ホップ目の経路にあたるノードに設定される。例えば、グループＡのサブマスタ♯１はスレーブ♯４であり、グループＢのサブマスタ♯２はスレーブ♯５であり、グループＣのサブマスタ♯３はスレーブ♯１である。
【０２３２】
＜利点＞
実施の形態６によると、実施の形態１の利点に加えて、時刻同期精度を確保しつつ、マスタ装置１のＰＴＰメッセージの通信量を削減でき、マスタ装置１のネットワークの負荷を軽減できる。また、マスタ装置１、サブマスタ装置４、およびスレーブ装置２において、高価かつ高精度のクロック発信器を用いる必要が無いため、装置の価格を抑えることもできる。
【０２３３】
その他の実施の形態．
（１）上述した実施の形態１では、同期周期ごとに時刻同期を複数回実施することにより、補正量のバラツキを考慮して、同期周期と補正量との対応関係（例えば、一次関数５０１）を求める構成について説明したが、当該構成に限られない。例えば、同期周期ごとに、時刻同期を１回実施することにより、同様の方法で、同期周期と補正量との対応関係を求める構成であってもよい。この場合、複数のスレーブ装置２の各々における当該対応関係は、当該スレーブ装置２がマスタ装置１と時刻同期を行なう同期周期に対して、当該スレーブ装置２における補正量を直線近似した一次関数である。
【０２３４】
（２）上述した実施の形態４および５では、状態変数として、各スレーブ装置２から取得される補正量、各グループの同期周期、および分類情報を用いる構成について説明したが、当該構成に限られない。例えば、状態変数として分類情報を用いない構成であってもよい。この場合、状態変数は、各スレーブ装置２から取得される補正量および１つの同期周期である。
【０２３５】
具体的には、マスタ装置１Ｂは、同期周期の初期値をランダムに設定し、設定された同期周期で各スレーブ装置２と時刻同期を実行する。マスタ装置１Ｂは、各スレーブ装置２から、当該同期周期でマスタ装置１Ｂと時刻同期を行なった場合における、マスタ装置１Ｂの時刻と当該スレーブ装置２の時刻との差の補正量を取得する。
【０２３６】
次に、マスタ装置１Ｂは、取得した各補正量および当該同期周期とを入力とする学習モデルを用いて、各スレーブ装置２と時刻同期を行なう新たな同期周期を選択する。具体的には、マスタ装置１Ｂは、各補正量と、当該同期周期を状態変数として観測する。マスタ装置１Ｂは、上述した報酬基準に従って報酬を計算し、式（７）を用いて行動価値関数Ｑ（ｓt，ａt）を更新し、公知の行動選択方式を用いて新たな同期周期を選択する。
【０２３７】
続いて、マスタ装置１Ｂは、選択された同期周期で各スレーブ装置２と時刻同期を実行する。その後、マスタ装置１Ｂは、行動価値関数Ｑ（ｓt，ａt）が収束すると、当該行動価値関数Ｑ（ｓt，ａt）に基づいて報酬が最も多く得られる同期周期を選択する。マスタ装置１Ｂは、選択した同期周期に基づいて、各スレーブ装置２と時刻同期を実行する。
【０２３８】
なお、スレーブ装置２を使用する周辺環境の温度変化等の要因により、遅延時間ｔｄおよび時刻差ｔｄｉｆｆにバラツキが生じることから、状態変数として、スレーブ装置２の周辺環境の温度をさらに含む構成であってもよい。この場合、スレーブ装置２に温度センサを搭載し、スレーブ装置２は、検出された温度を時刻同期の補正量とともにマスタ装置へ送信すればよい。
【０２３９】
（３）上述した実施の形態４および５では、機械学習器５が強化学習を利用して機械学習をする場合について説明したが、これに限られない。機械学習器５は、教師あり学習、教師なし学習、または半教師あり学習等を利用して機械学習を行なってもよい。
【０２４０】
また、上述した学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習（Deep  Learning）を用いることもでき、他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
【０２４１】
（４）上述した実施の形態では、ｋ平均法によるスレーブ装置２のクラスタリング機能、同期周期の設定機能、機械学習機能はマスタ装置に搭載されているが、これに限られない。例えば、機械学習器をＧＰＧＰＵで実現してもよいし、クラウドサーバ上に置いて、マスタ装置とクラウドサーバとで通信して実現してもよい。また、上述したマスタ装置およびスレーブ装置の各処理は、ソフトウェアプログラムで実現してもよく、また、電子回路とソフトウェアプログラムを組み合わせて実現してもよい。
【０２４２】
（５）上述の実施の形態として例示した構成は、本発明の構成の一例であり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、一部を省略する等、変更して構成することも可能である。また、上述した実施の形態において、他の実施の形態で説明した処理および構成を適宜採用して実施する場合であってもよい。
【０２４３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２４４】
１，１Ａ〜１Ｃ  マスタ装置、２，２Ａ  スレーブ装置、３  ネットワーク、４  サブマスタ装置、５  機械学習器、１１  ＣＰＵ、１２  メモリ、１３  ネットワークインターフェイス、１４  バス、５２  状態観測部、５４  学習部、５６  行動選択部、１００，１００Ａ  通信システム、１０１，１０１Ｂ，２０１，４０３  時刻同期通信部、１０３，４０５  補正量取得部、１０５  関係算出部、１０７  目標同期周期算出部、１０９  分類部、１１１  設定部、１１３，１１３Ｃ  監視部、１１５  経路算出部、２０３  補正量算出部、２０５  時刻カウンタ、２０７  補正量送信部、２０９  経路探索部、３０１，３０３，３０５，３０７  情報切替部、４０１  同期周期計測部、５０２  報酬基準設定部、５０４  報酬計算部、５０６  学習結果記憶部、５０８  関数更新部、５１０  分類情報選択部、５１２  同期周期選択部。
【図１】
2020213190.tif 000005
【図２】
2020213190.tif 000006
【図３】
2020213190.tif 000007
【図４】
2020213190.tif 000008
【図５】
2020213190.tif 000009
【図６】
2020213190.tif 000010
【図７】
2020213190.tif 000011
【図８】
2020213190.tif 000012
【図９】
2020213190.tif 000013
【図１０】
2020213190.tif 000014
【図１１】
2020213190.tif 000015
【図１２】
2020213190.tif 000016
【図１３】
2020213190.tif 000017
【図１４】
2020213190.tif 000018
【図１５】
2020213190.tif 000019
【図１６】
2020213190.tif 000020
【図１７】
2020213190.tif 000021
【図１８】
2020213190.tif 000022
【図１９】
2020213190.tif 000023
【図２０】
2020213190.tif 000024
【図２１】
2020213190.tif 000025
【図２２】
2020213190.tif 000026
【図２３】
2020213190.tif 000027
【図２４】
2020213190.tif 000028
【図２５】
2020213190.tif 000029
【図２６】
2020213190.tif 000030
【図２７】
2020213190.tif 000031
【図２８】
2020213190.tif 000032
【図２９】
2020213190.tif 000033
【図３０】
2020213190.tif 000034
【手続補正書】
【提出日】令和3年8月16日(2021.8.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
各前記スレーブ装置は、複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、
前記マスタ装置は、
各前記スレーブ装置から、各前記同期周期についての前記補正量を取得し、
前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された各前記補正量に基づいて、前記マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、
前記複数のスレーブ装置の各々について、当該スレーブ装置の前記対応関係に基づいて、当該スレーブ装置における前記補正量の目標値に対応する目標同期周期を算出し、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を複数のグループに分類し、
前記複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における前記目標同期周期のうち最大の目標同期周期を、前記マスタ装置が前記１以上のスレーブ装置と時刻同期を行なう新たな同期周期として設定する、通信システム。
【請求項２】
各前記スレーブ装置は、前記複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を複数回実行し、複数回分の各前記補正量を記憶し、
前記マスタ装置は、前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された複数回分の各前記補正量に基づいて、当該スレーブ装置における前記対応関係を算出し、
前記複数のスレーブ装置の各々における前記対応関係は、当該スレーブ装置が前記マスタ装置と時刻同期を行なう同期周期に対して、複数回分の前記補正量における、平均値と標準偏差との加算値を、直線近似した一次関数である、請求項１に記載の通信システム。
【請求項３】
前記マスタ装置は、前記複数のスレーブ装置の各々について、当該スレーブ装置における前記一次関数と前記補正量の目標値とに基づいて、当該スレーブ装置における前記目標同期周期を算出する、請求項２に記載の通信システム。
【請求項４】
前記マスタ装置は、前記複数のスレーブ装置の各々について、当該スレーブ装置における前記目標同期周期と各前記グループに対応するクラスタ中心との距離を算出し、当該距離が最も小さくなる前記クラスタ中心に対応するグループに当該スレーブ装置を分類する、請求項１〜請求項３のいずれか１項に記載の通信システム。
【請求項５】
前記新たな同期周期を設定した後に、各前記スレーブ装置から取得された前記補正量の少なくとも１つが前記目標値以上である場合、前記マスタ装置は、各前記補正量を取得する処理、前記対応関係を算出する処理、前記目標同期周期を算出する処理、各前記スレーブ装置を前記複数のグループに分類する処理、および、前記新たな同期周期を設定する処理の各処理を再度実行する、請求項１〜請求項４のいずれか１項に記載の通信システム。
【請求項６】
前記マスタ装置は、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を第１の複数の候補グループに分類し、
各前記スレーブ装置を、前記第１の複数の候補グループとは異なる第２の複数の候補グループに分類し、
予め定められた式に基づいて、各前記スレーブ装置が前記第１の複数の候補グループに分類された場合における、前記通信システムのネットワーク負荷を示す第１評価値と、各前記スレーブ装置が前記第２の複数の候補グループに分類された場合における、前記通信システムのネットワーク負荷を示す第２評価値とを算出し、
前記第１および第２評価値のうち最小の評価値に対応する複数の候補グループを、前記複数のグループとして決定する、請求項１〜請求項５のいずれか１項に記載の通信システム。
【請求項７】
前記マスタ装置は、前記第１の複数の候補グループに分類する際に用いた前記補正量の目標値の変更、および前記第１の複数の候補グループの数の変更のうちの少なくとも１つを実行することによって、各前記スレーブ装置を前記第２の複数の候補グループに分類する、請求項６に記載の通信システム。
【請求項８】
前記マスタ装置は、前記第２の複数の候補グループのうちの第１候補グループに属するスレーブ装置と、前記第２の複数の候補グループのうちの第２候補グループに属するスレーブ装置とを入れ替えることによって、各前記スレーブ装置を第３の複数の候補グループに分類する、請求項７に記載の通信システム。
【請求項９】
前記マスタ装置および各前記スレーブ装置はマルチホップ通信可能に構成されており、
前記マスタ装置は、
前記複数のグループの各々について、前記マスタ装置と当該グループに属する複数のスレーブ装置との間における複数の通信経路を算出し、
前記複数のグループの各々について、当該グループにおける前記複数の通信経路のうち、当該グループに属する複数のスレーブ装置のホップ数を最小化する通信経路に従って、当該複数のスレーブ装置とマルチホップ通信を行なう、請求項１〜請求項７のいずれか１項に記載の通信システム。
【請求項１０】
前記マスタ装置は、前記新たな同期周期で時刻同期を実行した場合に、各前記スレーブ装置から取得された各前記補正量の少なくとも１つが目標範囲外となった回数をカウントし、
前記回数が閾値未満である場合、前記マスタ装置は、
各前記補正量、各前記新たな同期周期、および、各前記スレーブ装置を前記複数のグループに分類するための分類情報を入力とする学習モデルを用いて、各前記スレーブ装置を他の複数のグループに分類するための他の分類情報と、前記他の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう他の新たな同期周期とを選択する、請求項１〜請求項４のいずれか１項に記載の通信システム。
【請求項１１】
複数のスレーブ装置と通信可能に構成されたマスタ装置であって、
前記マスタ装置は、
各前記スレーブ装置から、複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、
前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された各前記補正量に基づいて、前記マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、
前記複数のスレーブ装置の各々について、当該スレーブ装置の前記対応関係に基づいて、当該スレーブ装置における前記補正量の目標値に対応する目標同期周期を算出し、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を複数のグループに分類し、
前記複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における前記目標同期周期のうち最大の目標同期周期を、前記マスタ装置が前記１以上のスレーブ装置と時刻同期を行なう新たな同期周期として設定する、マスタ装置。
【請求項１２】
マスタ装置と通信可能に構成されたスレーブ装置であって、
前記スレーブ装置は、
複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、
各前記同期周期についての前記補正量を前記マスタ装置に送信し、
各前記補正量に基づいて前記マスタ装置により設定された新たな同期周期で前記マスタ装置と時刻同期を実行する、スレーブ装置。
【請求項１３】
マスタ装置と通信可能に構成されたスレーブ装置であって、
前記スレーブ装置は、
複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、
各前記同期周期についての前記補正量を前記マスタ装置に送信し、
各前記補正量に基づいて前記マスタ装置により設定された新たな同期周期で、前記スレーブ装置と同じグループに属する１以上のスレーブ装置の中から選定されたサブマスタ装置と時刻同期を実行する、スレーブ装置。
【請求項１４】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
前記マスタ装置は、
第１分類情報に基づいて、各前記スレーブ装置を第１の複数のグループに分類し、
前記第１の複数のグループの各々について、当該グループに設定された第１同期周期で当該グループに分類された１以上のスレーブ装置と時刻同期を行ない、
前記時刻同期を行なった場合に、各前記スレーブ装置から、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の第１補正量を取得し、
各前記第１補正量、各前記第１同期周期、および前記第１分類情報を入力とする学習モデルを用いて、各前記スレーブ装置を第２の複数のグループに分類するための第２分類情報と、前記第２の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第２同期周期とを選択する、通信システム。
【請求項１５】
前記マスタ装置は、各前記第１同期周期の総和および各前記第１補正量の少なくとも一方に基づいて、前記学習モデルの学習に用いられる報酬を計算する、請求項１４に記載の通信システム。
【請求項１６】
前記マスタ装置は、
前記学習モデルの学習が終了した学習済モデルに基づいて、前記複数のスレーブ装置を第３の複数のグループに分類するための第３分類情報と、前記第３の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第３同期周期とを選択し、
前記第３分類情報に基づいて、前記複数のスレーブ装置を前記第３の複数のグループに分類し、
前記第３の複数のグループのうちの１のグループに新たな他のスレーブ装置を追加することにより、前記複数のスレーブ装置および前記他のスレーブ装置を第４の複数のグループに分類し、
前記第４の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と、当該グループに設定された前記第３同期周期で時刻同期を行なう、請求項１４または請求項１５に記載の通信システム。
【請求項１７】
前記マスタ装置は、
前記第３同期周期で時刻同期を行なった場合に、前記複数のスレーブ装置および前記他のスレーブ装置の各々から、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の第２補正量を取得し、
各前記第２補正量の少なくとも１つが基準閾値以上である場合、各前記第２補正量と、各前記第３同期周期と、前記複数のスレーブ装置および前記他のスレーブ装置を前記第４の複数のグループに分類するための第４分類情報とを再学習前の前記学習済モデルに入力し、
各前記第２補正量と、各前記第３同期周期と、前記第４分類情報とが前記再学習前の前記学習済モデルに入力されることにより再学習された前記学習済モデルを用いて、前記複数のスレーブ装置および前記他のスレーブ装置を第５の複数のグループに分類するための第５分類情報と、前記第５の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第４同期周期とを選択する、請求項１６に記載の通信システム。
【請求項１８】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
前記マスタ装置は、
第１分類情報に基づいて、前記複数のスレーブ装置のうちの少なくとも１つのスレーブ装置を第１の複数のグループに分類し、
前記第１の複数のグループの各々について、当該グループに設定された第１同期周期で当該グループに分類された１以上のスレーブ装置と時刻同期を行ない、
前記時刻同期を行なった場合に、前記少なくとも１つのスレーブ装置の各々から、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の第１補正量を取得し、
各前記第１補正量、各前記第１同期周期、および前記第１分類情報を入力とする学習モデルを用いて、前記少なくとも１つのスレーブ装置を第２の複数のグループに分類するための第２分類情報と、前記第２の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第２同期周期とを選択する、通信システム。
【請求項１９】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
前記マスタ装置は、
設定された同期周期で各前記スレーブ装置と時刻同期を行ない、
各前記スレーブ装置から、前記同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、
取得した各前記補正量および前記同期周期を入力とする学習モデルを用いて、各前記スレーブ装置と時刻同期を行なう新たな同期周期を選択する、通信システム。
【請求項２０】
複数のスレーブ装置と通信可能に構成されたマスタ装置であって、
前記マスタ装置は、
第１分類情報に基づいて、各前記スレーブ装置を第１の複数のグループに分類し、
前記第１の複数のグループの各々について、当該グループ用に設定された第１同期周期で当該グループに分類された１以上のスレーブ装置と時刻同期を行ない、
前記時刻同期を行なった場合に、各前記スレーブ装置から、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の第１補正量を取得し、
各前記第１補正量、各前記第１同期周期、および前記第１分類情報を入力とする学習モデルを用いて、各前記スレーブ装置を第２の複数のグループに分類するための第２分類情報と、前記第２の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第２同期周期とを選択する、マスタ装置。
【請求項２１】
複数のスレーブ装置と通信可能に構成されたマスタ装置であって、
前記マスタ装置は、
第１分類情報に基づいて、前記複数のスレーブ装置のうちの少なくとも１つのスレーブ装置を第１の複数のグループに分類し、
前記第１の複数のグループの各々について、当該グループ用に設定された第１同期周期で当該グループに分類された１以上のスレーブ装置と時刻同期を行ない、
前記時刻同期を行なった場合に、前記少なくとも１つのスレーブ装置の各々から、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の第１補正量を取得し、
各前記第１補正量、各前記第１同期周期、および前記第１分類情報を入力とする学習モデルを用いて、前記少なくとも１つのスレーブ装置を第２の複数のグループに分類するための第２分類情報と、前記第２の複数のグループの各々について、当該グループに分類された１以上のスレーブ装置と前記マスタ装置が時刻同期を行なう新たな第２同期周期とを選択する、マスタ装置。
【請求項２２】
複数のスレーブ装置と通信可能に構成されたマスタ装置であって、
前記マスタ装置は、
設定された同期周期で各前記スレーブ装置と時刻同期を行ない、
各前記スレーブ装置から、前記同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を取得し、
取得した各前記補正量および前記同期周期を入力とする学習モデルを用いて、各前記スレーブ装置と時刻同期を行なう新たな同期周期を選択する、マスタ装置。
【請求項２３】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
各前記スレーブ装置は、複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、
前記マスタ装置は、
各前記スレーブ装置から、各前記同期周期についての前記補正量を取得し、
前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された各前記補正量に基づいて、前記マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、
前記複数のスレーブ装置の各々について、当該スレーブ装置の前記対応関係に基づいて、当該スレーブ装置における前記補正量の目標値に対応する目標同期周期を算出し、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を複数のグループに分類し、
前記複数のグループの各々について、当該グループに分類された１以上のスレーブ装置の中からサブマスタ装置を選定し、
前記複数のグループの各々について、当該グループに分類された１以上のスレーブ装置における前記目標同期周期のうち最大の目標同期周期を、前記マスタ装置が当該グループにおける前記サブマスタ装置と時刻同期を行なう新たな同期周期として設定する、通信システム。
【請求項２４】
前記サブマスタ装置は、
前記新たな同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該サブマスタ装置の時刻との差の補正量を示す第１時刻補正量を算出し、
前記新たな同期周期で前記サブマスタ装置と同じグループに分類されている各スレーブ装置と時刻同期を行ない、
前記同じグループに分類されている各スレーブ装置から、前記新たな同期周期で前記サブマスタ装置と時刻同期を行なった場合における、前記サブマスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を示す第２時刻補正量を取得し、
前記第１時刻補正量と、各前記第２時刻補正量を前記マスタ装置に送信する、請求項２３に記載の通信システム。
【請求項２５】
前記マスタ装置は、
前記複数のグループの各々について、前記マスタ装置と、当該グループに属する前記サブマスタ装置および１以上のスレーブ装置との間における複数の通信経路を算出し、
前記複数のグループの各々について、当該グループにおける前記複数の通信経路のうち、当該グループに属する前記サブマスタ装置および１以上のスレーブ装置のホップ数を最小化する通信経路に従って、当該グループに属する前記サブマスタ装置および１以上のスレーブ装置とマルチホップ通信を行なう、請求項２３に記載の通信システム。
【請求項２６】
マスタ装置と、
前記マスタ装置から送信される時刻同期メッセージに基づいて前記マスタ装置と時刻同期を行なう複数のスレーブ装置とを備え、
各前記スレーブ装置は、複数の同期周期の各々について、当該同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を記憶し、
前記マスタ装置は、
各前記スレーブ装置から、各前記同期周期についての前記補正量を取得し、
前記複数のスレーブ装置の各々について、当該スレーブ装置から取得された各前記補正量に基づいて、前記マスタ装置が当該スレーブ装置と時刻同期を行なう同期周期と、前記マスタ装置の時刻と当該スレーブ装置の時刻との差の補正量との対応関係を算出し、
前記複数のスレーブ装置の各々について、当該スレーブ装置の前記対応関係に基づいて、当該スレーブ装置における前記補正量の目標値に対応する目標同期周期を算出し、
各前記スレーブ装置における前記目標同期周期に基づいて、各前記スレーブ装置を複数のグループに分類し、
前記複数のグループのいずれかのグループについて、当該グループに分類された１以上のスレーブ装置の中からサブマスタ装置を選定し、
前記サブマスタ装置が選定されたグループについて、当該グループに分類された１以上のスレーブ装置における前記目標同期周期のうち最大の目標同期周期を、前記マスタ装置が当該グループにおける前記サブマスタ装置と時刻同期を行なう新たな同期周期として設定する、通信システム。
【請求項２７】
マスタ装置および複数のスレーブ装置と通信可能に構成されたサブマスタ装置であって、
前記サブマスタ装置は、
設定された同期周期で前記マスタ装置と時刻同期を行なった場合における、前記マスタ装置の時刻と前記サブマスタ装置の時刻との差の補正量を示す第１時刻補正量を算出し、
前記同期周期で前記複数のスレーブ装置と時刻同期を行ない、
各前記スレーブ装置から、前記同期周期で前記サブマスタ装置と時刻同期を行なった場合における、前記サブマスタ装置の時刻と当該スレーブ装置の時刻との差の補正量を示す第２時刻補正量を取得し、
前記第１時刻補正量と、各前記第２時刻補正量を前記マスタ装置に送信する、サブマスタ装置。
【国際調査報告】
2020213190.tif 000035
2020213190.tif 000036
2020213190.tif 000037
2020213190.tif 000038
2020213190.tif 000039
2020213190.tif 000040