(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】最適化装置、最適化方法、プログラム
(51)【国際特許分類】
G06Q 30/0241 20230101AFI20240717BHJP
G06Q 10/04 20230101ALI20240717BHJP
【FI】
G06Q30/0241
G06Q10/04
(21)【出願番号】P 2021560790
(86)(22)【出願日】2019-11-26
(86)【国際出願番号】 JP2019046092
(87)【国際公開番号】W WO2021106060
(87)【国際公開日】2021-06-03
【審査請求日】2022-01-13
【前置審査】
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】鈴木 康央
(72)【発明者】
【氏名】ウィー ウィマー
【審査官】牧 裕子
(56)【参考文献】
【文献】特開2000-293501(JP,A)
【文献】特開2009-181195(JP,A)
【文献】特開2011-065636(JP,A)
【文献】特開2019-200695(JP,A)
【文献】特開2002-084240(JP,A)
【文献】特開2002-344933(JP,A)
【文献】江藤 力 外4名,熟練者の意思決定を摸倣する意図学習技術,NEC技報 ,日本電気株式会社,2019年10月31日,第72巻,第1号,p.95~98
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
広告放送のスケジュールデータの生成に用いる目的関数J(x)をθ
T
φ(x)、θを目的関数パラメータ、xを決定変数ベクトルR
d
、X(p)を実行可能領域、φを対象の説明変数とし、前記目的関数J(x)に相当するθ
T
φ(x)が最大となる式(1)
【数1】
の数理最適化の結果と仮定した対象の過去の最適化結果に対して
最尤法に基づく逆最適化を行うことにより
前記対象の最適化に利用される目的関数の説明変数に対する重み係数を算出し、前記重み係数を用いて
前記対象の最適化に利用される目的関数を算出する目的関数算出手段と、
前記算出された
前記対象となる前記広告放送のスケジュールの最適化に利用される目的関数の説明変数
φに対する重み係数の修正画面
であって少なくとも前記広告放送の設定可能時間それぞれに対する相対的重要度を示す重み係数の修正画面を介して、前記重み係数の変更を受け付ける受付手段と、
前記変更の後の重み係数が適用された前記
対象の最適化に利用される目的関数に基づいて前記対象の最適化を行う最適化手段と、
を備える最適化装置。
【請求項2】
前記受付手段は、前記対象であるスケジューリング対象のスケジューリングの最適化に利用される前記目的関数の説明変数に対する重み係数の変更を受け付け、
前記最適化手段は、前記変更の後の重み係数が適用された前記目的関数に基づいて前記スケジューリング対象のスケジューリングを最適化したスケジュールデータを生成する
請求項1に記載の最適化装置。
【請求項3】
前記スケジューリング対象が広告であり、
前記スケジュールデータが前記広告の放送のスケジュールである、
請求項2に記載の最適化装置。
【請求項4】
最適化装置が、
広告放送のスケジュールデータの生成に用いる目的関数J(x)をθ
T
φ(x)、θを目的関数パラメータ、xを決定変数ベクトルR
d
、X(p)を実行可能領域、φを対象の説明変数とし、前記目的関数J(x)に相当するθ
T
φ(x)が最大となる式(1)
【数2】
の数理最適化の結果と仮定した対象の過去の最適化結果に対して
最尤法に基づく逆最適化を行うことにより
前記対象となる前記広告放送のスケジュールの最適化に利用される目的関数の説明変数に対する重み係数を算出し、前記重み係数を用いて
前記対象の最適化に利用される目的関数を算出し、
前記算出された
前記対象の最適化に利用される目的関数の説明変数
φに対する重み係数の修正画面
であって少なくとも前記広告放送の設定可能時間それぞれに対する相対的重要度を示す重み係数の修正画面を介して、前記重み係数の変更を受け付け、
前記変更の後の重み係数が適用された前記
対象の最適化に利用される目的関数に基づいて前記対象の最適化を行う、
最適化方法。
【請求項5】
コンピュータを、
広告放送のスケジュールデータの生成に用いる目的関数J(x)をθ
T
φ(x)、θを目的関数パラメータ、xを決定変数ベクトルR
d
、X(p)を実行可能領域、φを対象の説明変数とし、前記目的関数J(x)に相当するθ
T
φ(x)が最大となる式(1)
【数3】
の数理最適化の結果と仮定した対象の過去の最適化結果に対して
最尤法に基づく逆最適化を行うことにより
前記対象となる前記広告放送のスケジュールの最適化に利用される目的関数の説明変数に対する重み係数を算出し、前記重み係数を用いて
前記対象の最適化に利用される目的関数を算出する目的関数算出手段、
前記算出された
前記対象の最適化に利用される目的関数の説明変数
φに対する重み係数の修正画面
であって少なくとも前記広告放送の設定可能時間それぞれに対する相対的重要度を示す重み係数の修正画面を介して、前記重み係数の変更を受け付ける受付手段、
前記変更の後の重み係数が適用された前記
対象の最適化に利用される目的関数に基づいて前記対象の最適化を行う最適化手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化装置、最適化方法、プログラムに関する。
【背景技術】
【0002】
スケジュール対象をその特徴に基づいてスケジュールすることに多くの労力が割かれている。例えば広告放送を行う日時を決定する作業は、作業者に多くの労力をかけている。
【0003】
関連する技術として、特許文献1には、ユーザの嗜好や状況に応じて、ユーザに配信する複数のコンテンツの時間的な配列を定める番組表を作成する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
スケジュール対象のスケジューリング作業において、ユーザの意図するスケジューリングを容易に行うことのできる仕組みが求められている。
【0006】
そこでこの発明は、上述の課題を解決する最適化装置、最適化方法、プログラムを提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明の一実施形態による最適化装置は、対象の最適化に利用される目的関数の説明変数に対する重み係数を、前記対象の過去の最適化結果に対して逆最適化を行うことにより算出し、前記重み係数を用いて目的関数を算出する目的関数算出手段と、前記算出された目的関数の説明変数に対する重み係数の修正画面を介して、前記重み係数の変更を受け付ける受付手段と、前記変更の後の重み係数が適用された前記目的関数に基づいて前記対象の最適化を行う最適化手段と、を備える。
【0008】
また本発明の一実施形態による最適化方法は、最適化装置が、対象の最適化に利用される目的関数の説明変数に対する重み係数を、前記対象の過去の最適化結果に対して逆最適化を行うことにより算出し、前記重み係数を用いて目的関数を算出し、前記算出された目的関数の説明変数に対する重み係数の修正画面を介して、前記重み係数の変更を受け付け、前記変更の後の重み係数が適用された前記目的関数に基づいて前記対象の最適化を行う。
【0009】
また本発明の一実施形態によるプログラムは、コンピュータを、対象の最適化に利用される目的関数の説明変数に対する重み係数を、前記対象の過去の最適化結果に対して逆最適化を行うことにより算出し、前記重み係数を用いて目的関数を算出する目的関数算出手段、前記算出された目的関数の説明変数に対する重み係数の修正画面を介して、前記重み係数の変更を受け付ける受付手段、前記変更の後の重み係数が適用された前記目的関数に基づいて前記対象の最適化を行う最適化手段、として機能させる。
【発明の効果】
【0010】
本発明によれば、対象の最適化に利用される目的関数の説明変数に対する重み係数の変更をユーザから受け付けて、その変更の後の重み係数が適用された目的関数に基づいて対象の最適化を行う。これにより、対象の最適化の作業の際に、ユーザの意図する説明変数に対する重み係数に応じて算出された目的関数により最適化を行うことができる。
【図面の簡単な説明】
【0011】
【
図1】スケジューリングシステムの概要を示す図である。
【
図2】スケジューリング装置のハードウェア構成を示す図である。
【
図3】スケジューリング装置の機能ブロック図である。
【
図4】本実施形態によるスケジューリング装置の処理フローを示す第一の図である。
【
図5】本実施形態によるスケジュール修正画面を示す図である。
【
図6】本実施形態によるスケジューリング装置の処理フローを示す第二の図である。
【
図7】スケジューリング装置の最小構成を示す図である。
【
図8】最小構成のスケジューリング装置の処理フローを示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態によるスケジューリング装置を図面を参照して説明する。
図1は同実施形態によるスケジューリング装置を備えたスケジューリングシステムの概要を示す図である。
図1で示すスケジューリングシステム100は最適化システムの一例である。スケジューリングシステム100は、最適化装置の一例であるスケジューリング装置1と、端末2とが通信接続されて構成される。端末2は作業者からの入力情報をスケジューリング装置1へ出力する。スケジューリング装置1は、作業者の指示を示す入力情報に基づいて、スケジューリングの作業に熟練した作業者に類似するスケジューリング対象のスケジュールデータを自動生成する。本実施形態においては、スケジューリング装置1は、最適化対象の一例であるスケジューリング対象の広告放送の放送時間を定めたスケジュールデータを自動生成する。
【0013】
図2はスケジューリング装置1のハードウェア構成を示す図である。
この図が示すようにスケジューリング装置1は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、データベース104、通信モジュール105等の各ハードウェアを備えたコンピュータである。端末2も同様のハードウェアを備えたコンピュータである。
【0014】
図3はスケジューリング装置の機能ブロック図である。
スケジューリング装置1のCPU101は電源が投入されると起動し、予め記憶するスケジューリングプログラムを実行する。これによりスケジューリング装置1は、制御部11、目的関数算出部12、受付部14、スケジューリング部15、の各機能を発揮する。
【0015】
制御部11は、スケジューリング装置1の他の機能を制御する。
目的関数算出部12は、最適化を過去に行った熟練者の最適化結果と、説明変数に関する制約パラメータと、説明変数に対する変更の後の重み係数と、逆最適化の手法を用いて、最適化対象の最適化に利用する目的関数J(x)を算出する。本実施形態にいおては目的関数算出部12は、スケジュール対象となるスケジュールデータの生成に利用する目的関数J(x)と制約条件とを算出する。
受付部14は、目的関数の説明変数に対する重み係数などの情報の変更を受け付ける。
スケジューリング部15は、変更の後の重み係数が適用された目的関数J(x)に基づいて対象の最適化を行い、スケジュール対象となるスケジュールデータを生成する。
【0016】
本実施形態においては、スケジュール対象が広告放送であり、スケジュールデータが番組の放送と広告放送のスケジュールを示す。このような場合、目的関数算出部12は、広告放送ごとに、目的関数J(x)を算出してよい。また目的関数算出部12は、広告放送の特徴に基づいて決定されたグループ毎に、目的関数J(x)と制約条件とを算出してよい。またスケジューリング部15は、新た広告放送の特徴に基づいて、グループを特定し、当該グループについて算出された目的関数J(x)と制約条件とを用いて、スケジュール未決定の広告放送のスケジュールデータを生成する。
【0017】
<第一の実施形態>
図4は第一の実施形態によるスケジューリング装置の処理フローを示す第一の図である。
次に、第一の実施形態によるスケジューリング装置1の処理フローについて説明する。
スケジューリング装置1のデータベース104は、過去に熟練作業者等の作業者によって生成されたスケジュールデータを記憶する。目的関数算出部12は、処理開始の指示情報を取得する。当該処理開始の指示情報は、端末2を用いて作業者が入力し、通信ネットワークを介してスケジューリング装置1の受付部14が受信してもよい。または作業者はスケジューリング装置1に備わる入力装置を用いて処理開始の指示情報を直接、スケジューリング装置1に入力してもよい。
【0018】
目的関数算出部12は、指示情報の取得に基づいて、熟練作業者等の作業者によって過去に生成された期間スケジュールデータXe={x1,x2,x3,…xM}をデータベース104から取得する(ステップS100)。期間スケジュールデータXeには、少なくとも広告放送ごとの広告スケジュールx(x1,x2,x3,…xM)が含まれる。目的関数算出部12は、熟練作業者によって過去に生成された期間スケジュールデータXeに含まれる広告放送ごとの広告スケジュールxを、1つずつ順に取得してもよい。熟練作業者等の作業者によって過去に生成された期間スケジュールデータXe={x1,x2,x3,…xM}は、所定の放送契約期間において割り当てられた各広告放送のスケジュールを含む。広告スケジュールxには、広告放送の個別のスケジュールの情報や広告放送の特徴情報が含まれる。期間スケジュールデータXeには、広告スケジュールxの情報の他、番組の日時や特徴を含む番組情報が含まれてもよい。
【0019】
ここで、熟練作業者等の作業者によって過去に生成された期間スケジュールデータXeは、以下の数理最適化を説いた結果であると仮定する。
【0020】
【0021】
式(1)においてθは熟練作業者等の作業者に応じた固有の目的関数パラメータであり、熟練作業者等の作業者のスケジューリング手法を決定づける特有のパラメータである。また目的関数J(x)=θTφ(x)において、目的関数パラメータθは、目的関数J(x)の各説明変数に対応する重み係数を意味する。一例として、目的関数パラメータθは、スケジュール対象である広告放送に関して予め規定された設定可能時間それぞれに対する相対的重要度を少なくとも含む。式(1)において目的関数パラメータθの値のみ未知であるとする。
【0022】
また式(1)において、xは、決定変数ベクトルRdを示す。また式(1)においてX(p)は実行可能領域を示し、X(p)は、制約条件となる一つ以上の制約パラメータpを含むベクトルを示す。φは広告スケジュールxの説明変数である特徴情報と制約条件とを表す。特徴情報には、一例としては、広告放送の放送時間(放送する曜日、放送開始時刻、放送終了時刻)などの情報が服有れる。特徴情報には、さらに、広告放送がターゲットとする年齢層、性別、広告の内容種別、広告放送の放送時間に前後して放送される番組の種別、などの情報が含まれてよい。制約条件には、一例としては、必ず放送する時間帯、当該広告放送を行う前または後に放送される番組の種別、単位期間における放送回数、などの情報が含まれる。単位期間とは1週間や1カ月などの期間である。制約パラメータpは、これら制約条件のそれぞれに関するパラメータである。式(1)は、目的関数J(x)に相当するθTφ(x)の値が最大になる広告放送のスケジュールxを熟練作業者等の作業者が作成していることを意味する。
【0023】
目的関数算出部12は、熟練作業者等の作業者によって過去に生成された期間スケジュールデータXe={x1,x2,x3,…xM}を用いて逆最適化により熟練作業者等の作業者の目的関数パラメータθを推定する。より具体的には、目的関数算出部12は、最尤法に基づいて逆最適化を行う。
【0024】
【0025】
熟練作業者等の作業者によって過去に生成された期間スケジュールデータXeが与えられている状況において、尤度p(Xe|θ)を最大にするような目的関数パラメータθ*を熟練作業者等の作業者のパラメータとする。より具体的にはこの目的関数パラメータθ*は、スケジュールを行う単位期間において設定された設定可能時間に対する相対的重要度などの説明変数(特徴情報や制約条件など)それぞれに対する重み係数含む。なお、設定可能時間は例えば、テレビ番組ごとに割り当てられた放送開始時刻から放送終了時刻までの時間を示し、単位期間の各日の0時~24時において予め設定されている。尤度p(Xe|θ)は、例えば以下の式(3)を用いる。
【0026】
【0027】
熟練作業者等の作業者によって過去に生成された期間スケジュールデータXe={x1,x2,x3,…xM}が独立同分布から生成されていると仮定して対数を取ると、式(2)は以下の式(4)となる。
【0028】
【0029】
目的関数算出部12は、目的関数パラメータθ*をアップデートした新たな目的関数パラメータθnewを、最急上昇法を用いて算出する(ステップS101)。目的関数算出部12は、スケジューリング対象である広告放送のIDと、説明変数を示すIDと、説明変数について算出した新たな目的関数パラメータθnewとを対応付けてデータベース104等の記憶部に記録する(ステップS102)。
【0030】
【0031】
目的関数算出部12はαについてステップサイズで任意の値に決めることができる。また目的関数算出部12は、尤度pを表す式として式(3)を採用している場合、新たな目的関数パラメータθnewのアップデートは以下の式(6)のように行う。
【0032】
【0033】
上記式(6)においてφ(xi)は、熟練作業者等の作業者によって過去に生成された期間スケジュールデータXeのうち処理対象の広告放送の広告スケジュールxから抽出した特徴量である。またφ(xi)は、過去の目的関数パラメータθoldの下で生成された広告スケジュールxの特徴量(重み係数)である。目的関数算出部12は、熟練作業者によって過去に生成された期間スケジュールデータXeに含まれる広告放送ごとの広告スケジュールxを順に別々に取得してもよく、この場合、その取得の度に、熟練作業者等の作業者の固有の目的関数パラメータθnewの更新を上記の処理により順次行う。そして目的関数算出部12は、熟練作業者等の作業者によって過去に生成された期間スケジュールデータXeに含まれる広告放送全体についての、目的関数パラメータθnewを含む目的関数J(x)=θTφ(x)を算出する(ステップS103)。
【0034】
このような状態において、新たな作業者が、端末2を用いて新しい広告放送のスケジューリングを行う。このとき端末2は、作業者の操作により、スケジューリング装置1と通信接続する。また端末2は、作業者の操作により、スケジューリング装置1へ広告放送に関するCMデータを含むスケジューリング要求を出力する。CMデータには広告放送に関する特徴情報や制約条件が含まれる。上述したように、特徴情報には、広告放送がターゲットとする年齢層、性別、放送する曜日、広告の内容種別、広告放送の放送時間に前後して放送される番組の種別、などの情報が含まれる。制約条件は、必ず放送する時間帯、当該広告放送を行う前または後に放送される番組の種別などであってよい。制約条件は、予めスケジューリング装置1が記憶して、この制約条件が用いられてもよい。
【0035】
スケジューリング装置1の受付部14は、端末2からスケジューリング要求を受信する(ステップS104)。スケジューリング要求にはCMデータやCMデータに関する属性(IDやCMに関する属性、特徴情報や制約条件など)が含まれる。スケジューリング装置1のスケジューリング部15は、受信したスケジューリング要求に含まれるCMデータを取得する。スケジューリング部15は、CMデータから、当該広告放送の特徴情報や制約条件を取得する。スケジューリング部15は、目的関数算出部12の算出した目的関数J(x)を取得する。スケジューリング部15は、目的関数J(x)に、特徴情報と制約条件と、当該広告放送をスケジュールする期間やその期間に既に設定されている広告放送や広告放送の日時を含むスケジュールの全体データ(schedule)を入力する(式(7))。
【0036】
【0037】
スケジューリング部15は、その結果、スケジューリング要求に含まれるCMデータに対応する広告放送の最適なスケジュールを算出する(ステップS105)。当該スケジュールは広告放送の日時の情報が少なくとも含まれる。
【0038】
受付部14は、スケジュールが算出できない場合には、その広告放送のCMデータに含まれる制約条件や特徴情報の修正を受け付けてもよい。または受付部14は、目的関数パラメータθの修正を受け付けてもよい。例えば受付部14は、算出したスケジュールのデータを端末2へ送信する(ステップS106)。
【0039】
端末2を利用する作業者は、広告放送について算出されたスケジュールのデータを確認し、その日時が、既に他の広告放送によって埋まっている時間であるかを判定する。そして作業者は、CMデータに含まれる特徴情報や制約条件などのパラメータ(制約パラメータp)を更新し、スケジューリング要求の再要求を行う。すると、端末2は制約パラメータpを更新したスケジューリング要求をスケジューリング装置1へ送信する。
【0040】
スケジューリング装置1はスケジューリング要求を受信する。スケジューリング装置1の受付部14は、スケジューリング要求をスケジューリング部15に出力する。スケジューリング部15は制約パラメータpの更新が行われたかを判定する(ステップS107)。例えば、スケジューリング部15は、スケジューリング要求に制約パラメータpが含まれていれば、ユーザにより制約パラメータpの更新が行われたと判定する。制約パラメータpの更新が行われた場合、スケジューリング装置1は上述のステップS103の目的関数の算出の処理を繰り返す。
【0041】
スケジューリング部15は、広告放送について算出したスケジュールのデータが、既に他の広告放送によって埋まっている時間であるかを自動判定してもよい。この場合、スケジューリング部15は、CMデータに含まれる特徴情報や制約条件などの制約パラメータpを、規定の更新処理により更新し、スケジュールの算出処理を繰り返す。そしてスケジューリング部15は、スケジューリング要求で特定される広告放送のスケジュールの算出ができたかを判定する(ステップS108)。スケジューリング部15は、所定回数の制約パラメータpの更新が行われても広告放送のスケジュールが算出できない場合、全体のスケジュールデータにおける空き時間のうち広告放送を適用できる時間がない場合、作業者の操作に基づいて端末2から終了要求を受信した場合、などはスケジュールの算出ができないと判定し、終了する。
【0042】
スケジューリング部15は、スケジューリング要求で特定される広告放送のスケジュールの算出ができたと判定した場合、スケジュール修正を行うかを判定する。例えばスケジューリング部15は、端末2へスケジュール修正要否の問い合わせ情報を送信するよう受付部14に指示する。受付部14は、端末2へスケジュール修正要否の問い合わせ情報を送信する(ステップS109)。当該問い合わせ情報には、算出されたスケジュールのデータや、スケジュール修正画面(
図5)の情報が含まれてよい。
【0043】
端末2はスケジュールのデータをモニタ等に出力する。作業者は、スケジュールのデータ内容を確認し、修正を行うか否かを判定する。作業者はスケジュールを修正する場合には、その修正情報を端末2に入力する。当該修正を行う作業者は熟練作業者等の作業者であるとする。修正情報は、スケジュール未決定のスケジュールを示す日時などである。そして作業者の操作に基づいて端末2は修正後のスケジュールデータ等を含むスケジュール修正要求をスケジューリング装置1へ送信する。
【0044】
受付部14は、スケジュール修正要求を取得する(ステップS110)。受付部14は、スケジュール修正要求に含まれる修正後のスケジュールデータをスケジューリング部15へ出力する。スケジューリング部15は、修正後のスケジュールデータを受信した場合には、スケジュールを修正すると判定する(ステップS111)。するとスケジューリング部15は、目的関数J(x)の更新を開始する。スケジューリング部15は、ステップS103の処理と同様に、修正後のスケジュールのデータを用いて、パラメータθnewを含む目的関数J(x)を算出し、目的関数を更新する(ステップS112)。
【0045】
そして、スケジューリング部15は、更新した目的関数J(x)に基づいて、スケジューリング対象であるCMデータに対応する広告放送の最適なスケジュールを算出し、そのスケジュールのデータを含む、複数の広告放送や番組のスケジュールを示す全体の期間スケジュールデータを更新する(ステップS113)。
【0046】
以上の処理により、スケジューリング装置1は、スケジュール対象に関する決定済みのスケジュールデータとスケジュール対象の特徴とに基づいて、スケジュール対象のスケジュールデータの生成に利用する目的関数J(x)を算出する。この時、スケジューリング装置1は、過去に生成された決定済みのスケジュールデータに基づいて、逆最適化の手法を用いて、決定済みのスケジュールデータを生成した作業者(熟練作業者等)のスケジューリング手法特有のパラメータを含む目的関数J(x)を算出する。そして、スケジューリング装置1は、スケジュール未決定のスケジュール対象の特徴と、目的関数J(x)とを用いて、スケジュール未決定のスケジュール対象のスケジュールデータを生成する。
このような処理により、スケジューリング装置1は、決定済みのスケジュールデータを生成した作業者(熟練作業者等)に類似するスケジュールデータを自動生成するスケジューリング装置を提供することができる。
【0047】
図5はスケジュール修正画面を示す図である。
図6は第一の実施形態によるスケジューリング装置の処理フローを示す第二の図である。
上述の処理におけるステップS109でスケジュール修正要否の問い合わせ情報を送信する際に、スケジューリング装置1は、スケジュール修正画面50のデータをスケジュール修正要否の含む問い合わせ情報を端末2へ送信する。
【0048】
スケジュール修正画面50は、
図5で示すように、広告放送についての制約パラメータの一つである設定可能時間を複数表示する第一表示領域51を設ける。またスケジュール修正画面50は、広告放送の設定可能時間それぞれに対する相対的重要度(目的関数パラメータθ
new)を表示する第二表示領域52を設ける。相対的重要度は他の設定可能時間についての相対的な重要度であり、値が低いほど重要度がそれより値の大きい重要度お他の設定時間よりも広告の設定枠として重要であることを示す。またスケジュール修正画面50は、相対的重要度を変更するためのインジケータを表示する第三表示領域53を設ける。またスケジュール修正画面50は、ユーザが修正開始をスケジューリング装置1に指示するためのボタン画像54が設けられる。
【0049】
上述のステップS109でスケジュール修正要否の問い合わせ情報を送信する前後の処理として、受付部14は、スケジューリング対象の広告放送のIDに紐づいてデータベース104で記憶する各設定可能時間と、その設定可能時間について算出した相対的重要度(目的関数パラメータθnew)とを読み取る(ステップS201)。受付部14は、それら読み取った各設定可能時間と、その設定可能時間について算出した相対的重要度と、相対的重要度を変更するインジケータとを表示するスケジュール修正画面50を生成する(ステップS202)。受付部14は、スケジュール修正画面50を含む、スケジュール修正要否の問い合わせ情報を、端末2へ送信する(ステップS109)。
【0050】
端末2は、スケジュール修正要否の問い合わせ情報を受信する。端末2はその情報に含まれるスケジュール修正画面50と、スケジュールデータとをディスプレイに表示する。
スケジュールデータは、上述したように、一例としては、単位期間において各設定可能時間が指定された番組表と、その番組表において、広告の放送が設定された時間とを示すものである。ユーザである作業者は、スケジュールデータを確認し、広告放送のスケジューリングに適用する何れかの設定可能時間に対する相対的重要度の値を変更したい場合には、テンキーやマウスなどの入力装置を用いて、スケジュール修正画面50の第三表示領域53におけるインジケータの位置を、カーソル55をドラッグ操作により移動させることにより変更する。
【0051】
本実施形態においては、ユーザが左側にインジケータを移動させると、操作対象となる設定可能時間についての相対的重要度の値が下がる(Down)。またユーザが、右側にインジケータを移動させると、操作対象となる設定可能時間についての相対的重要度の値が上がる(Up)。
図5においては相対的重要度の値がマイナスで、かつその絶対値が高い値となる設定可能時間は、スケジューリング対象となる広告放送のスケジューリングの最適化における設定時間としての重要度が、他の設定可能時間に対するスケジューリング設定時間としての重要度よりも低いことを示している。
【0052】
インジケータの位置を左右の中央に設定した場合、相対的重要度の値が「0」となるが、相対的重要度の値が「0」となる設定可能時間は、スケジューリング対象となる広告放送のスケジューリング設定時間としての重要度が中央値であることを意味している。ユーザはインジケータの位置を右側に移動させることにより、相対的重要度の値をプラスにすることもできる。
【0053】
このように設定することで、スケジューリング装置1は、スケジューリングの最適化において、相対的重要度が高く設定された設定可能時間に、スケジューリング対象の広告を割り当てる確率を高く設定し、また相対的重要度が高く設定された設定可能時間に、スケジューリング対象の広告を割り当てる確率を低く設定する目的関数J(x)を算出する。
【0054】
ユーザは、マウス等を操作して、修正開始のボタン画像54を押下操作する。すると端末2は、ユーザがスケジューリング修正画面50においてインジケータの位置が変わることにより変更対象と指定された設定可能時間を示すIDと、その設定可能時間についてユーザが変更した相対的重要度の値と、広告放送のIDとを少なくとも含むスケジュール修正要求を送信する。
【0055】
スケジューリング装置1の受付部14は、スケジュール修正要求を取得する(ステップS110)。受付部14は、スケジュール修正要求に含まれる広告放送のID、設定可能時間を示すID、変更後の相対的重要度の値を、スケジューリング部15へ出力する。スケジューリング部15は、設定可能時間を示すIDと、その設定可能時間についてユーザが変更した相対的重要度(パラメータθnew)の値、を用いて、ステップS103の処理と同様に、目的関数J(x)を算出する(ステップS203)。スケジューリング部15は、ユーザのID、広告放送のID、目的関数J(x)、設定可能時間を示すIDとその設定可能時間における修正後の相対的重要度の値を紐づけてデータベース104等の記憶部に記憶する。これによりスケジューリング装置1が目的関数J(x)を更新する(ステップS112)。
【0056】
そして、スケジューリング部15は、更新した目的関数J(x)に基づいて、スケジューリング対象であるCMデータに対応する広告放送の最適なスケジュールを算出し、そのスケジュールのデータを含む、複数の広告放送や番組のスケジュールを示す全体の期間スケジュールデータを更新する(ステップS113)。
【0057】
上述の処理によれば、ユーザは、スケジューリング装置1が自動的に出力したスケジュール修正画面を用いて、スケジューリング対象となる広告放送の設定可能時間の他の設定可能時間に対する相対的重要度を変更するだけで、より適切な設定可能時間への広告放送の放送時間の割り当てを行うことができる。
また上述の処理によれば、スケジューリング装置1が、目的関数J(x)の目的パラメータが相対的重要度であることを明示したスケジューリング修正画面を端末2に出力するので、ユーザは容易に、その相対的重要度を変更して、より適切な設定可能時間への広告放送の放送時間の割り当てを試みることができる。
また上述の処理によれば、ユーザは、スケジューリング装置1が行ったスケジューリング結果を直ちに確認して、広告放送が適切な設定可能時間に割り当て有れているかを確認することができる。
【0058】
なお、上述のスケジューリング装置1は、広告放送の設定可能時間へのスケジューリングを行う場合の例を示している。しかしながら、上述の処理と同様の処理により、スケジューリング装置1は、ユーザの仕事のための訪問先を、訪問可能時間へスケジューリングする場合に応用してよい。この場合、訪問先の特徴が、訪問先住所、訪問先までの距離、、制約条件が訪問先における作業の難易度や作業にかかる所要時間、などであってよい。また目的関数パラメータは、作業を訪問可能時間に割り当てる際の相対的重要度であってよい。またスケジューリング装置1は、スケジュール対象ごとに、上述の処理により、目的関数の算出や、スケジュールデータの生成を行うものであってよい。
【0059】
図7は、スケジューリング装置の最小構成を示す図である。
図8は、最小構成のスケジューリング装置の処理フローを示す図である。
図7で示すように、スケジューリング装置は、少なくとも、受付部71、最適化部72の機能を発揮する。
受付部71は、対象の最適化に利用される目的関数の説明変数に対する重み係数の変更を受け付ける(ステップS401)。
最適化部72は、変更の後の重み係数が適用された目的関数J(x)に基づいて対象の最適化を行う(ステップS402)。
【0060】
上述の実施形態においては、最適化対象が広告放送であり、広告放送のスケジューリングの最適化を行う場合を示しているが、スケジューリング装置1は他の最適化対象の最適化を行う装置であってもよい。
【0061】
例えば、最適化対象が車のハンドルであり、最適化が車のハンドルの所定位置からの角度の制御であってよい。この場合、目的関数は、将来の数分後までの各時刻におけるハンドルの角度をスケジューリングするものであってよい。そして、この場合、受付部71は、最適化対象であるハンドルの時刻に応じた角度のスケジューリングの最適化に利用される目的関数における説明変数に関して、その重み係数の変更を受け付ける。最適化部72は、熟練運転者の各時刻に応じたハンドル角度などの運転履歴情報(最適化結果)と、説明変数に関する制約パラメータと、説明変数に対する変更の後の重み係数と、逆最適化の手法と、を用いて算出された目的関数J(x)を取得する。最適化部72は、その目的関数J(x)に基づいてハンドルの将来の数分後までの各時刻における角度を示すスケジュールデータを生成する。
【0062】
また最適化対象が車のアクセルであり、最適化処理が車のアクセルの踏込み度合の制御であってよい。この場合、目的関数は、将来の数分後までの各時刻におけるアクセルの踏込み度合をスケジューリングするものであってよい。そして、この場合、受付部71は、最適化対象であるアクセルの踏込み度合(踏込み量)のスケジューリングの最適化に利用される目的関数の説明変数に対する重み係数の変更を受け付ける。最適化部72は、熟練運転者の各時刻に応じたアクセルの将来の数分後までの各時刻における踏込み度合のスケジューリングに利用する目的関数における説明変数に関して、その重み係数の変更を受け付ける。最適化部72は、熟練運転者の各時刻に応じたアクセルの踏込み度合などの運転履歴情報(最適化結果)と、説明変数に関する制約パラメータと、説明変数に対する変更の後の重み係数と、逆最適化の手法と、を用いて算出された目的関数J(x)を取得する。最適化部72は、その目的関数J(x)に基づいて、アクセルの将来の数分後までの各時刻における踏込み度合を示すスケジュールデータを生成する。
【0063】
また最適化対象が商品であり、最適化処理が商品の発注量の算出であってよい。この場合、目的関数は、将来の各日における商品の発注量をスケジューリングするものであってよい。そして、この場合、受付部71は、最適化対象である商品の発注量の最適化に利用される目的関数の説明変数に対する重み係数の変更を受け付ける。最適化部72は、熟練担当者の発注結果が示す過去の同様の各日の発注量(最適化結果)と、説明変数に関する制約パラメータと、説明変数に対する変更の後の重み係数と、逆最適化の手法と、を用いて算出された目的関数J(x)を取得する。最適化部72は、その目的関数J(x)に基づいて、将来の各日における商品の発注量を示すスケジュールデータを生成する。
【0064】
上述のスケジューリング装置1は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0065】
上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0066】
1・・・スケジューリング装置(最適化装置)
2・・・端末
11・・・制御部
12・・・目的関数算出部(目的関数算出手段)
14・・・受付部(受付手段)
15・・・スケジューリング部(最適化手段)
100・・・スケジューリングシステム