(57)【要約】【課題】クラスタリングされる地点の地理的範囲が広くなりすぎること。【解決手段】生成部１１１は、距離マトリックスにおいて要素−要素間または要素−クラスタ間のクラスタ間距離Ｌが最も小さい場合に、新規クラスタＮを生成する。特定部１１２は、新規クラスタＮと他のクラスタ間のクラスタ間距離Ｌが所定値よりも小さい場合に、クラスタ間距離Ｌを距離マトリックスに登録する。出力部１１３は、距離マトリックスに登録されたクラスタのうち、ヒヤリ度が所定以上のクラスタを注意地点とし、注意地点の情報を注意地点リストに出力する。【選択図】図１
2016024619.tif 000002
【特許請求の範囲】
【請求項１】
特定の事象と対応付けられた地点群について、地点間の距離に基づいて複数の地点を含むクラスタを生成し、
生成した前記クラスタに含まれる前記複数の地点の各々と、前記地点群のうち前記クラスタに含まれない特定の地点との間の距離のうち、最長の距離を特定し、
特定した前記最長の距離が所定の距離以内である場合に、前記クラスタに含まれる前記複数の地点と、前記特定の地点とを含むクラスタを生成し、出力する、
処理をコンピュータに実行させることを特徴とする情報処理方法。
【請求項２】
特定の事象と対応付けられた地点群について、地点間の距離に基づいてそれぞれ複数の地点を含む複数のクラスタを生成し、
生成した前記複数のクラスタのうちの第１のクラスタに含まれる複数の地点の各々と、生成した前記複数のクラスタのうちの第２のクラスタに含まれる複数の地点の各々との間の距離のうち、最長の距離を特定し、
特定した前記最長の距離が所定の距離以内である場合に、前記第１のクラスタに含まれる前記複数の地点と、前記第２のクラスタに含まれる前記複数の地点とを含むクラスタを生成し、出力する、
処理をコンピュータに実行させることを特徴とする情報処理方法。
【請求項３】
さらに、同一のクラスタに対応付けられた前記第一の事象に関する前記地点の数と、前記地点のうち第二の事象にも対応付けられている地点の数とに基づいて、該クラスタに対する評価値を算出する処理をコンピュータが実行し、
前記出力する処理は、前記クラスタの情報と前記評価値とを出力することを特徴とする請求項１または２に記載の情報処理方法。
【請求項４】
前記算出する処理は、前記第一の事象に対応付けられている地点の数に対する、前記第二の事象にも対応付けられている地点の数の割合に基づいて前記評価値を算出することを特徴とする請求項３に記載の情報処理方法。
【請求項５】
前記第一の事象は急ブレーキであり、
前記出力する処理は、前記クラスタの位置を示した地図を出力することを特徴とする請求項１〜４のいずれか一つに記載の情報処理方法。
【請求項６】
前記第二の事象はヒヤリハットであることを特徴とする請求項３に記載の情報処理方法。
【請求項７】
前記出力する処理はさらに、前記評価値が所定の値以上であるクラスタを出力対象とする請求項３または４に記載の情報処理方法。
【請求項８】
さらに、前記１のクラスタと前記他のクラスタまたは前記他の地点との間の距離を、子ノードよりも親ノードの方が小さくなるように構成されたヒープに記憶することを特徴とする請求項１〜７のいずれか一つに記載の情報処理方法。
【請求項９】
特定の事象と対応付けられた地点群について、地点間の距離に基づいて複数の地点を含むクラスタを生成する生成部と、
生成した前記クラスタに含まれる前記複数の地点の各々と、前記地点群のうち前記クラスタに含まれない特定の地点との間の距離のうち、最長の距離を特定する特定部と、
特定した前記最長の距離が所定の距離以内である場合に、前記クラスタに含まれる前記複数の地点と、前記特定の地点とを含むクラスタを生成し、出力する出力部と、
を有することを特徴とする情報処理装置。
【請求項１０】
特定の事象と対応付けられた地点群について、地点間の距離に基づいてそれぞれ複数の地点を含む複数のクラスタを生成する生成部と、
生成した前記複数のクラスタのうちの第１のクラスタに含まれる複数の地点の各々と、生成した前記複数のクラスタのうちの第２のクラスタに含まれる複数の地点の各々との間の距離のうち、最長の距離を特定する特定部と、
特定した前記最長の距離が所定の距離以内である場合に、前記第１のクラスタに含まれる前記複数の地点と、前記第２のクラスタに含まれる前記複数の地点とを含むクラスタを生成し、出力する出力部と、
を有することを特徴とする情報処理装置。
【請求項１１】
特定の事象と対応付けられた地点群について、地点間の距離に基づいて複数の地点を含むクラスタを生成し、
生成した前記クラスタに含まれる前記複数の地点の各々と、前記地点群のうち前記クラスタに含まれない特定の地点との間の距離のうち、最長の距離を特定し、
特定した前記最長の距離が所定の距離以内である場合に、前記クラスタに含まれる前記複数の地点と、前記特定の地点とを含むクラスタを生成し、出力する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項１２】
特定の事象と対応付けられた地点群について、地点間の距離に基づいてそれぞれ複数の地点を含む複数のクラスタを生成し、
生成した前記複数のクラスタのうちの第１のクラスタに含まれる複数の地点の各々と、生成した前記複数のクラスタのうちの第２のクラスタに含まれる複数の地点の各々との間の距離のうち、最長の距離を特定し、
特定した前記最長の距離が所定の距離以内である場合に、前記第１のクラスタに含まれる前記複数の地点と、前記第２のクラスタに含まれる前記複数の地点とを含むクラスタを生成し、出力する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、情報処理装置および情報処理プログラムに関する。
【背景技術】
【０００２】
自動車を運転している際に、危険な状況になる前にドライバに警告する技術がある。かかる技術では、自動車の周りの状況が検出される度に、運転者がヒヤリとしたりハッとしたりしたような危険を感じたであろう事象、いわゆるヒヤリハットを示すデータが蓄積される。蓄積されたデータ中でその発生地点が近いデータ同士がグループピングされ、複数のグループが生成される。グループごとに代表のデータが作成され、各々の代表のデータがヒヤリハットマップに登録される。
【０００３】
また、自動車の運転中にヒヤリハットマップから自動車の周りの状況にマッチした代表のデータが検索される。そして、検索された結果、自動車の周りの状況にマッチした代表のデータがヒヤリハットマップに登録されている場合に、ドライバへ警告がなされる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００９／１２８３９８号
【特許文献２】特開２０１３−１９６３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ヒヤリハットマップに示される危険とされる地点（スポット）が、的確であるためには、そのスポットの地理的範囲が必要以上に広がりをもたないことが重要であるが、このスポットの大きさが必要以上に大きくなっている問題がある。
【０００６】
例えば、従来からあるメッシュ技術によって、スポットを特定しようとする場合は、メッシュの枠が各スポットを分断することなく包含することを保証するために、メッシュ区画の大きさは、期待されるスポットの大きさ以上に設定しなければならなかった。そうなると、ヒヤリハットの多発地点を地図上で端的に示せなくなる。
【０００７】
また、こうして求めた地点（スポット）の地理範囲が広すぎるということは、例えば、大きな交差点内の中で急ブレーキ多発領域が複数個所あったとして、それらを包含する大きなひとつのスポットになってしまうことになる。例えば、交差点全体が、一つのスポットとしてみなされてしまう。こうなると、交差点の中のどこで注意すべきかの情報が失われてしまい、ヒヤリハットマップとしての価値が小さくなってしまう。
【０００８】
一つの側面では、事象と対応づけられた複数の地点についてクラスタリングする際に、クラスタリングされる地点の地理的範囲が広くなりすぎることを抑止できる情報処理方法、情報処理装置および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、情報処理方法は、特定の事象と対応付けられた地点群について、地点間の距離に基づいて複数の地点を含むクラスタを生成する処理をコンピュータ実行させる。情報処理方法は、生成したクラスタに含まれる複数の地点の各々と、地点群のうちクラスタに含まれない特定の地点との間の距離のうち、最長の距離を特定する処理をコンピュータ実行させる。情報処理方法は、特定した最長の距離が所定の距離以内である場合に、クラスタに含まれる複数の地点と、特定の地点とを含むクラスタを生成し、出力する処理をコンピュータ実行させる。
【発明の効果】
【００１０】
本発明の一実施態様によれば、事象と対応づけられた複数の地点についてクラスタリングする際に、クラスタリングされる地点の地理的範囲が広くなりすぎることを抑止できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１のシステムの全体構成の例を示す図である。
【図２】図２は、イベントＤＢの生成を説明するための図である。
【図３】図３は、実施例１の情報処理装置が実行するプロセスを説明するための図である。
【図４】図４は、イベントＤＢの一例を示す図である。
【図５】図５は、注意地点リストの一例を示す図である。
【図６】図６は、距離マトリックスの一例を説明するための図である。
【図７】図７は、集約地点テーブルの一例を示す図である。
【図８】図８は、クラスタ化処理を説明するための第１の図である。
【図９】図９は、クラスタ化処理を説明するための第２の図である。
【図１０】図１０は、クラスタ化処理を説明するための第３の図である。
【図１１】図１１は、クラスタ化処理を説明するための第４の図である。
【図１２】図１２は、クラスタ化処理を説明するための第５の図である。
【図１３】図１３は、クラスタ化処理を説明するための第６の図である。
【図１４】図１４は、生成されたクラスタを説明するための第１の図である。
【図１５】図１５は、生成されたクラスタを説明するための第２の図である。
【図１６】図１６は、生成されたクラスタを説明するための第３の図である。
【図１７】図１７は、注意地点の特定を説明するための図である。
【図１８】図１８は、全体の処理フローの一例を示す図である。
【図１９】図１９は、初期処理のフローの一例を示す図である。
【図２０】図２０は、データ読込処理のフローの一例を示す図である。
【図２１】図２１は、レコード読込処理のフローの一例を示す図である。
【図２２】図２２は、距離マトリックス作成処理のフローの一例を示す図である。
【図２３】図２３は、クラスタ化処理のフローの一例を示す図である。
【図２４】図２４は、接続チェック処理のフローの一例を示す図である。
【図２５】図２５は、クラスタ間距離算出処理のフローの一例を示す図である。
【図２６】図２６は、注意地点出力処理のフローの一例を示す図である。
【図２７】図２７は、プリンタ出力処理のフローの一例を示す図である。
【図２８】図２８は、イベントログの収集を説明するための第２の図である。
【図２９】図２９は、実施例１の情報処理装置のハードウェア構成を示す図である。
【図３０】図３０は、コンピュータで動作するプログラムの構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
（実施例１のシステム全体の構成）
図１は、実施例１のシステムの全体構成の例を示す図である。図１の例に示すように、情報処理装置１００は、通信部１０１と、制御部１１０と、記憶部１２０とを有する。記憶部１２０は、イベントＤＢ（Data  Base）１２１と、注意地点リスト１２２とを有する。記憶部１２０は例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリなどの半導体メモリ素子、ハードディスクや光ディスクなどの記憶装置に対応する。以下、記憶部１２０の各構成について詳細に説明する。
（記憶部の各構成）
【００１４】
図２を用いてイベントＤＢの生成について説明する。図２は、イベントＤＢの生成を説明するための第１の図である。図２の例に示すように、コンピュータ１１は、ドライブレコーダー１０Ａ〜１０Ｃとプリンタ１２と通信可能に接続される。なお、コンピュータ１１は、情報処理装置１００の一例である。
【００１５】
コンピュータ１１は、ドライブレコーダー１０Ａ〜１０ＣにセットされているＳＤメモリカードを読込み、ドライブレコーダー１０Ａ〜１０Ｃからイベントログを収集する。コンピュータ１１は、収集したイベントログを基にイベントＤＢ１２１を生成する。例えば、コンピュータ１１は、図２に係るイベントＤＢ１２１を生成する。なお、コンピュータ１１は、注意地点リスト１２２を作成してプリンタ１２に出力する。
【００１６】
次に、イベントＤＢ１２１の「ヒヤリ有無」の判定について説明する。コンピュータ１１は、各イベントログを基にヒヤリがあったか否かを判定する。例えば、コンピュータ１１は、イベントログの進行方向の加速度または速度の変化に基づいて急ブレーキがあったか否かを判別する。ドライブレコーダー１０Ａ〜１０Ｃは、走行中に急ブレーキがあったと判別した場合、その時のデータをＳＤカードにイベントログとして格納する。
【００１７】
（実施例１に係る情報処理装置が実行するプロセス）
図３を用いて、実施例１に係る情報処理装置１００が実行する全体のプロセスについて説明する。図３は、実施例１の情報処理装置が実行するプロセスを説明するための図である。運転注意地点リスト作成プログラム７０は、生成部１１１、特定部１１２および出力部１１３と同様の機能を有する。運転注意地点リスト作成プログラム７０は、イベントログを収集したイベントＤＢ１２１を生成する。運転注意地点リスト作成プログラム７０は、基準位置（zx,zy）、打ち切り距離limit＿L（ｍ）、運転注意基準P＿hyr等の各種パラメータの入力データ７３ａを受け付ける。運転注意地点リスト作成プログラム７０は、イベントＤＢ１２１からイベントログを読み出す。
【００１８】
ワークテーブル７２は、情報処理装置１００が有するメモリに確保される作業領域である。ワークテーブル７２には、距離マトリックスと集約地点テーブルとが含まれる。運転注意地点リスト作成プログラム７０は、読み出したイベントログに基づいて地図上に分布する各要素間の距離を記憶する距離マトリックスを作成する。運転注意地点リスト作成プログラム７０は、距離マトリックスに基づいてクラスタを生成し、各クラスタに関する情報を集約地点テーブルに記憶する。集約地点テーブルは、クラスタ番号、イベント件数、ヒヤリ件数、クラスタの重心位置の緯度および経度等の情報を各クラスタに対応づける。運転注意地点リスト作成プログラム７０は、集約地点テーブルでクラスタに対応付けられているイベント件数およびヒヤリ件数に基づいて、各クラスタのヒヤリ度を算出する。運転注意地点リスト作成プログラム７０は、ヒヤリ度が運転注意基準P＿hyr以上のクラスタの重心位置を注意地点として特定する。運転注意地点リスト作成プログラム７０は、特定した各注意地点に係るクラスタの情報を注意地点リスト１２２に出力する。なお、運転注意地点リスト作成プログラム７０は、プロセス終了時の各種パラメータ等のメッセージ７３ｂをモニタに出力する。
【００１９】
図４を用いてイベントＤＢ１２１のデータ構造の例について説明する。図４は、イベントＤＢの一例を示す図である。イベントＤＢ１２１は、各車両から収集したイベントの情報を記録するデータベースである。図４の例に示すように、イベントＤＢ１２１は、ＩＤ（Identification）と、イベント番号と、日付と、時間と、車両番号と、横方向の加速度と、進行方向の加速度と、速度と、経度と、緯度と、ヒヤリ有無と、コメントとを対応付ける。「ＩＤ」は、各車両から収集したイベントの情報に一意に付される識別番号である。「イベント番号」は、イベントが収集された際にイベントに付与された番号である。「日付」は、イベントが発生した日付である。「時間」は、イベントが発生した時間である。「車両番号」とは、イベントを収集する対象となっている車両の識別番号である。「加速度」は、車両の加速度である。「横方向」は、車両の進行方向を基準として、左または右の方向の加速度である。「進行方向」は、車両の進行方向の加速度である。「位置」は、イベントが発生したときの車両の位置である。「緯度」は、イベントが発生したときに車両がいた位置の緯度である。「経度」は、イベントが発生したときに車両がいた位置の経度である。「ヒヤリ有無」は、イベント発生時にヒヤリハットがあったか否かの判定結果を表す。ヒヤリハットとは、例えば、車の前に何かが急に飛び出てきて急ブレーキを踏むような、車両の運行中に運転者が危険を感じたであろう事象を表す。ヒヤリの有無が「0」の場合、ヒヤリが発生しなかったことを表す。ヒヤリの有無が「1」の場合、ヒヤリが発生したことを表す。「コメント」は、具体的なイベントの内容を表す。
【００２０】
なお、各イベントの情報が、ヒヤリハットに該当するか否かの判断は、例えば、イベントの発生とともに記録された画像データを再生して視認することで、１件ずつ、ヒヤリハットであったか否かを人が判断してヒヤリ有無の欄のデータを付与しても良い。また、各イベントの情報に含まれる加速度や速度などの値に基づいて、ヒヤリハットに相当するか否かを判断し、判断した結果をヒヤリ有無の欄に格納してもよい。なお、図４の例では、各項目のデータがレコードとして関連づけられて記憶されている例を示したが、上記説明において互いに関連づけられた項目どうしの関係が保たれれば、データは他の記憶のされ方をしても構わない。図５および図７の例においても同様である。
【００２１】
図５を用いて、注意地点リスト１２２のデータ構造の例について説明する。図５は、注意地点リストの一例を示す図である。注意地点リスト１２２は、ヒヤリマップ上で特定された注意地点の位置や注意度を示すリストである。注意地点とは、例えば、事故が発生する危険性が高いスポットの中心の位置である。すなわち、注意地点は、クラスタの重心位置である。注意地点リスト１２２は、クラスタの情報を表すレコードと、要素の情報を表すレコードとを有する。要素とは、クラスタに含まれるイベントの発生地点を表す。情報処理装置１００は、同じクラスタに関連するレコードに同じグループ番号を付す。図５の例において、「ＩＤ」に０が格納されているレコードがクラスタの情報を表すレコードである。「ＩＤ」に０以外の値が格納されているレコードが要素の情報を表すレコードである。例えば、図５の例において、情報処理装置１００は、有効行１行目のレコードにグループ番号「79」に係るクラスタの情報を格納する。また、情報処理装置１００は、有効行２行目から８行目のレコードにグループ番号「79」に係る要素の情報を格納する。
【００２２】
注意地点リスト１２２は、グループ番号と、ＩＤと、件数／イベント番号と、日付と、時刻と、車両番号と、ヒヤリ度と、経度と、緯度と、距離と、運転注意ポイントと、コメントとを対応付ける。「グループ番号」は、生成した各クラスタに一意に付される識別番号である。同じクラスタに属するレコードには、同じグループ番号が付される。「ＩＤ」は、それが、クラスタの要素である場合には、イベントＤＢの「ＩＤ」即ち、各車両から収集したイベントの情報に一意に付される識別番号と同一のものであり、「0」より大きい値となっている。クラスタのレコードには、「0」が付される。「件数／イベント番号」は、クラスタのレコードには、イベントの件数が格納され、要素のレコードには、イベント番号が格納される。「日付」は、イベントが発生した日付を表す。「時刻」は、イベントが発生した時刻を表す。「車両番号」は、イベントログを収集した車両の識別番号である。
【００２３】
「ヒヤリ度」は、クラスタのレコードには、ヒヤリ度が格納される。ヒヤリ度とは、クラスタに含まれる総イベント件数中のヒヤリ件数の割合を表す。例えば、総イベント件数が１０件で、ヒヤリ件数が５件の場合、ヒヤリ度は５０％である。また、要素のレコードには、ヒヤリの発生の有無が格納される。例えば、「1」が格納されている場合にヒヤリが発生したことを表し、「0」が格納されている場合にヒヤリが発生しなかったことを表す。
【００２４】
「経度」は、クラスタのレコードには、注意地点の経度が格納され、要素のレコードには、イベントが発生した地点の経度が格納される。「緯度」は、クラスタのレコードには、注意地点の緯度が格納され、要素のレコードには、イベントが発生した地点の緯度が格納される。
【００２５】
「距離」は、注意地点とイベントが発生した地点との距離である。「運転注意ポイント」は、運転の注意度を表す指標である。例えば、「運転注意ポイント」は、「0」「1」「2」の３段階で評価される。運転注意ポイント「0」は、運転時に危険が少ない地点であることを表す。運転注意ポイント「1」は、運転時にやや危険が発生しやすい地点であることを表す。運転注意ポイント「2」は、運転時に危険が発生しやすい地点であることを表す。運転注意ポイントの評価に関する詳細は、後述する。「コメント」は、イベントの具体的な内容を表す。
【００２６】
（制御部の構成）
図１の例に示されるように、情報処理装置１００の制御部１１０は、生成部１１１と、特定部１１２と、出力部１１３とを有する。制御部１１０の機能は例えば、ＣＰＵ（Central  Processing  Unit）が所定のプログラムを実行することで実現することができる。また、制御部１１０の機能は例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路により実現することができる。
【００２７】
情報処理装置１００は、特定の事象と対応付けられた地点群について、地点間の距離に基づいて複数の地点を含むクラスタを生成する生成部１１１を有する。情報処理装置１００は、生成したクラスタに含まれる複数の地点の各々と、地点群のうちクラスタに含まれない特定の地点との間の距離のうち、最長の距離を特定する特定部１１２を有する。情報処理装置１００は、特定した最長の距離が所定の距離以内である場合に、クラスタに含まれる複数の地点と、特定の地点とを含むクラスタを生成し、出力する出力部１１３を有する。
【００２８】
情報処理装置１００は、特定の事象と対応付けられた地点群について、地点間の距離に基づいてそれぞれ複数の地点を含む複数のクラスタを生成する生成部１１１を有する。情報処理装置１００は、生成した複数のクラスタのうちの第１のクラスタに含まれる複数の地点の各々と、生成した複数のクラスタのうちの第２のクラスタに含まれる複数の地点の各々との間の距離のうち、最長の距離を特定する特定部１１２を有する。情報処理装置１００は、特定した最長の距離が所定の距離以内である場合に、第１のクラスタに含まれる複数の地点と、第２のクラスタに含まれる複数の地点とを含むクラスタを生成し、出力する出力部１１３を有する。
【００２９】
情報処理装置１００は、さらに、同一のクラスタに対応付けられた第一の事象に関する地点の数と、地点のうち第二の事象にも対応付けられている地点の数とに基づいて、該クラスタに対する評価値を算出する算出部を有する。出力部１１３は、クラスタの情報と評価値とを出力する。また、例えば、第二の事象は例えば、ヒヤリハットである。なお、出力部１１３は、算出部の機能を有してもよい。
【００３０】
算出部は、第一の事象に対応付けられている地点の数に対する、第二の事象にも対応付けられている地点の数の割合に基づいて評価値を算出する。また、出力部１１３は、評価値が所定の値以上であるクラスタを出力対象とする。
【００３１】
情報処理装置１００は、イベントの地点またはこれを束ねて生成されたクラスタに対して、一連のクラスタ番号を付与するが、クラスタの追加・削除を行う過程で、どのクラスタ番号が有効であるか否かを判定する。または、情報処理装置１００は、有効なクラスタ番号を取得するために、一連のクラスタ番号を連想配列として記憶する。
【００３２】
さらに、１のクラスタと他のクラスタまたは他の地点との間の距離を、子ノードよりも親ノードの方が小さくなるように構成された二分ヒープとして記憶する。以上の連想配列および二分ヒープは、記憶部１２０内のメモリ領域に生成、保持される。例えば、クラスタ番号リストは、連想配列の一例であり、距離マトリックスは、二分木を使った二分ヒープの一例である。以降、二分ヒープを単に、ヒープと記すものとする。なお、生成されたクラスタ番号リストおよびヒープは、情報処理装置１００内部のメモリに記憶される。
【００３３】
以下、情報処理装置１００の通信部１０１および制御部１１０の構成について詳細に説明する。通信部１０１は、各車両に設置されているドライブレコーダーが記録したイベントログを受け付ける。通信部１０１は、例えばＵＳＢ（Universal  Serial  Bus）等によって実現される。通信部１０１は、バスを介して各ドライブレコーダーと通信する。
【００３４】
生成部１１１は、特定の事象と対応付けられた地点群について、地点間の距離に基づいて複数の地点を含むクラスタを生成する。すなわち、生成部１１１は、複数の要素を有するクラスタを生成する処理部である。要素とは、イベントが発生した地点である。新規クラスタＮを生成する手順について説明する。まず、生成部１１１は、距離マトリックスに登録されているクラスタ間距離Ｌのうち、最小のクラスタ間距離に対応する２つ要素ｐ，ｑ間のクラスタ間距離Ｌを取得する。距離マトリックスは、子ノードよりも親ノードの方が小さくなるように構成されたヒープである。生成部１１１は、距離マトリックスの先頭に登録されているクラスタ間距離を取得することで、最小のクラスタ間距離Ｌを取得することができる。
【００３５】
図６を用いて距離マトリックスのデータ構造の例について説明する。図６は、距離マトリックスの一例を説明するための図である。距離マトリックスは、要素−要素間、要素−クラスタ間、およびクラスタ−クラスタ間のクラスタ間距離を保持する。また、図６の例に示すように、距離マトリックスは、子ノードよりも親ノードのクラスタ間距離の方が小さくなるように構成されたヒープである。各ノードに含まれるデータは、要素の要素番号またはクラスタ番号と、クラスタ間距離とを表す。例えば、ノード１（１）の（Ａの番号,Ｂの番号,０．８）は、要素Ａと要素Ｂとの距離が「８」であることを表す。また、ノード１（２）の（Ａの番号,Ｃの番号,１．１）は、要素Ａと要素Ｃとの距離が「１１」であることを表す。
【００３６】
距離マトリックスの先頭ノードには、最も短いクラスタ間距離が格納される。生成部１１１は、距離マトリックスから先頭ノードを取り出すことで最も短いクラスタ間距離を取得する。生成部１１１は、距離マトリックスから先頭ノードを取り出す度に、距離マトリックスの各ノードを、子ノードよりも親ノードの方が小さくなる関係が保持されるように再構成する。
【００３７】
距離マトリックスの作成手順について説明する。まず、情報処理装置１００は、クラスタ番号リストに格納されている要素の番号を２つ取り出す。クラスタ番号リストは、全ての要素番号を保持する。情報処理装置１００は、クラスタ番号リストから取り出した２つの要素間の緯度差および経度差に対して、距離換算係数ｕｘ,ｕｙを用いて２つの要素のクラスタ間距離を算出する。なお、クラスタ番号リストに関する詳細は、後述する。
【００３８】
なお、距離換算係数ｕｘ,ｕｙとは、２つの要素またはクラスタの位置の緯度差および経度差からクラスタ間距離を算出する際に用いられる係数であり、それぞれ経度、緯度一度あたりの地表面における実距離（ｋｍ）への換算値である。情報処理装置１００は、ヒヤリハットマップを作成する地域の基準となる緯度および経度である基準位置（ｚｘ，ｚｙ）の入力を受け付け、基準位置（ｚｘ，ｚｙ）に基づいて距離換算係数ｕｘ,ｕｙを求める。情報処理装置１００は、ヒヤリハットマップの作成対象となる地域の中心が基準位置となるように（ｚｘ，ｚｙ）の値を調整してもよい。
【００３９】
次いで、情報処理装置１００は、算出した２つの要素間のクラスタ間距離Ｌが「limit＿L2」より小さい場合に、２つの要素の番号に対応付けてクラスタ間距離Ｌを距離マトリックスに登録する。例えば、limit＿L2が「20」で与えられた時、情報処理装置１００は、クラスタ番号リストから「A」の要素の番号と「B」の要素の番号とを取り出し、要素Ａおよび要素Ｂ間のクラスタ間距離が「８」の場合、（Aの番号,Bの番号,８）を距離マトリックスに登録する。
【００４０】
情報処理装置１００は、上記と同様に、クラスタ番号リストから他の要素の番号を２つ取り出し、クラスタ間距離Ｌを登録する処理を繰り返すことで、距離マトリックスを作成する。距離マトリックスは、子ノードよりも親ノードのクラスタ間距離の方が小さくなるように構成されたヒープである。情報処理装置１００は、距離マトリックスにクラスタ間距離Ｌを登録する度に、子ノードよりも親ノードのクラスタ間距離Ｌの方が小さくなるように各ノードを再構成する。
【００４１】
このように、情報処理装置１００は、２つの要素のクラスタ間距離Ｌが「limit＿L2」より小さい場合にのみ、クラスタ間距離Ｌを距離マトリックスに登録する。これにより、情報処理装置１００は、距離マトリックスに全ての要素間のクラスタ間距離が登録される場合と比べて、距離マトリックスのサイズを小さくすることができ、メモリ領域を節約できる。
【００４２】
生成部１１１は、距離マトリックスであるヒープの先頭に登録されている２つの要素を取得することで最小のクラスタ間距離Ｌに対応する２つ要素ｐ，ｑを取得できる。このため、生成部１１１は、通常のクラスタリングで毎回、最小となる２つの要素を計算し検索するのに要する時間を短縮することができる。距離マトリックスの説明は、以上の通りである。
【００４３】
生成部１１１は、距離マトリックスから取得した２つの要素を基に生成した新規クラスタＮを集約地点テーブルに登録する。ここで、図７を用いて、集約地点テーブルのデータ構造の例について説明する。図７は、集約地点テーブルの一例を示す図である。集約地点テーブルは、生成された各クラスタの情報を格納するテーブルである。図７の例に示すように、集約地点テーブルは、クラスタ番号と、イベント件数と、ヒヤリ件数と、緯度と、経度と、左ポインタと、右ポインタとを対応付ける。「クラスタ番号」は、生成された各クラスタに一意に付されたシーケンシャルな識別番号である。図７の例に示すように、生成部１１１は、イベントの総数が３２７である場合、３２８以降のクラスタ番号を各クラスタに付与する。「イベント件数」は、クラスタに含まれるイベントの総数である。イベント件数ｋ［Ｎ］は、例えば、急ブレーキがなされた件数である。「ヒヤリ件数」は、クラスタに含まれるヒヤリの総数である。
【００４４】
「緯度」は、クラスタの重心位置の緯度である。「経度」は、クラスタの重心位置の経度である。生成部１１１は、クラスタが有する各要素の位置に基づいてクラスタの重心位置を特定してもよい。例えば、生成部１１１は、クラスタが３つの要素を有する場合、３つの要素で形成される三角形の重心の位置をクラスタの緯度および経度とする。
【００４５】
「左ポインタ」および「右ポインタ」は、クラスタ配下の要素の番号またはクラスタ番号であり、「右ポインタ」の指すクラスタ番号は「左ポインタ」の指すクラスタ番号より大きくなるように、左右を定めるものとする。「左ポインタ」および「右ポインタ」に関して例を挙げて説明する。例えば、生成部１１１は、複数の要素を有するクラスタＮに要素Ｍを追加することでクラスタＮ’を生成する場合、以下のように処理する。まず、生成部１１１は、クラスタＮと、要素Ｍとのクラスタ間距離Ｌを取得する。生成部１１１は、クラスタ間距離Ｌが所定の条件以内である場合に、クラスタＮに、要素Ｍを追加してクラスタＮ’を生成する。この場合においてクラスタＮ’の配下クラスタは、クラスタＮおよび要素Ｍである。生成部１１１は、クラスタＮのクラスタ番号と、要素Ｍの番号とをそれぞれ「左ポインタ」および「右ポインタ」に設定する。このようにして、生成部１１１は、「左ポインタ」および「右ポインタ」を設定する。なお、この場合、各クラスタおよび要素の番号について、Ｎ’＞Ｎ，Ｎ＞Ｍの関係が常に成立している。
【００４６】
なお、「左ポインタ」または「右ポインタ」がクラスタ番号の場合、クラスタ番号に対応するクラスタも「左ポインタ」および「右ポインタ」を有する。図７の例のように、例えば、クラスタ番号「335」のクラスタの配下クラスタは、クラスタ番号「328」のクラスタと要素の番号「210」の要素である。さらに、配下クラスタであるクラスタ番号「328」のクラスタの配下クラスタは、要素番号「156」の要素と要素の番号「141」の要素である。集約地点テーブルの構造の説明は、以上の通りである。
【００４７】
次に、集約地点テーブルの作成手順に関して説明する。まず、生成部１１１は、クラスタ番号リストから取り出した２つの要素ｐ，ｑを基にして生成された新規クラスタＮに、最大の要素の番号より大きいクラスタ番号を割り当てる。例えば、生成部１１１は、最大の要素の番号が３２７である場合、各々の新規クラスタに３２８，３２９，３３０，…のクラスタ番号を割り当てる。
【００４８】
生成部１１１は、新規クラスタＮの２つの配下クラスタにそれぞれポインタを設定する。配下クラスタとは、新規クラスタＮの配下に含まれるクラスタである。例えば、生成部１１１は、一方の配下クラスタのクラスタ番号を新規クラスタＮの左ポインタに格納する。また、生成部１１１は、他方の配下クラスタのクラスタ番号を新規クラスタＮの右ポインタに格納する。左ポインタおよび右ポインタに格納されたクラスタ番号は、それぞれ集約地点テーブルに登録される。なお、以下では、新規クラスタＮの左ポインタは、pair1［Ｎ］で表される。また、新規クラスタＮの右ポインタは、pair2［Ｎ］で表される。
【００４９】
生成部１１１は、新規クラスタＮの配下クラスタのイベント件数を合算することで、イベント件数ｋ［Ｎ］を求める。例えば、生成部１１１は、２つの要素ｐ，ｑで新規クラスタＮを生成した場合、新規クラスタＮが２つのイベントを含むことになるので、新規クラスタＮのイベント件数を２とする。生成部１１１は、カウントしたイベント件数ｋ［Ｎ］を集約地点テーブルに格納する。
【００５０】
また、生成部１１１は、新規クラスタＮの配下クラスタのヒヤリ件数を合算することで、ヒヤリ件数Ｈ［Ｎ］を求める。例えば、生成部１１１は、２つの要素ｐ，ｑともヒヤリ有りの場合、新規クラスタＮのヒヤリ件数を２とする。また、生成部１１１は、２つの要素ｐ，ｑのうち、一方がヒヤリ有りの場合、新規クラスタＮのヒヤリ件数を１とする。また、生成部１１１は、２つの要素ｐ，ｑのうち、いずれもヒヤリ無しの場合、新規クラスタＮのヒヤリ件数を０とする。生成部１１１は、カウントしたヒヤリ件数Ｈ［Ｎ］を集約地点テーブルに格納する。
【００５１】
生成部１１１は、新規クラスタＮの重心の位置を算出する。例えば、生成部１１１は、新規クラスタＮが有する２つの要素ｐ，ｑ間の中心の座標を新規クラスタＮの重心の位置とする。生成部１１１は、算出した新規クラスタＮの重心の位置を緯度、経度として集約地点テーブルに登録する。このようにして、生成部１１１は、集約地点テーブルを生成する。
【００５２】
次に、生成部１１１は、クラスタ番号リストから要素ｐ，ｑのクラスタ番号をそれぞれ削除する。また、生成部１１１は、クラスタ番号リストに新規クラスタのクラスタ番号Ｎを追加する。
【００５３】
ここで、クラスタ番号リストについて説明する。クラスタ番号リストは、要素またはクラスタが存在するか否かを表すリストである。クラスタ番号リストは、要素の番号と、生成されたクラスタのクラスタ番号とを有する。例えば、クラスタ番号リストは、リストに要素の番号が格納されていれば、要素が存在することを表す。また、クラスタ番号リストは、リストにクラスタ番号が格納されていれば、クラスタが生成されたことを表す。なお、後述では、要素の番号とクラスタ番号とをまとめてクラスタ番号と呼ぶ場合がある。
【００５４】
クラスタ番号リストは、要素の番号とクラスタ番号とを連番で管理するが、要素またはクラスタの削除や追加が行われることによって欠番が発生してもよい。例えば、情報処理装置１００は、各要素に連番で番号を付し、最大の要素の番号より１以上大きい番号を、生成された新規クラスタに付与する。例えば、クラスタ番号リストは、最初の状態が要素Ａ，Ｂ，ＣおよびＤであって、この後、ＢとＣが結合して、新規クラスタＮ１が生成されるものとする。かかる場合に、当初の要素Ａ，Ｂ，Ｃ，Ｄおよび新規クラスタＮ１に、割り当てられる番号は、それぞれ当初の状態が（Ａ，Ｂ，Ｃ，Ｄ）＝（１，２，３，４）であり、この後、（Ａ，Ｄ，Ｎ１）  ＝（１，４，５）となる。クラスタ番号リストの説明は、以上の通りである。
【００５５】
特定部１１２は、生成部１１１が生成したクラスタに含まれる複数の地点の各々と、地点群のうちクラスタに含まれない特定の地点との間の距離のうち、最長の距離を特定する。また、特定部１１２は、生成部１１１が生成した複数のクラスタのうちの第１のクラスタに含まれる複数の地点の各々と、生成した複数のクラスタのうちの第２のクラスタに含まれる複数の地点の各々との間の距離のうち、最長の距離を特定する。すなわち、特定部１１２は、生成部１１１によって生成された新規クラスタＮと他の各クラスタとのクラスタ間距離を求めて、距離マトリックスに登録する処理部である。例えば、距離マトリックスは、打ち切り距離limit＿Lの条件を満たす全ての要素間のクラスタ間距離を保持するが、新規クラスタＮと他の各クラスタとのクラスタ間距離は保持していない。そこで、特定部１１２は、新規クラスタＮが生成される度に、新規クラスタＮと他の各クラスタとのクラスタ間距離を求め、距離マトリックスに登録する処理を行う。
【００５６】
特定部１１２は、第一に接続チェック処理を行い、第二にクラスタ間距離算出処理を行う。以下、特定部１１２が実行する接続チェック処理およびクラスタ間距離算出処理についてそれぞれ説明する。
【００５７】
第一の接続チェック処理において、特定部１１２は、新規クラスタＮと他の各クラスタとのクラスタ間距離Ｌが「limit＿L2」以内という条件をみたすか否かを判定する。特定部１１２は、クラスタ間距離Ｌが「limit＿L2」以内という条件を満たす場合に、新規クラスタＮと他の各クラスタとのクラスタ間距離Ｌを距離マトリックス１２２に登録する。
【００５８】
なお、打ち切り距離limit＿Lは、生成するクラスタの大きさを設定するためのパラメータである。打ち切り距離limit＿Lが大きくなるほど生成されるクラスタの地図上での大きさが大きくなり、打ち切り距離limit＿Lが小さくなるほど生成されるクラスタの地図上での大きさが小さくなる。また、情報処理装置１００は、打ち切り距離limit＿Lに２を乗じた「limit＿L2」を算出する。情報処理装置１００は、要素をクラスタに加えるか否かを判定する際に「limit＿L2」を使用する。
【００５９】
第一の接続チェック処理の手順について説明する。まず、特定部１１２は、クラスタ番号リストからクラスタ番号ｉを取得する。なお、クラスタ番号ｉは、新規クラスタＮを直接に構成する「左ポインタ」および「右ポインタ」に相当する要素またはクラスタの番号以外であって、クラスタ番号リストの先頭から最後の登録番号までのいずれかの要素またはクラスタ番号である。
【００６０】
特定部１１２は、新規クラスタＮに含まれる要素ｐおよびｑと、クラスタ番号ｉに係るクラスタとのクラスタ間距離Ｌ（ｐ，ｉ）、Ｌ（ｑ，ｉ）が、いずれも距離マトリックスに登録されているか否かを判定する。Ｌ（ｐ，ｉ）は、要素ｐ−クラスタｉ間のクラスタ間距離を表し、Ｌ（ｑ，ｉ）は、要素ｑ−クラスタｉ間のクラスタ間距離を表す。なお、ｐおよびｑが要素の場合の例について説明しているが、ｐおよびｑの一方または両方がクラスタであってもよい。
【００６１】
特定部１１２は、２つのクラスタ間距離Ｌ（ｐ，ｉ）、Ｌ（ｑ，ｉ）のいずれもが距離マトリックスに登録されていた場合、クラスタ番号ｉに係る要素またはクラスタが「limit＿L2」以内にあると判定する。一方、特定部１１２は、２つのクラスタ間距離の両方または一方が距離マトリックスに登録されていない場合、クラスタ番号ｉに係る要素またはクラスタが「limit＿L2」の外にあると判定する。なお、以下では、クラスタ番号ｉに係るクラスタを残存クラスタｉと呼ぶ。以上のようにして特定部１１２は、接続チェック処理を行う。
【００６２】
第二のクラスタ間距離算出処理において、特定部１１２は、第一の接続チェック処理においてクラスタ間距離Ｌが「limit＿L2」以内という条件を満たす新規クラスタＮおよび各残存クラスタｉに関し、クラスタ間距離Ｌを求める。第二のクラスタ間距離算出処理の手順について説明する。まず、特定部１１２は、残存クラスタｉと新規クラスタＮとのクラスタ間距離Ｌが距離マトリックスに登録されているか否かを判定する。
【００６３】
特定部１１２が、残存クラスタｉと新規クラスタＮを構成するクラスタｐ、ｑとのクラスタ間距離Ｌ（ｉ、ｐ）とＬ（ｉ、ｑ）とが、距離マトリックスにすでに登録されていると判定した場合に限り、距離マトリックスにクラスタ間距離Ｌ（ｉ，Ｎ）を登録する。特定部１１２は、残存クラスタｉと新規クラスタＮを構成するクラスタｐ、ｑとのクラスタ間距離Ｌ（ｉ、ｐ）とＬ（ｉ、ｑ）とが、距離マトリックスにすでに登録されていると判定しない場合は、登録を行わない旨の決定をする。ここで、Ｌ（ｉ、ｐ）とＬ（ｉ、ｑ）がともに、距離マトリックスにすでに登録されているということは、Ｌ（ｉ，Ｎ）が「limit＿L2」以内という条件を満たしていることに他ならない。
【００６４】
特定部１１２が、残存クラスタｉと新規クラスタＮとのクラスタ間距離Ｌを登録する処理の手順について説明する。まず、特定部１１２は、残存クラスタｉに設定されている左右ポインタ（pair1［ｉ］，pair2［ｉ］）を用いて、集約地点テーブルから残存クラスタｉに含まれる２つのクラスタｓ，ｔのクラスタ番号をそれぞれ取得する。特定部１１２は、２つのクラスタｓ，ｔと新規クラスタＮとの２つのクラスタ間距離を距離マトリックスからそれぞれ取得する。特定部１１２は、取得した２つのクラスタ間距離のうち、長い方を残存クラスタｉと新規クラスタＮとのクラスタ間距離Ｌとする。なお、クラスタ番号ｓに係るクラスタをクラスタｓ、クラスタ番号ｔに係るクラスタをクラスタｔとしている。以上のようにして特定部１１２は、クラスタ間距離算出処理を行う。
【００６５】
次に、特定部１１２は、クラスタ間距離算出処理によって求められた、残存クラスタｉと新規クラスタＮとのクラスタ間距離Ｌ（ｉ，Ｎ）を距離マトリックスに登録する。また、特定部１１２は、残存クラスタｉと要素ｐおよび要素ｑとの間のクラスタ間距離Ｌ（ｉ，ｐ）またはＬ（ｐ，ｉ）およびＬ（ｉ，ｑ）またはＬ（ｑ，ｉ）を、距離マトリックスから削除する。特定部１１２は、クラスタ間距離Ｌが「limit＿L2」以内という条件を満たす他の残存クラスタに対しても、残存クラスタｉと同様にクラスタ間距離算出処理を行い、クラスタ間距離Ｌを距離マトリックスに登録する。
【００６６】
このように、特定部１１２は、新規クラスタＮと残存クラスタｉのクラスタ間距離を距離マトリックスに登録する度に、残存クラスタｉと新規クラスタＮの各配下クラスタとの間のクラスタ間距離を距離マトリックスから削除する。これにより、情報処理装置１００は、距離マトリックスの容量が小さくなり、メモリ領域が節約できる。
【００６７】
出力部１１３は、特定部１１２が特定した最長の距離が所定の距離以内である場合に、クラスタに含まれる複数の地点と、特定の地点とを含むクラスタを生成し、出力する。また、出力部１１３は、最長の距離が所定の距離以内である場合に、第１のクラスタに含まれる複数の地点と、第２のクラスタに含まれる複数の地点とを含むクラスタを生成し、出力する。すなわち、出力部１１３は、生成部１１１によって生成されたクラスタと、他の要素もしくは他のクラスタとを含むクラスタを生成して出力する処理部である。出力部１１３は、距離マトリックスにおいて最もクラスタ間距離Ｌが小さい組が、生成部１１１によって生成されたクラスタと、他の要素または他のクラスタとであった場合に、新規クラスタＮを生成する処理を行う。
【００６８】
なお、出力部１１３においてなされる新規クラスタＮを生成する処理は、生成部１１１と同じであるので説明を省略する。また、特定部１１２は、出力部１１３によって生成された新規クラスタＮに対しても、クラスタ間距離Ｌを距離マトリックスに登録する処理を行う。
【００６９】
さらに、出力部１１３は、生成したクラスタの情報を出力する。例えば、出力部１１３は、ヒヤリマップ上に分布する注意地点の情報を収集した注意地点リスト１２２を出力する。
【００７０】
出力部１１３は、クラスタ毎にヒヤリ度を算出し、ヒヤリ度が運転注意基準P＿hyr以上のクラスタを特定する。ここで、運転注意基準P＿hyrは、クラスタ毎に運転注意ポイントを評価する際の基準となるパラメータである。運転注意ポイントとは、注意地点における運転時の危険度であり、ヒヤリ度が運転注意基準P＿hyr以上であるか否かに基づいて設定される。なお、運転注意ポイントの評価に関する例は後述する。
【００７１】
出力部１１３は、例えば、特定した各クラスタの重心の位置を注意地点と判別する。出力部１１３は、判別された各注意地点に関する情報を注意地点リスト１２２に列挙して出力する。例えば、出力部１１３は、図５に係る注意地点リスト１２２を出力する。以下、注意地点リスト１２２の出力に関して詳細に説明する。
【００７２】
まず、出力部１１３は、注意地点リスト１２２のヘッダとして、グループ番号、ＩＤ、件数／イベント番号、日付、時刻、車両番号、ヒヤリ度、経度、緯度、距離、運転注意ポイント、コメント等の項目名を出力する。出力部１１３は、クラスタ番号リストからクラスタ番号ｊを取得する。出力部１１３は、以下の式（１）によってクラスタｊに係るヒヤリ度Ｐ［ｊ］を算出する。
【００７３】
ヒヤリ度Ｐ［ｊ］＝ヒヤリ件数Ｈ［ｊ］／イベント件数ｋ［ｊ］・・・（１）
【００７４】
出力部１１３は、算出したヒヤリ度Ｐ［ｊ］が運転注意基準P＿hyr以上であるか否かを判定する。出力部１１３は、ヒヤリ度Ｐ［ｊ］が運転注意基準P＿hyr以上の場合、クラスタｊが注意地点であると判定し、運転注意ポイントを「2」に設定する。また、出力部１１３は、ヒヤリ度Ｐ［ｊ］が運転注意基準P＿hyr未満で、ヒヤリ件数Ｈ［ｊ］が１件以上の場合、クラスタｊが注意地点となる可能性があると判定し、運転注意ポイントを「1」に設定する。出力部１１３は、ヒヤリ件数Ｈ［ｊ］が０件の場合、注意地点でないと判定し、運転注意ポイントを「0」に設定する。例えば、図５の例において出力部１１３は、グループ番号「79」のクラスタのヒヤリ度が「28.60%」で運転注意基準２０％以上であるので、運転注意ポイントを「2」に設定する。
【００７５】
出力部１１３は、クラスタｊに関する情報を注意地点リスト１２２に出力する。例えば、出力部１１３は、クラスタｊのイベント件数ｋ［ｊ］、ヒヤリ度Ｐ［ｊ］、重心の位置および運転注意ポイントを１レコードに対応づけて注意地点リスト１２２に出力する。注意地点リスト１２２に出力されたクラスタに関する情報について図５を用いて説明する。例えば、出力部１１３は、図５の１レコード目のように、（グループ番号，件数／イベント番号，ヒヤリ度，経度，緯度，運転注意ポイント）＝（79,7,28.60%,139.699509,35.531134,2）を出力する。
【００７６】
出力部１１３は、集約地点テーブルを参照してクラスタｊに含まれる要素を探索し、各要素の情報を注意地点リスト１２２に出力する。各要素の情報を注意地点リスト１２２に出力する処理について説明する。まず、出力部１１３は、集約地点テーブルの「左ポインタ」「右ポインタ」からクラスタｊの配下のクラスタ番号をそれぞれ取得し、各々のクラスタ番号をpair1［ｊ］、pair2［ｊ］に格納する。
【００７７】
出力部１１３は、右ポインタPair1［ｊ］および左ポインタPair2［ｊ］に格納されたクラスタ番号のそれぞれがクラスタであるか、要素であるかを判定する。出力部１１３は、クラスタ番号が総イベント数ｎｃよりも大きい場合にクラスタと判定する。また、出力部１１３は、クラスタ番号がイベントログの総数ｎｃ以下の場合に要素と判定する。
【００７８】
出力部１１３は、クラスタ番号（Pair1［ｊ］，Pair2［ｊ］）の一方または両方が要素であると判定した場合、要素の情報を出力する。一方、出力部１１３は、クラスタ番号（Pair1［ｊ］，Pair2［ｊ］）の一方または両方がクラスタと判定した場合、クラスタ番号（Pair1［ｊ］，Pair2［ｊ］）に係るクラスタよりも配下のクラスタ番号を取得する。出力部１１３は、取得したクラスタ番号が要素であると判定されるまで上記のクラスタ番号を取得する処理を再帰的に繰り返す。
【００７９】
注意地点リスト１２２に出力された各要素の情報に関して図５を用いて説明する。出力部１１３は、各要素の（グループ番号，ＩＤ，件数／イベント番号，日付，時刻，車両番号，ヒヤリ度，経度，緯度，距離，コメント）に関して次のように出力する。例えば、出力部１１３は、図５の２レコード目のように、（79,99,2011-01＿04＿00000058＿20101230174810,2010/12/30,17:48,58,1,139.699553,35.531047,0.010,左折で割り込む？軽自動車）を出力する。また、出力部１１３は、図５の３レコード目のように、（79,249,2011-01＿10＿00000053＿20110110014147,2011/1/10,1:41,53,1,139.699581,35.531047,0.012,横から衝突、衝撃音！）を出力する。なお、注意地点リスト１２２のヒヤリ度の欄には、各要素のヒヤリの有無が表されている。
【００８０】
（クラスタ化処理の具体例）
図８〜図１３を用いてクラスタ化処理について具体例を挙げて説明する。図８は、クラスタ化処理を説明するための第１の図である。図８の例に示すように、ヒヤリハットマップ５０ａには、要素Ａ、要素Ｂ、要素Ｃおよび要素Ｄが分布している。要素Ａ−要素Ｂ間のクラスタ間距離は、「８」である。要素Ａ−要素Ｃ間のクラスタ間距離は、「１１」である。要素Ｂ−要素Ｃ間のクラスタ間距離は、「１２」である。要素Ｃ−要素Ｄ間のクラスタ間距離は、「１３」である。要素Ｂ−要素Ｄ間のクラスタ間距離は、「１８」である。要素Ａ−要素Ｄ間のクラスタ間距離は、「２２」である。この場合の距離マトリックスは、例えば、図６に示される。ここで、クラスタを追加する条件となるlimit＿L2の値は、例えば「２０」であるという想定の元に、以降の説明を行う。なお、要素Ａ−要素Ｄ間のクラスタ間距離は、limit＿L2よりも大きいので距離マトリックスに登録されていない。
【００８１】
図９は、クラスタ化処理を説明するための第２の図である。生成部１１１は、図６の例に示した距離マトリックスの先頭に格納されている要素Ａ−要素Ｂ間のクラスタ間距離「８」を取得し、要素Ａおよび要素Ｂを含むクラスタＮ１を生成する。生成されたクラスタＮ１は、図９の例のヒヤリハットマップ５０ｂに示される。生成部１１１は、距離マトリックスから要素Ａ−要素Ｂ間のクラスタ間距離を削除する。
【００８２】
図１０は、クラスタ化処理を説明するための第３の図である。特定部１１２は、ヒヤリハットマップ５０ｃにおいて新規のクラスタＮ１−要素Ｃ間のクラスタ間距離を求める。特定部１１２は、要素Ａ−要素Ｃ間の距離「１１」と、要素Ｂ−要素Ｃ間の距離「１２」が共に距離マトリックスに登録されているので、これらを比較し、より長い要素Ｂ−要素Ｃ間の距離「１２」をクラスタＮ１−要素Ｃ間のクラスタ間距離とする。特定部１１２は、クラスタＮ１−要素Ｃ間のクラスタ間距離「１２」を距離マトリックスに登録する。また、特定部１１２は、距離マトリックスから要素Ａ−要素Ｃ間および要素Ｂ−要素Ｃ間のクラスタ間距離を削除する。
【００８３】
また、特定部１１２は、ヒヤリハットマップ５０ｃにおいて、要素Ｃと同様に、クラスタＮ１−要素Ｄ間のクラスタ間距離を求めようとする。しかし、要素Ａ−要素Ｄ間の距離「２２」は距離マトリックスに登録されておらず、要素Ｂ−要素Ｄ間の距離「１８」だけが登録されている。この場合、特定部１１２は、クラスタＮ１−要素Ｄ間のクラスタ間距離「２２」がlimit＿L2よりも大きいことになるので、クラスタＮ１−要素Ｄ間のクラスタ間距離は距離マトリックスに登録しない。また、特定部１１２は、距離マトリックスから要素Ｂ−要素Ｄ間のクラスタ間距離を削除する。
【００８４】
図１１は、クラスタ化処理を説明するための第４の図である。また、図１２は、クラスタ化処理を説明するための第５の図である。図１１の例に示されるように、クラスタＮ１−要素Ｃ間のクラスタ間距離は、「１２」である。生成部１１１は、距離マトリックスの先頭に格納されているクラスタＮ１−要素Ｃ間のクラスタ間距離「１２」を取得し、クラスタＮ１および要素Ｃを含むクラスタＮ２を生成する。生成されたクラスタＮ２は、図１２の例のヒヤリハットマップ５０ｅに示される。
【００８５】
図１３は、クラスタ化処理を説明するための第６の図である。特定部１１２は、新規のクラスタＮ２−要素Ｄ間のクラスタ間距離を求めようとする。しかし、クラスタＮ１−要素Ｄ間の距離は、上述の通り距離マトリックスに登録されておらず、要素Ｃ−要素Ｄ間の距離「１３」だけが登録されている。この場合は、特定部１１２は、クラスタＮ２−要素Ｄ間のクラスタ間距離がlimit＿L2よりも大きくなるので、クラスタＮ２−要素Ｄ間のクラスタ間距離を距離マトリックスに登録しない。また、特定部１１２は、距離マトリックスから要素Ｃ−要素Ｄ間のクラスタ間距離を削除する。したがって、図１３の例に示されるヒヤリハットマップ５０ｆには、クラスタＮ２と要素Ｄとが存在することになる。なお、この状態まで処理が進むと、距離マトリクスに登録されている距離はなくなっている。即ちクラスタ間距離が「limit＿L2」より小さいという条件を満たす組み合わせがなくなっていることを意味する。これ以降のクラスタ化を実行することはできないので、クラスタ化の処理は終了となる。
【００８６】
（生成されたクラスタの例）
以上説明したように、生成部１１１は、クラスタ間距離が最も近い２つの要素−要素、要素−クラスタを組合せて新しいクラスタＮを生成する。一方、出力部１１３は、生成部１１１が生成したクラスタと、他の要素または他のクラスタとを組み合わせてクラスタＮを生成する。すなわち、生成部１１１および出力部１１３は、残存する２つのクラスタ間距離のうち、クラスタ間距離が最も小さい要素−要素、要素−クラスタ、クラスタ−クラスタを繰り返し組合せ、より大きいクラスタを生成していく。生成部１１１および出力部１１３は、クラスタ間距離が「limit＿L2」より小さいという条件を満たさなくなるまでクラスタを生成する処理を繰り返す。
【００８７】
図１４〜図１６を用いて、生成されたクラスタの例について説明する。図１４は、生成されたクラスタを説明するための第１の図である。図１４の例に示されるヒヤリハットマップ５１ａには、要素Ａ〜要素Ｌが分布する。図１４の縦軸及び横軸は、各要素の座標値を表す値である。例えば、なんらかの基準点（原点）からの距離（ｍ）を表す値である。生成部１１１は、クラスタ間距離が最も短い要素−要素または要素−クラスタを組合せてクラスタを生成する。生成部１１１は、残りの要素およびクラスタの中で、最もクラスタ間距離が短い要素−要素または要素−クラスタを組合せて新規クラスタを生成する。また、出力部１１３は、残りの要素およびクラスタの中で、最もクラスタ間距離が短い組合せがクラスタ−クラスタである場合に、クラスタ同士を結合して新規クラスタを生成する処理を行う。
【００８８】
例えば、生成部１１１は、ヒヤリハットマップ５１ａにおいてクラスタ間距離が最も短い要素Ｇ−要素Ｊで新規クラスタＮ１を生成する。次いで、生成部１１１は、残りの要素およびクラスタの中で、最もクラスタ間距離が短い要素Ｄ−要素Ｈで新規クラスタＮ２を生成する。このように、生成部１１１および出力部１１３は、最もクラスタ間距離が短い組み合わせに基づいて新規クラスタを生成する処理を繰り返す。
【００８９】
図１５は、生成されたクラスタを説明するための第２の図である。図１５の縦軸及び横軸は、図１４と同様、各要素の座標値を表す値である。例えば、なんらかの基準点（原点）からの距離（ｍ）を表す値である。生成部１１１および出力部１１３が、最もクラスタ間距離が短い組み合わせに基づいて新規クラスタを生成する処理を繰り返した結果、図１５の例に示されるヒヤリハットマップ５１ｂが生成される。ヒヤリハットマップ５１ｂには、要素Ｉと、要素Ｄおよび要素Ｈを有するクラスタＮ２と、要素Ａ、要素Ｇ、要素Ｊおよび要素Ｌを有するクラスタＮ７と、要素Ｂ、要素Ｃ、要素Ｅ、要素Ｆおよび要素Ｋを有するクラスタＮ８とが分布する。図１５の例に示されるように、クラスタ間距離がlimit＿L2以下の要素またはクラスタが組み合わされて新規クラスタが生成される。なお、この図では、Ｎ２，Ｎ７，Ｎ８の各クラスタの範囲を明示するために、各々のクラスタに含まれる要素を外周で結んだ多角形を描いているが、これはヒヤリハットマップ上のスポットを表現するための一例である。要素の括り状態でクラスタを表現する方法は、この限りではない。
【００９０】
図１６を用いて、limit＿L2が「２０」として、クラスタの生成について説明する。図１６は、生成されたクラスタを説明するための第３の図であり、デンドログラムと称されるものである。グラフ５２の縦軸は、クラスタ間距離（ｍ）である。グラフ５２のクラスタ間距離０ｍ以下の位置に列挙されているＡ〜Ｌは、各要素を表し、図１４および図１５の要素Ａ〜要素Ｌに対応する。一方、クラスタ間距離０ｍ以上の位置に列挙されているＮ１〜Ｎ８は、クラスタを表し、図１５のクラスタＮ２、Ｎ７およびＮ８に一部対応する。図１６の例において、クラスタＮ８の生成を例として説明する。生成部１１１は、要素Ｅと要素Ｆとを組合せてクラスタＮ３を生成する。生成部１１１は、要素Ｃと要素Ｋとを組合せてクラスタＮ５を生成する。生成部１１１は、要素ＢとクラスタＮ５とを組合せてクラスタＮ６を生成する。出力部１１３は、クラスタＮ３とクラスタＮ６とを組合せてクラスタＮ８を生成する。ここで、生成部１１１および出力部１１３は、クラスタＮ８に他の要素またはクラスタを組み合わせようとすると、クラスタ間距離がlimit＿L2「２０」より大きくなるので、クラスタＮ８を確定させる。このようにして、クラスタＮ８が生成される。なお、生成部１１１および出力部１１３は、同様にクラスタＮ２およびクラスタＮ７を生成する。
【００９１】
（注意地点の特定）
図１７は、注意地点の特定を説明するための図である。図１７の例は、道路２０と道路２１が交差する交差点周囲のヒヤリハットマップを表す。道路２１には、横断歩道２２ａおよび横断歩道２２ｂが設置されている。ヒヤリハットが発生した地点に「×」印が付されている。図１７の例に示すように、道路２０には横断歩道が設置されておらず、歩行者が道路２０に飛び出すことが多いのでヒヤリハットが多発している。
【００９２】
生成部１１１は、図１７の例においてヒヤリハットが多発している領域にクラスタＮａおよびクラスタＮｂを生成する。生成部１１１は、クラスタＮａおよびクラスタＮｂ内の「×」印が付された各地点の座標に基づいて、クラスタＮａおよびクラスタＮｂの重心の位置ＮａｒおよびＮｂｒをそれぞれ算出する。
【００９３】
例えば、重心の位置ＮａｒおよびＮｂｒを注意地点としてドライブナビに登録することで、ドライブナビは、重心の位置ＮａｒおよびＮｂｒのおおよその半径で１０ｍ以内に車両が侵入した時にドライバに危険を通知することができる。
【００９４】
上述したように、情報処理装置１００は、所謂、最長法という階層的クラスタリングの考え方に準じて、クラスタを生成する。最長法を用いてクラスタを生成する場合、最も長い要素間の距離が所定値以内であるか否かに基づいて、隣接するクラスタを結合するか否かが判定される。図１７の例において、仮に最短法を用いると、クラスタＮａとクラスタＮｂとの間の最短の要素間距離が打ち切り距離よりも短い場合、クラスタＮａおよびクラスタＮｂが結合されてしまう可能性がある。クラスタＮａとクラスタＮｂとが結合されてしまったならば、交差点全体を含む一つの大きなクラスタになってしまい、交差点内のどこでヒヤリハットが多発しているかという情報がわかりづらくなってしまう。
【００９５】
一方、実施例１に係る情報処理装置１００は、最長法を用いてクラスタを形成するのでクラスタＮａおよびクラスタＮｂが隣接していても、最長のクラスタ間距離が打ち切り距離であるlimit＿L2以上なら、クラスタＮａおよびクラスタＮｂを結合することはない。すなわち、情報処理装置１００は、最長法を用いることで隣接するクラスタの過剰な結合を防止することができる。例えば、情報処理装置１００は、図１７の例においてこの交差点上では、指摘すべき注意点を２つに限定することが可能となる。
【００９６】
（全体の処理フロー）
図１８を用いて、情報処理装置１００の処理全体の処理フローについて説明する。図１８は、全体の処理フローの一例を示す図である。情報処理装置１００は、初期処理を実行する（ステップＳ１０）。情報処理装置１００は、イベントＤＢ１２１に格納されている各レコードを読み込むデータ読込処理を実行する（ステップＳ１１）。情報処理装置１００は、各要素間のクラスタ間距離が格納された距離マトリックスを作成する距離マトリックス作成処理を実行する（ステップＳ１２）。情報処理装置１００は、距離マトリックスに基づいてクラスタを生成するクラスタ化処理を実行する（ステップＳ１３）。情報処理装置１００は、ヒヤリハットマップ上の注意地点を注意地点リスト１２２に出力する注意地点出力処理を実行する（ステップＳ１４）。情報処理装置１００は、終了処理を実行する（ステップＳ１５）。なお、情報処理装置１００は、終了処理において、処理終了時の各種カウンタの値をモニタに表示し、処理プログラムを停止する処理をおこなう。
【００９７】
（初期処理のフロー）
図１９を用いて、ステップＳ１０に係る初期処理のフローについて説明する。図１９は、初期処理のフローの一例を示す図である。情報処理装置１００は、各車両に設置されているドライブレコーダーからイベントログを収集し、収集したイベントログをイベントＤＢ１２１に格納する（ステップＳ２０）。情報処理装置１００は、基準位置（ｚｘ，ｚｙ）、打ち切り距離（ｍ）limit＿L、運転注意基準P＿hyr等の各種パラメータを受け付ける（ステップＳ２１）。
【００９８】
情報処理装置１００は、基準位置（ｚｘ，ｚｙ）における２点間の緯度差および経度差を２点間の距離に換算するための距離換算係数ｕｘ，ｕｙを算出する（ステップＳ２２）。情報処理装置１００は、打ち切り距離（ｍ）limit＿Lに２を乗じて「limit＿L2」を算出し（ステップＳ２３）、初期処理を終了させる。
【００９９】
（データ読込処理のフロー）
図２０を用いて、ステップＳ１１に係るデータ読込処理のフローについて説明する。図２０は、データ読込処理のフローの一例を示す図である。情報処理装置１００は、イベントＤＢ１２１をオープンする（ステップＳ３０）。これと同時にイベント件数の変数であるｎｃを初期化し、その値を０とする（ステップＳ３１）。情報処理装置１００は、イベントＤＢ１２１の各レコードを読み込むレコード読み込み処理を実行する（ステップＳ３２）。情報処理装置１００は、読み込まれていないレコードがあるか否かを判定する（ステップＳ３３）。情報処理装置１００は、読み込まれていないレコードがある場合（ステップＳ３３Yes）、ステップＳ３２の処理に戻る。一方、情報処理装置１００は、読み込まれていないレコードがない場合（ステップＳ３３No）、ステップＳ３４の処理に移行する。
【０１００】
情報処理装置１００は、イベントＤＢ１２１をクローズする（ステップＳ３４）。情報処理装置１００は、読み出した総レコード数が上限以上であるか否かを判定する（ステップＳ３５）。情報処理装置１００は、総レコード数が上限より少ない場合（ステップＳ３５No）、データ読込処理を終了させてステップＳ１２の処理に移行する。一方、情報処理装置１００は、総レコード数が上限以上ある場合（ステップＳ３５Yes）、エラーを出力し（ステップＳ３６）、処理を強制終了させる（ステップＳ３７）。
【０１０１】
（レコード読込処理のフロー）
図２１を用いて、ステップＳ３１に係るレコード読込処理について説明する。図２１は、レコード読込処理のフローの一例を示す図である。情報処理装置１００は、イベントＤＢ１２１からレコードを１件読み出す（ステップＳ４０）。情報処理装置１００は、イベントＤＢ１２１から全てのレコードを読み出したか否かを判定する（ステップＳ４１）。情報処理装置１００は、イベントＤＢ１２１から全てのレコードを読み出した場合（ステップＳ４１Yes）、レコード読込処理を終了させる。
【０１０２】
一方、情報処理装置１００は、イベントＤＢ１２１から全てのレコードを読み出していない場合（ステップＳ４１No）、イベント件数ｎｃに１を加算する（ステップＳ４２）。情報処理装置１００は、イベントログをメモリに格納する（ステップＳ４３）。情報処理装置１００は、クラスタ番号リストにクラスタ番号ｎｃの要素を追加する（ステップＳ４４）。なお、変数ｎｃには、データ読込処理がなされている間、順次１ずつ加算されるが、この時々のｎｃの値を、その時に読みだされたイベントの地点に付与するＩＤ番号とする。すなわち、変数ｎｃは総イベント件数であり、最後の地点のＩＤ番号となる。ここで、クラスタ番号と地点番号の関係について、プログラム作成の便宜上、地点を束ねたクラスタの番号は、発生した順に、この最後の地点のＩＤ番号から、順次１を加えた値を付与するものとする。また、この段階では、地点のＩＤ番号とクラスタ番号との区別を敢えて行わないものとする。即ち、クラスタ番号がｎｃ以下の場合は、それが単独の地点からなる要素であることを意味し、クラスタ番号がｎｃより大きい場合には、それが、複数の地点を結合して出来た、クラスタであることを意味する。以降の説明では、このことを前提に、要素である地点、これを結合したクラスタを識別する番号を併せて、クラスタ番号と称するものとする。
【０１０３】
（距離マトリックス作成処理のフロー）
図２２を用いて、ステップＳ１２に係る距離マトリックス作成処理について説明する。図２２は、距離マトリックス作成処理のフローの一例を示す図である。情報処理装置１００は、クラスタ番号リストから２要素の組合せを１つ取得する（ステップＳ５０）。情報処理装置１００は、クラスタ番号リストから全ての組合せを取得済みであるか否かを判定する（ステップＳ５１）。情報処理装置１００は、クラスタ番号リストから全ての組合せを取得済みの場合（ステップＳ５１Yes）、距離マトリックス作成処理を終了させる。ここで、実際のプログラムの実装においては、以下のようにすることで距離マトリックスの作成が実現可能となる。すなわち、“クラスタ番号リストから２要素の組合せを１つ取得する”処理（ステップＳ５０およびステップＳ５１）は、連想配列からキー要素を取り出すループを２重化する。さらに、内部ループでは、取り出された要素（ｐ、ｑ）について、ｐ＜ｑの大小関係を満たす組み合わせのみを処理対象とする。
【０１０４】
一方、情報処理装置１００は、クラスタ番号リストから取得していない組み合わせがある場合（ステップＳ５１No）、クラスタ番号リストから取得した２要素間のクラスタ間距離Ｌを算出する（ステップＳ５２）。情報処理装置１００は、算出したクラスタ間距離Ｌが「limit＿L2」未満であるか否かを判定する（ステップＳ５３）。情報処理装置１００は、クラスタ間距離Ｌが「limit＿L2」以上である場合（ステップＳ５３No）、ステップＳ５０の処理に戻る。一方、情報処理装置１００は、クラスタ間距離Ｌが「limit＿L2」未満である場合（ステップＳ５３Yes）、クラスタ間距離Ｌを距離マトリックスに登録し（ステップＳ５４）、ステップＳ５０の処理に戻る。
【０１０５】
（クラスタ化処理のフロー）
図２３を用いて、ステップＳ１３に係るクラスタ化処理について説明する。図２３は、クラスタ化処理のフローの一例を示す図である。生成部１１１は、距離マトリックスが空となっていないか否かを判定する（ステップＳ６０）。生成部１１１は、距離マトリックスが空の場合（ステップＳ６０No）、クラスタ化処理を終了させる。一方、生成部１１１は、距離マトリックスに要素またはクラスタ間の距離Ｌを構成する要素（ｐ、ｑ）が残っている場合（ステップＳ６０Yes）、ステップＳ６１の処理に移行する。
【０１０６】
図２３の例のクラスタ化処理フローにおいて、ステップＳ６１〜Ｓ６７までの処理は、新規クラスタＮを生成する処理である。
【０１０７】
生成部１１１は、距離マトリックスの先頭に登録されている２つの要素を取得することで、距離マトリックスからクラスタ間距離Ｌが最小の要素成分（ｐ，ｑ）を取得する（ステップＳ６１）。要素成分（ｐ，ｑ）は、距離マトリックスに登録されている２つの要素の組、要素とクラスタの組、または２つのクラスタの組を表す。なお、この時、ｐ＜ｑの関係が、常に成立している。
【０１０８】
生成部１１１は、距離マトリックスから要素成分（ｐ，ｑ）を削除する（ステップＳ６２）。生成部１１１は、Ｎに１を加算したクラスタ番号（Ｎ＝Ｎ＋１）を取得する（ステップＳ６３）。なお、クラスタ番号Ｎの初期値は、総イベント件数ｎｃである。生成部１１１は、集約地点テーブルに新規クラスタＮの配下のクラスタを設定する（ステップＳ６４）。例えば、生成部１１１は、新規クラスタＮの左右ポインタ（Pair1［Ｎ］，Pair2［Ｎ］）に新規クラスタＮの配下クラスタのクラスタ番号を格納することで、集約地点テーブルに新規クラスタＮの配下クラスタを設定する。ここで、Pair1［Ｎ］＜Pair2［Ｎ］の関係が成立するように、配下の２つのクラスタを左右を決定するものとする。即ち、Pair1［Ｎ］＝ｐであり、Pair2［Ｎ］＝ｑである。
【０１０９】
生成部１１１は、新規クラスタＮの配下クラスタのイベント件数を合算することでイベント件数ｋ［Ｎ］を求める（ステップＳ６５）。また、生成部１１１は、新規クラスタＮの配下クラスタのヒヤリ件数を合算することでヒヤリ件数Ｈ［Ｎ］を求める（ステップＳ６５）。また、生成部１１１は、新規クラスタＮの配下クラスタの位置に基づいて新規クラスタＮの重心位置を求める（ステップＳ６６）。
【０１１０】
生成部１１１は、クラスタ番号リストからクラスタ番号ｐ，ｑを削除する（ステップＳ６７）。
【０１１１】
図２３の例のクラスタ化処理フローにおいて、ステップＳ６８〜Ｓ７４までの処理は、新規クラスタＮと、各残存クラスタｉとの間のクラスタ間距離Ｌをそれぞれ距離マトリックスに登録する処理である。
【０１１２】
特定部１１２は、クラスタ番号リストから１つのクラスタ番号ｉを取得する（ステップＳ６８）。クラスタ番号ｉは、クラスタ番号リストに登録されている、先頭から最後のクラスタ番号までの１つのクラスタ番号であって、新規クラスタＮを構成するｐ、ｑのどちらとも該当しない番号である。すなわち、クラスタｉは、残存クラスタである。特定部１１２は、取得した新規クラスタを構成するｐ，ｑと他の要素またはクラスタとのクラスタ間距離Ｌを全て比較したか否かを判定する（ステップＳ６９）。特定部１１２は、クラスタ間距離Ｌを全て比較した場合（ステップＳ６９Yes）、クラスタ番号リストにクラスタＮを追加して（ステップＳ７５）、ステップＳ６０の処理に戻る。一方、特定部１１２は、クラスタ間距離Ｌの比較が終了していない場合（ステップＳ６９No）、ステップＳ７０の処理に移行する。
【０１１３】
特定部１１２は、クラスタｉと要素成分（ｐ，ｑ）とのそれぞれのクラスタ間距離を比較し、クラスタｉが最長法で「limit＿L2」内にあるかをチェックする接続チェック処理を実行する（ステップＳ７０）。特定部１１２は、接続チェック処理のチェック結果に基づいて、クラスタｉが「limit＿L2」内にあるか否かを判定する（ステップＳ７１）。特定部１１２は、クラスタｉが「limit＿L2」内にある場合（ステップＳ７１Yes）、ステップＳ７２の処理に移行する。一方、特定部１１２は、クラスタｉが「limit＿L2」外にある場合（ステップＳ７１No）、ステップＳ７４の処理に移行する。
【０１１４】
特定部１１２は、残存クラスタｉと新規クラスタＮのクラスタ間距離Ｌを算出する処理を実行する（ステップＳ７２）。特定部１１２は、距離マトリックスに（ｉ，Ｎ）のクラスタ間距離Ｌを登録する（ステップＳ７３）。
【０１１５】
特定部１１２は、距離マトリックスに（ｉ，ｐ）または（ｐ，ｉ）、および（ｉ，ｑ）または（ｑ，ｉ）のクラスタ間距離が登録されている場合に、その当該要素成分を距離マトリックスから削除する（ステップＳ７４）。そして、特定部１１２は、ステップＳ６８の処理に戻る。
【０１１６】
（接続チェック処理のフロー）
図２４を用いて、ステップＳ７０に係る接続チェック処理について説明する。図２４は、接続チェック処理のフローの一例を示す図である。特定部１１２は、新規クラスタＮのクラスタ番号と残存クラスタｉのクラスタ番号とを、それぞれ変数ｓ，ｔに格納する（ステップＳ８０）。特定部１１２は、変数ｔよりも変数ｓが大きいか否かを判定する（ステップＳ８１）。特定部１１２は、変数ｔよりも変数ｓが大きい場合（ステップＳ８１Yes）、変数ｓと変数ｔとを入れ替える（ステップＳ８２）。一方、特定部１１２は、変数ｓが変数ｔ以下の場合（ステップＳ８１No）、ステップＳ８３の処理に移行する。
【０１１７】
特定部１１２は、要素成分（ｓ，ｔ）とクラスタｉとの２つのクラスタ間距離Ｌがいずれも距離マトリックスに登録されているか否かを判定する（ステップＳ８３）。特定部１１２は、クラスタ間距離Ｌが距離マトリックスに登録されている場合（ステップＳ８３Yes）、「limit＿L2」内に残存クラスタｉがあると判定する（ステップＳ８４）。一方、特定部１１２は、クラスタ間距離Ｌが距離マトリックスに登録されていない場合（ステップＳ８３No）、「limit＿L2」外に残存クラスタｉがあると判定する（ステップＳ８５）。すなわち、特定部１１２は、最長法に基づいて「limit＿L2」内に残存クラスタｉがあるか否かを判定する。
【０１１８】
（クラスタ間距離算出処理のフロー）
図２５を用いて、ステップＳ７２に係るクラスタ間距離算出処理について説明する。図２５は、クラスタ間距離算出処理のフローの一例を示す図である。特定部１１２は、新規クラスタＮおよび残存クラスタｉのクラスタ番号をそれぞれ変数ｓ，ｔに格納する（ステップＳ９０）。特定部１１２は、変数ｔよりも変数ｓが大きいか否かを判定する（ステップＳ９１）。特定部１１２は、変数ｔよりも変数ｓが大きい場合（ステップＳ９１Yes）、変数ｓと変数ｔとを入れ替える（ステップＳ９２）。一方、特定部１１２は、変数ｓが変数ｔ以下の場合（ステップＳ９１No）、ステップＳ９３の処理に移行する。なお、変数ｔよりも変数ｓが大きい場合に変数ｓと変数ｔとを入れ替える処理がなされるのは、特定部１１２がクラスタｔに係る配下クラスタ対してクラスタ間距離算出処理を実行するためである。
【０１１９】
特定部１１２は、クラスタ間距離（ｓ，ｔ）が距離マトリックスに登録されているか否かを判定する（ステップＳ９３）。特定部１１２は、クラスタ間距離（ｓ，ｔ）が距離マトリックスに登録されている場合（ステップＳ９３Yes）、登録されている距離マトリックスの要素成分（ｓ、ｔ）の値、即ち（ｓ、ｔ）間の距離Ｌの値を返す（ステップＳ９４）。
【０１２０】
一方、特定部１１２は、クラスタ間距離（ｓ，ｔ）が距離マトリックスに登録されていない場合（ステップＳ９３No）、左右ポインタPair1［ｔ］、Pair2［ｔ］を用いて、集約地点テーブルからクラスタｔの配下のクラスタ番号ｐ，ｑを取得する（ステップＳ９５）。次いで、特定部１１２は、再帰呼び出しでステップＳ７２のクラスタ間距離算出処理を呼び出し、（ｓ，ｐ）と（ｓ，ｑ）とのクラスタ間距離をそれぞれ算出する。特定部１１２は、算出したクラスタ間距離のうち、大きい方をｓ，ｔ間のクラスタ間距離Ｌとする（ステップＳ９６）。この後、特定部１１２は、クラスタｓ，ｔ間のクラスタ間距離Ｌを返すステップＳ９４の処理に移行する。
【０１２１】
（注意地点出力処理のフロー）
図２６を用いて、ステップＳ１４に係る注意地点出力処理について説明する。図２６は、注意地点出力処理のフローの一例を示す図である。出力部１１３は、注意地点リスト１２２の帳票ヘッダを出力する（ステップＳ１００）。例えば、出力部１１３は、帳票ヘッダとしてグループ番号、ＩＤ、件数／イベント番号、日付、時刻、車両番号、ヒヤリ度、経度、緯度、距離、運転注意ポイント、コメント等の項目名を出力する。
【０１２２】
出力部１１３は、各種カウンタの初期化をおこなう（ステップＳ１０１）。例えば、出力部１１３は、イベント件数ＮＧ、孤立地点数ＮＧ０、注意地点数ＮＧ１、注意地点のイベント件数の総和ＮＣ１、注意地点となる可能性のある地点数ＮＧ２、注意地点となる可能性のある地点のイベント件数の総和ＮＣ２のそれぞれに０に設定する。さらに、出力部１１３は、注意地点でない地点数ＮＧ３、注意地点でない地点のイベント件数の総和ＮＣ３のそれぞれに０に設定する。なお、情報処理装置１００は、各カウンタのカウンタ値を、ステップＳ１５に係る終了処理でモニタに出力する。また、図２６に係る注意地点出力処理のフローにおける各カウンタの操作に関しては、説明を省略する。
【０１２３】
出力部１１３は、クラスタ番号リストから１つのクラスタ番号Ｎを取得する（ステップＳ１０２）。出力部１１３は、クラスタ番号リストから全てのクラスタ番号Ｎを取得済みか否かを判定する（ステップＳ１０３）。出力部１１３は、クラスタ番号リストから全てのクラスタ番号Ｎを取得済みの場合（ステップＳ１０３Yes）、注意地点出力処理を終了する。一方、出力部１１３は、クラスタ番号リストから取得していないクラスタ番号Ｎがある場合（ステップＳ１０３No）、ステップＳ１０４の処理に移行する。
【０１２４】
出力部１１３は、クラスタＮが孤立地点であるか否かを判定する（ステップＳ１０４）。孤立地点とは、１つの要素のみ含まれるクラスタに係る地点であって、クラスタＮのイベント件数ｋ［Ｎ］＝１か否かで判定される。出力部１１３は、クラスタＮが孤立地点である場合（ステップＳ１０４Yes）、ステップＳ１０２の処理に戻る。一方、出力部１１３は、クラスタＮが孤立地点でない場合（ステップＳ１０４No）、ステップＳ１０５の処理に移行する。
【０１２５】
出力部１１３は、クラスタＮのイベント件数ｋ［Ｎ］およびヒヤリ件数Ｈ［Ｎ］を式（１）に代入して、ヒヤリ度Ｐ［Ｎ］を算出する（ステップＳ１０５）。出力部１１３は、算出したヒヤリ度Ｐ［Ｎ］が運転注意基準P＿hyr以上でかつ、ヒヤリ件数Ｈ［Ｎ］が１件より多いか否かを判定する（ステップＳ１０６）。この条件を満たした場合（ステップＳ１０６Yes）、出力部１１３は、クラスタＮの重心位置が注意地点であると判定する（ステップＳ１０７）。出力部１１３は、クラスタＮの運転注意ポイントを「2」に設定する。一方、出力部１１３は、この条件を満たさない場合（ステップＳ１０６No）、ステップＳ１０８の処理に移行する。
【０１２６】
出力部１１３は、ヒヤリ件数Ｈ［Ｎ］が１件以上であるか否かを判定する（ステップＳ１０８）。出力部１１３は、ヒヤリ件数Ｈ［Ｎ］が１件以上である場合（ステップＳ１０８Yes）、クラスタＮの重心位置が「注意地点となる可能性あり」と判定する（ステップＳ１０９）。出力部１１３は、クラスタＮの運転注意ポイントを「1」に設定する。一方、出力部１１３は、ヒヤリ件数Ｈ［Ｎ］が０件である場合（ステップＳ１０８No）、クラスタＮの重心位置が注意地点でないと判定する（ステップＳ１１０）。出力部１１３は、クラスタＮの運転注意ポイントを「0」に設定する。
【０１２７】
出力部１１３は、イベント件数、ヒヤリ度、重心位置、運転注意ポイント等のクラスタＮの情報をプリンタに出力する（ステップＳ１１１）。出力部１１３は、クラスタＮ配下の要素の情報をプリンタに出力処理する（ステップＳ１１２）。そして、出力部１１３は、ステップＳ１０２の処理に戻る。
【０１２８】
（プリンタ出力処理のフロー）
図２７を用いて、ステップＳ１１２に係るクラスタＮ配下の要素の情報をプリンタに出力する処理について説明する。図２７は、プリンタ出力処理のフローの一例を示す図である。出力部１１３は、クラスタ番号リストから取得したクラスタ番号Ｎが総イベント数ｎｃより大きいか否かを判定する（ステップＳ１２０）。出力部１１３は、クラスタ番号Ｎが総イベント数ｎｃ以下の場合（ステップＳ１２０No）、クラスタＮの情報をプリンタに出力し（ステップＳ１２２）、プリンタ出力処理を終了する。
【０１２９】
一方、出力部１１３は、クラスタ番号Ｎが総イベント数ｎｃより大きい場合（ステップＳ１２０Yes）、クラスタＮ配下のクラスタ番号（Pair1［Ｎ］，Pair2［Ｎ］）を取得する（ステップＳ１２１）。出力部１１３は、ここで取得されたPair1［Ｎ］，Pair2［Ｎ］のそれぞれについて、クラスタ番号Ｎに置き換えた上で、ステップＳ１１２に係るプリンタ出力処理を再帰呼出し、クラスタＮ配下のクラスタに対してもステップＳ１１２に係るプリンタ出力処理を行う。なお、出力部１１３は、ステップＳ１１２に係るプリンタ出力処理を実行するクラスタＮの配下クラスタ番号が総イベント数のｎｃ以下となる、即ち当該クラスタが地点になるまで、繰り返し再帰呼び出しを実行する。
【０１３０】
なお、図２６及び図２７においては、情報処理装置１００による処理結果をプリンタから出力する例を説明したが、当然ながら、他の態様により出力しても構わない。例えば、プリンタへの出力対象となったクラスタＮの情報を、地図を表示したコンピュータの画面上に表示しても構わない。もしくは、通信網を介して、クラスタＮの情報を他のコンピュータや車に搭載したコンピュータへ送信し、それらのコンピュータに接続されているディスプレイに表示させても構わない。
【０１３１】
以上説明したように、情報処理装置１００は、クラスタ外の要素をクラスタに加えるか否かを判定する場合、まず、クラスタ内の各要素とクラスタ外の要素とのクラスタ間距離のうち、最長の距離をクラスタ間距離Ｌとする。情報処理装置１００は、クラスタ間距離Ｌが「limit＿L2」以下の場合、この２つのクラスタを結合して、新規のクラスタとして加える。すなわち、情報処理装置１００は、最長法の原理に基づき、クラスタを生成する。ここで新規に結合されたクラスタの大きさは、最長法を用いてクラスタを生成するので、「limit＿L2」を超えることはない。このことによって、実施例１に係る情報処理装置１００は、生成されるクラスタの大きさの上限を満たしつつ、隣接するクラスタの過剰な結合を抑制できる。
【０１３２】
また、仮にイベント件数ｋ［Ｎ］の量で注意地点であるか否かを判定した場合、交通量が多い地域の方が急ブレーキ等のイベントが多く発生しやすいため、交通量が多い地域にあるスポットが注意地点と判定されやすい。これに対して、情報処理装置１００は、ヒヤリ件数Ｈ［Ｎ］をイベント件数ｋ［Ｎ］で除算したヒヤリ度Ｐ［Ｎ］を用いて、注意地点であるか否かを判定するので、交通上の危険度が高い注意地点を精度よく特定することができる。
【０１３３】
（実施例１の効果）
情報処理装置１００は、特定の事象と対応付けられた地点群について、地点間の距離に基づいて複数の地点を含むクラスタを生成する生成部１１１を有する。情報処理装置１００は、生成したクラスタに含まれる複数の地点の各々と、地点群のうちクラスタに含まれない特定の地点との間の距離のうち、最長の距離を特定する特定部１１２を有する。情報処理装置１００は、特定した最長の距離が所定の距離以内である場合に、クラスタに含まれる複数の地点と、特定の地点とを含むクラスタを生成し、出力する出力部１１３を有する。これにより、地図上の地点のプロットが集中しているエリア（所謂スポット）を精度よく特定できる。
【０１３４】
また、情報処理装置１００は、特定の事象と対応付けられた地点群について、地点間の距離に基づいてそれぞれ複数の地点を含む複数のクラスタを生成する生成部１１１を有する。情報処理装置１００は、生成した複数のクラスタのうちの第１のクラスタに含まれる複数の地点の各々と、生成した複数のクラスタのうちの第２のクラスタに含まれる複数の地点の各々との間の距離のうち、最長の距離を特定する特定部１１２を有する。情報処理装置１００は、特定した最長の距離が所定の距離以内である場合に、第１のクラスタに含まれる複数の地点と、第２のクラスタに含まれる複数の地点とを含むクラスタを生成し、出力する出力部１１３を有する。これにより、地図上の地点のプロットが集中しているエリア（所謂スポット）を精度よく特定できる。
【０１３５】
情報処理装置１００は、さらに、同一のクラスタに対応付けられた第一の事象に関する地点の数と、地点のうち第二の事象にも対応付けられている地点の数とに基づいて、該クラスタに対する評価値を算出する算出部を有する。出力部１１３は、クラスタの情報と評価値とを出力する。これにより、特定されたエリアのうち、特に注意すべきエリアを厳選できる。
【０１３６】
出力部１１３は、第一の事象は急ブレーキであり、クラスタの位置を示した地図を出力する。これにより、急ブレーキが多発するエリアを精度よく特定できる。
【０１３７】
第二の事象はヒヤリハットである。これにより、特定されたエリアのうち、特に危険度が高いエリアを特定できる。
【０１３８】
情報処理装置１００は、第一の事象に対応付けられている地点の数に対する、第二の事象にも対応付けられている地点の数の割合に基づいて評価値を算出する算出部を有する。また、出力部１１３は、評価値が所定の値以上であるクラスタを出力対象とする。例えば、急ブレーキが多発しても、その急ブレーキがヒヤリハットに起因しない場合もある。事故防止の観点から特に注意すべきは、急ブレーキが多発し、そのうちヒヤリハットも多発している箇所である。すなわち、急ブレーキ発生の原因がヒヤリハット事象が発生したことにあると推定できる割合が多い箇所である。情報処理装置１００によれば、特定されたエリアのうち、評価値に基づいて出力対象とするクラスタを選択できるので、そのような特に注意すべきエリアを出力できる。
【０１３９】
情報処理装置１００は、さらに、１のクラスタと他のクラスタまたは他の地点との間の距離を、子ノードよりも親ノードの方がクラスタ間距離が小さくなるように構成されたヒープである距離マトリックスに記憶する記憶部１２０を有する。これにより、最も距離が短いクラスタの組を検索する速度を早め、処理速度を大幅に向上できる。
【０１４０】
（実施例１に関連する他の態様）
以下、上述の実施形態における変形例の一部を説明する。下記の変形例のみでなく、本開示の技術の本旨を逸脱しない範囲の設計変更は適宜行われうる。
【０１４１】
実施例１の情報処理装置１００は、図２において１台のコンピュータ１１に複数のドライブレコーダー１０Ａ〜１０Ｃを接続してイベントログを収集し、イベントＤＢ１２１を生成する旨を説明したが、これに限定されない。例えば、情報処理装置１００は、インターネットを介して複数のドライブレコーダーからイベントログを収集し、イベントＤＢ１２１を生成してもよい。
【０１４２】
図２８は、イベントログの収集を説明するための第２の図である。図２８の例に示すように、ドライブレコーダー１５Ａ〜１５Ｃは、それぞれコンピュータ１６Ａ〜１６Ｃに接続される。コンピュータ１６Ａ〜１６Ｃは、インターネット１７を介してサーバ１８に接続される。サーバ１８は、プリンタ１９に接続される。なお、図２８の例においてサーバ１８は、情報処理装置１００の一例である。
【０１４３】
コンピュータ１６Ａ〜１６Ｃは、それぞれドライブレコーダー１５Ａ〜１５Ｃが有するＳＤカードからイベントログを読み出す。コンピュータ１６Ａ〜１６Ｃはそれぞれ、読み出したイベントログを、インターネット１７を介してサーバ１８に送信する。サーバ１８は、送信されたイベントログを基にイベントＤＢ１２１を生成する。なお、サーバ１８は、イベントＤＢ１２１を基に注意地点リスト１２２を生成してプリンタ１９に出力する。
【０１４４】
基準位置（ｚｘ，ｚｙ）、打ち切り距離（ｍ）limit＿L、運転注意基準P＿hyr等のパラメータは、ユーザが適宜変更することができる。情報処理装置１００は、打ち切り距離limit＿Lを変更することでクラスタの大きさ、即ち求めるべきスポットの大きさを調整できる。例えば、情報処理装置１００は、打ち切り距離limit＿Lが１０ｍの場合、交差点内に複数の注意地点を見つけることができる。また情報処理装置１００は、打ち切り距離limit＿Lが５００ｍの場合、交通上の危険が多い地域を特定することができる。
【０１４５】
また、情報処理装置１００は、運転注意基準P＿hyrを変更することで注意地点を増やしたり減らしたりすることができる。例えば、情報処理装置１００は、運転注意基準P＿hyrを高くした場合、選定する注意地点をより危険度が高い注意地点に厳選する。
【０１４６】
情報処理装置１００が、ドライブレコーダーからイベントログを収集する旨を説明したが、これに限定されない。例えば、情報処理装置１００は、デジタルタコグラフ、カーナビゲーション装置からイベントログを収集してもよい。
【０１４７】
実施例１において情報処理装置１００は、急ブレーキの有無と、歩行者や車両等の物体の検知の有無とに基づいてヒヤリがあったか否かを判定する旨を説明したが、これに限定されない。情報処理装置１００は、収集したイベントログの種別に応じてヒヤリがあったか否かを判定してもよい。例えば、前方の車両に追突しそうになったという事象Ｃ１、歩行者または自転車が飛び出してきたという事象Ｃ２、側方の車両に接触しそうになったという事象Ｃ３があった場合に、式（２）に基づいてヒヤリがあったか否かを判定してもよい。
【０１４８】
Ｃ＝Ｃ１  ∪  Ｃ２  ∪  Ｃ３  ・・・（２）
【０１４９】
上述した情報処理装置１００は、１台のコンピュータに実装されてもよく、また、複数台のコンピュータによるクラウドに実装されてもよい。例えば、情報処理装置１００は、クラウドシステムに含まれる複数台のコンピュータが、図１に示した生成部１１１、特定部１１２および出力部１１３と同様の機能を発揮する。
【０１５０】
また、実施例１に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１５１】
また、実施例１では、距離マトリックスの実装としてヒープを採用しているが、これに限定されない。距離マトリクスのデータ構造の要件である、クラスタ間の距離を追加登録できる、最小である要素を取り出す、任意の要素を削除する等、所謂、「優先順位付キュー」の機能を実現できるデータ構造である限り、他の実装が採用されることを拒むものではない。
【０１５２】
（情報処理装置のハードウェア構成）
図２９は、実施例１の情報処理装置１００のハードウェア構成を示す図である。図２９の例が示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、他の装置と接続するためのインターフェース装置２０５と、他の装置と無線により接続するための無線通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【０１５３】
ハードディスク装置２０８には、例えば図１に示した生成部１１１、特定部１１２および出力部１１３の各処理部と同様の機能を有する情報処理プログラムが記憶される。さらに、ハードディスク装置２０８には、生成部１１１、特定部１１２および出力部１１３の各処理部と同様の機能を有する情報処理プログラムが記憶される。また、ハードディスク装置２０８には、情報処理プログラムを実現するための各種データが記憶される。
【０１５４】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで各種の処理を行う。これらのプログラムは、コンピュータ２００を、例えば図１に示した生成部１１１、特定部１１２および出力部１１３として機能させることができる。
【０１５５】
なお、上記の情報処理プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）等に接続された装置にこのプログラムを記憶させておき、コンピュータ２００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１５６】
図３０は、コンピュータで動作するプログラムの構成例を示す図である。コンピュータ２００において、図３０に示すハードウェア群２６（２０１〜２０８）の制御を行なうＯＳ（オペレーティング・システム）２７が動作する。ＯＳ２７に従った手順でＣＰＵ２０１が動作して、ハードウェア群２６の制御・管理が行なわれることにより、アプリケーションプログラム２９やミドルウェア２８に従った処理がハードウェア群２６で実行される。さらに、コンピュータ２００において、ミドルウェア２８またはアプリケーションプログラム２９が、ＲＡＭ２０７に読み出されてＣＰＵ２０１により実行される。
【０１５７】
ＣＰＵ２０１により情報処理機能が呼び出された場合、ミドルウェア２８またはアプリケーションプログラム２９の少なくとも一部に基づく処理を行なうことで、制御部１１０の機能が実現される。情報処理機能は、それぞれアプリケーションプログラム２９自体に含まれてもよいし、アプリケーションプログラム２９に従って呼び出されることで実行されるミドルウェア２８の一部であってもよい。
【符号の説明】
【０１５８】
１００              情報処理装置
１０１              通信部
１１０              制御部
１１１              生成部
１１２              特定部
１１３              出力部
１２０              記憶部
１２１              イベントＤＢ
１２２              注意地点リスト
【図１】
2016024619.tif 000003
【図２】
2016024619.tif 000004
【図３】
2016024619.tif 000005
【図４】
2016024619.tif 000006
【図５】
2016024619.tif 000007
【図６】
2016024619.tif 000008
【図７】
2016024619.tif 000009
【図８】
2016024619.tif 000010
【図９】
2016024619.tif 000011
【図１０】
2016024619.tif 000012
【図１１】
2016024619.tif 000013
【図１２】
2016024619.tif 000014
【図１３】
2016024619.tif 000015
【図１４】
2016024619.tif 000016
【図１５】
2016024619.tif 000017
【図１６】
2016024619.tif 000018
【図１７】
2016024619.tif 000019
【図１８】
2016024619.tif 000020
【図１９】
2016024619.tif 000021
【図２０】
2016024619.tif 000022
【図２１】
2016024619.tif 000023
【図２２】
2016024619.tif 000024
【図２３】
2016024619.tif 000025
【図２４】
2016024619.tif 000026
【図２５】
2016024619.tif 000027
【図２６】
2016024619.tif 000028
【図２７】
2016024619.tif 000029
【図２８】
2016024619.tif 000030
【図２９】
2016024619.tif 000031
【図３０】
2016024619.tif 000032