テリトリーの自動最適化

本演習にかかる時間はおよそ 45 分です。

テリトリー デザインでは、現状のテリトリーの可視化だけでなく、位置情報や数値情報を元にテリトリーを最適化する事もできます。本演習では、以下の要素を考慮して、営業担当エリアを最適化する方法を学びます。

  • 各営業担当エリアの顧客数の合計値がなるべく均等になるようにする。
  • 各営業担当エリアが飛び地を持たず、なるべく担当拠点を中心にまとまるようにする。

演習

演習用データのダウンロード

演習「現状のテリトリーを可視化」から引き続き演習を行っている場合は、下記の手順 1 の操作は不要です。

  1. BA Pro チュートリアル-テリトリー プロジェクトパッケージをダウンロードします。
  2. ダウンロードした「BA Pro チュートリアル-テリトリー.ppkx」を開き、[演習2] マップを開きます。

[コンテンツ] ウィンドウおよびマップ上に「営業拠点」レイヤーおよび「世田谷区ポリゴン」レイヤーが追加されていることを確認します。

Business Analyst データ ソースが最新のデータセットに設定されていることをご確認ください。

テリトリー ソリューション レイヤーの作成

まず、空のテリトリー ソリューション レイヤーを作成します。

  1. [解析] タブ → [ワークフロー] グループの [ビジネス解析] ボタン → [新しいテリトリー デザイン ソリューション] をクリックします。
  2. [テリトリー ソリューションの作成 (Create Territory Solution)] ツールが開いたら、以下のように設定してツールを実行します。
    • 入力フィーチャ:世田谷区ポリゴン
    • テリトリー ソリューションの名前:営業担当エリアの最適化
    • ID フィールド:町丁字等コード
    • 名前フィールド:町丁字等名
    • テリトリー レベル名およびデフォルト テリトリー名:デフォルトのまま

[コンテンツ] ウィンドウおよびマップ上に、世田谷区ポリゴンをベースにした「営業担当エリアの最適化」テリトリー ソリューション レイヤーが追加されます。

レベル変数の設定

次に、テリトリー分けを行う際の最小単位である「ベース レイヤー」に含まれる数値フィールドをレベル変数として設定します。レベル変数は、テリトリーを最適化するために使用されます。 今回は、世田谷区ポリゴンのポリゴン数および「顧客数」フィールドの合計値の 2 つをレベル変数として設定します。

  1. [コンテンツ] ウィンドウ上の「営業担当エリアの最適化」テリトリー ソリューション レイヤーをクリックし、ArcGIS Pro 上部に表示される [テリトリー デザイン] タブをクリックします。

テリトリー デザインの一連の操作は、[テリトリー デザイン] タブからツールを起動して実行できます。

  1. [テリトリー デザイン] タブが開いたら、[変数の追加] ボタンをクリックして、[レベル変数の追加 (Add Level Variables)] ツールを開きます。
  2. [ベース レベル] パラメーターまで、以下のように設定します。
    • 入力テリトリー ソリューション:営業担当エリアの最適化
    • レベル:テリトリー [1]
    • ベース レベル:世田谷区ポリゴン [0]
  3. [変数] パラメーターについて、以下のように設定します。
    • 統計フィールド:顧客数
    • 統計情報:合計値
    • フィールド名:顧客数
    • フィールドのエイリアス名:顧客数
  4. [他を追加] ボタンをクリックし、さらに以下のように設定します。
    • 統計フィールド:顧客数
    • 統計情報:個数
    • フィールド名:エリア数
    • フィールドのエイリアス名:エリア数
  5. 以下の通りに設定できていることを確認し、[実行] をクリックしてツールを実行します。

レベル変数のバランス調整

テリトリー デザインでは、レベル変数に対して重みを個別に設定し、テリトリーを最適化する際に重視する指標の優先度を制御できます。今回は、各担当エリアの顧客数の合計値がなるべく均等になるように、顧客数の優先度を高く設定します。

  1. [テリトリー デザイン] タブの [バランス調整変数] ボタンをクリックして、[バランス調整変数の設定 (Set Balance Variables)] ツールを開きます。
  2. 以下のように設定します。
    • 入力テリトリー ソリューション:営業担当エリアの最適化
    • レベル:テリトリー [1]
    • バランス調整変数:変数と加重をそれぞれ以下の通りに設定します。
      • 顧客数:70
      • エリア数:30
  3. 以下の通りに設定できていることを確認し、[実行] をクリックしてツールを実行します。

距離パラメーターの設定

テリトリーを最適化する際には、レベル変数だけでなく距離 (直線距離もしくはネットワーク距離) を考慮できます。

  1. [テリトリー デザイン] タブの [距離パラメーター] ボタンをクリックして、[テリトリー距離パラメーターの設定 (Set Territory Distance Parameters)] ツールを開きます。
  2. 以下のように設定します。
    • 入力テリトリー ソリューション:営業担当エリアの最適化
    • レベル:テリトリー [1]
    • 距離タイプ:直線距離
    • 計測単位:キロメートル
  3. 以下の通りに設定できていることを確認し、[実行] をクリックしてツールを実行します。

距離タイプは、直線距離、もしくは運転時間などのネットワーク距離のいずれかを選択できます。作成するテリトリーが広範囲にわたる場合にネットワーク距離を使用すると、解析にかかる時間が長くなる可能性があります。

シード ポイントの追加

拠点を起点にしたテリトリーを構築する場合は、テリトリー シード ポイントを設定します。今回は、営業拠点ポイントをシード ポイントとして設定します。

  1. [テリトリー デザイン] タブの [シード ポイント] ボタンをクリックして、[テリトリー シード ポイントの追加 (Add Territory Seed Points)] ツールを開きます。
  2. 以下のように設定します。
    • 入力テリトリー ソリューション:営業担当エリアの最適化
    • レベル:テリトリー [1]
    • 入力シード ポイント フィーチャ:営業拠点
    • フィールド マップ:属性とフィールドをそれぞれ以下の通りに設定します。
      • 名前:拠点名
      • ID:拠点コード
  3. 以下の通りに設定できていることを確認し、[実行] をクリックしてツールを実行します。

「営業担当エリアの最適化」テリトリー ソリューション レイヤーに「シード ポイント テリトリー」が追加されます。

テリトリーの解析

ここまでの操作で、テリトリー最適化のための設定が完了しました。これらの設定を元に解析を実行し、最適化したテリトリーを構築します。

  1. [テリトリー デザイン] タブの [解析の実行] ボタンをクリックして、[テリトリーの解析 (Solve Territories)] ツールを開きます。
  2. 以下のように設定し、[実行] をクリックしてツールを実行します。
    • 入力テリトリー ソリューション:営業担当エリアの最適化
    • レベル:テリトリー [1]
    • テリトリー数を決定する方法:ユーザー定義
    • テリトリー数:7

シード ポイントを設定してテリトリーの解析を行う場合、テリトリー数の決定方法を「ユーザー定義」に設定し、テリトリー数としてシード ポイントの数を手動で入力します。

テリトリーの解析が実行され、「営業担当エリアの最適化」テリトリー ソリューション レイヤーが色分けされます。テリトリー シード ポイントを中心にしたテリトリーが構築されました。

解析結果は、上記画像と同じものにならない場合があります。また、テリトリー デザインの色分けは画像と異なる場合があります。

結果の確認

作成されたテリトリーを検証して、改善すべき点があるかを確認します。

  1. [コンテンツ] ウィンドウ上の「営業担当エリアの最適化」をクリックし、ArcGIS Pro 上部に表示される [テリトリー デザイン] タブをクリックして開きます。
  2. [テリトリーの検証] ボタンをクリックし、[テリトリーの検証 (Validate Territories)] ツールを開きます。

[テリトリーの検証] ツールは、バージョン 3.1 以降で利用できるツールです。バージョン 3.0 以下で演習をしている場合は、手順 6 まで操作をスキップしてください。

  1. デフォルトの設定のまま [実行] をクリックします。
  2. ツール下部に結果が表示されるので、[詳細の表示] をクリックし、表示されたダイアログの [メッセージ] タブを開きます。

「テリトリーが連続していません (2)」というメッセージが表示されています。これは、2 つのテリトリーで飛び地が発生していることを表します。

マップを見てみると、テリトリーが連続せず、飛び地になっている場所が 2 か所あることが分かりました。営業の担当者が効率的に営業業務を行うには、このような飛び地を解消して移動のロスを削減することが必要です。

検証結果は必ずしも上記と同じものになるとは限りません。そのため、問題が検出されない場合もあります。

  1. メッセージが表示されたダイアログを閉じます。

次に、各営業担当エリアの顧客数やエリア数にどれくらい差があるかを確認します。

  1. [テリトリー デザイン] タブの [チャートの作成] ボタンをクリックし、チャートを作成します。
  2. [チャート] ウィンドウ左上の [プロパティ] ボタンをクリックし、チャート プロパティを開きます。
  3. [数値フィールド] の [+ 選択] ボタンをクリックし、「エリア数」にチェックを入れて [適用] をクリックします。

各テリトリーの顧客数およびエリア数の値を比較できるチャートが表示されます。各テリトリーの顧客数およびエリア数を、自動的に概ね均等に分けることができました。

テリトリーの手動調整

構築したテリトリーは、各テリトリーのレベル変数の値をチャートで確認しながら、マップ上で対話的に微調整することができます。出力されたテリトリーを確認したところ、一部のテリトリーで飛び地になっているエリアがあったため、手動でテリトリーを調整して飛び地が発生しないようにします。

飛び地が無かった場合も、下記の手順を参考にして任意に調整してみてください。

  1. [テリトリー デザイン] タブの [割り当て] ボタンをクリックし、[テリトリーの割り当て] ウィンドウを開きます。
  2. [テリトリー デザイン] タブの [選択] ボタンをクリックし、マップ上でテリトリーの割り当てを変更したいエリア (本演習では飛び地になっている場所) をクリックして選択状態にします。
  1. [テリトリーの割り当て] ウィンドウで、割り当てたいテリトリーを選択し、[適用] をクリックします。

[テリトリーの割り当て] ウィンドウには、テリトリーの割り当ての変更作業に役立つ各種オプションがあります。選択したテリトリーにズームしたり、テリトリーのフィルタリング、割り当て変更後のレベル変数の値がどのように変わるかを確認したりできます。

テリトリーの割り当てを変更すると、マップ上のレイヤーの色分けおよびチャートが更新されます。

  1. 必要に応じて、マップおよびチャートを確認しながら手順 2, 3 を繰り返し、テリトリーの割り当てを調整します。

テリトリーの手動調整が完了しました。飛び地を無くしつつ、各テリトリーの顧客数およびエリア数を概ね均等にすることができました。

最適化したテリトリーの結果をエクスポート

最後に、最適化したテリトリーの結果を、別のフィーチャクラスとしてエクスポートします。

  1. [テリトリー デザイン] タブの [ソリューションのエクスポート] ボタンをクリックして、[テリトリー ソリューションのエクスポート (Export Territory Solution)] ツールを開きます。
  2. 以下のように設定し、[実行] をクリックしてツールを実行します。
    • 入力テリトリー ソリューション:営業担当エリアの最適化
    • 出力フィーチャクラス:最適化後の営業担当エリア
    • 出力形状タイプ:テリトリー境界

[コンテンツ] ウィンドウおよびマップ上に「最適化後の営業担当エリア」レイヤーが追加されます。

  1. [コンテンツ] ウィンドウの「最適化後の営業担当エリア」を右クリック → [シンボル] をクリックして属性テーブルを開きます。
  2. [シンボル - 最適化後の営業担当エリア] ウィンドウが開いたら、以下のように設定します。
    • プライマリ シンボル:個別地
    • フィールド 1:テリトリー: 名前

マップ上の「最適化後の営業担当エリア」レイヤーが、先ほど調整したテリトリー別に色分けされます。

テリトリーの結果をテリトリー境界としてエクスポートすると、フィーチャの形状としてはベース レイヤー (本演習における「世田谷区ポリゴン」) と同じものが出力されますが、属性情報にはベース レイヤーが元々持つ属性に加え、テリトリー レイヤーの持つ属性も付与されます。各エリアが割り当てられたテリトリーや、各テリトリーの顧客数の合計値などを確認することができます。

  1. [プロジェクト] タブ → [保存] を選択し、プロジェクトを保存します。

まとめ

この演習では、数値情報や位置情報を元に営業担当エリアのテリトリーを最適化しました。さらに、テリトリーの結果を手動で調整し、エクスポートしました。

また、以下のツールの操作方法を学びました。

  • [テリトリー ソリューションの作成] ツール
  • [レベル変数の追加] ツール
  • [バランス調整変数の設定] ツール
  • [テリトリー距離パラメーターの設定] ツール
  • [テリトリー シード ポイントの追加] ツール
  • [テリトリーの解析] ツール
  • [テリトリーの検証] ツール
  • テリトリーの割り当て
  • [テリトリー ソリューションのエクスポート] ツール