(57)【要約】【課題】負担となる設定をさせることなく最適な加工経路を生成するシミュレーション装置を提供すること。【解決手段】本発明のシミュレーション装置１は、ワークの加工をシミュレーションするシミュレーション部３４、及び、変更された加工経路を示す変更後加工経路データ、及びワークの加工条件を示す加工条件データを状態変数として観測する状態観測部１０６と、変更された加工経路を用いたシミュレーション部３４によるシミュレーションで求めたサイクルタイムの適否を判定するサイクルタイム判定データを判定データとして取得する判定データ取得部１０８と、状態変数と判定データとを用いて、ワークの加工条件と加工経路の変更とを関連付けて学習する学習部１１０と、を備えた機械学習装置１００を備える。本発明における加工経路の変更は、指令単位の方向及び長さ又は座標値を変更するものである。【選択図】図２
2019200661.tif 000002
【特許請求の範囲】
【請求項１】
工作機械で行われるワークの加工における加工経路を変更するシミュレーション装置であって、
前記工作機械における前記ワークの加工をシミュレーションするシミュレーション部と、
前記加工経路の変更を学習する機械学習装置と、を備え、
前記機械学習装置は、
変更された加工経路を示す変更後加工経路データ、及びワークの加工条件を示す加工条件データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記変更された加工経路に基づいて前記シミュレーション部で実行されたシミュレーションの結果の内でワークの加工に掛かるサイクルタイムの適否を判定するサイクルタイム判定データを、加工経路の変更の適否判定結果を示す判定データとして取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、ワークの加工条件と、加工経路の変更とを関連付けて学習する学習部と、
を備え、
前記加工経路の変更は、前記加工経路を構成する指令単位の方向及び長さ又は座標値を変更する、
シミュレーション装置。
【請求項２】
前記判定データ取得部は、更にシミュレーションのワークの結果の内で加工において前記工作機械に発生した衝撃を判定する衝撃判定データを、加工経路の変更の適否判定結果を示す判定データとして取得する、
請求項１に記載のシミュレーション装置。
【請求項３】
前記学習部は、
前記適否判定結果に関連する報酬を求める報酬計算部と、
前記報酬を用いて、ワークの加工条件に対する加工経路の変更行動の価値を表す関数を更新する価値関数更新部と、
を備え、
前記報酬計算部は、前記サイクルタイムが短いほど高い報酬を与える、
請求項１又は２に記載のシミュレーション装置。
【請求項４】
前記学習部は、前記状態変数と前記判定データとを多層構造で演算する、
請求項１〜３のいずれか１つに記載のシミュレーション装置。
【請求項５】
工作機械で行われるワークの加工における加工経路を変更するシミュレーション装置であって、
前記工作機械における前記ワークの加工をシミュレーションするシミュレーション部と、
前記加工経路の変更を学習した機械学習装置と、を備え、
前記機械学習装置は、
変更された加工経路を示す変更後加工経路データ、及びワークの加工条件を示す加工条件データを、環境の現在状態を表す状態変数として観測する状態観測部と、
ワークの加工条件と、加工経路の変更とを関連付けて学習した学習部と、
前記状態観測部が観測した状態変数と、前記学習部による学習結果に基づいて、加工経路の変更を決定する意思決定部と、
を備え、
前記加工経路の変更は、前記加工経路を構成する指令単位の方向及び長さ又は座標値を変更する、
シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置に関する。
【背景技術】
【０００２】
従来、加工プログラムを作成し、該加工プログラムに基づいて工作機械を制御してワークを加工することが行われている。ワークの加工においては、目標となる工具の移動経路から見て許容される許容誤差があり、一般的に、指令経路から許容誤差の範囲内でサイクルタイム短縮のために加工経路を可能な限り短縮することが望ましい。従来は工作機械の操作者が加工経路の作成と調整を行っていた。
【０００３】
このようなワークの加工に関連する従来技術として、特許文献１には、機械学習を最適な各軸の移動量の決定に取り入れることでより短時間で加工精度を維持したワークの加工を実現する手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−０３３１３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、サイクルタイムを短縮するための、加工経路の作成と調整は工作機械の操作者の負担になる。また、許容誤差範囲内での最適な加工経路の作成は難しく、操作者の経験や能力に依存し、作成された加工経路においてサイクルタイム短縮の余地があることは多い。特許文献１に開示される技術においては、許容誤差の設定は工作機械の操作者の負担になり、最適な許容誤差の設定は難しい。
【０００６】
そこで本発明の目的は、負担となる設定をさせることなく最適な加工経路を生成するシミュレーション装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一態様は、工作機械で行われるワークの加工における加工経路を変更するシミュレーション装置であって、前記工作機械における前記ワークの加工をシミュレーションするシミュレーション部と、前記加工経路の変更を学習する機械学習装置と、を備え、前記機械学習装置は、変更された加工経路を示す変更後加工経路データ、及びワークの加工条件を示す加工条件データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記変更された加工経路に基づいて前記シミュレーション部で実行されたシミュレーションの結果の内でワークの加工に掛かるサイクルタイムの適否を判定するサイクルタイム判定データを、加工経路の変更の適否判定結果を示す判定データとして取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、ワークの加工条件と、加工経路の変更とを関連付けて学習する学習部と、を備え、前記加工経路の変更は、前記加工経路を構成する指令単位の方向及び長さ又は座標値を変更する、シミュレーション装置である。
【０００８】
本発明の他の態様は、工作機械で行われるワークの加工における加工経路を変更するシミュレーション装置であって、前記工作機械における前記ワークの加工をシミュレーションするシミュレーション部と、前記加工経路の変更を学習した機械学習装置と、を備え、前記機械学習装置は、変更された加工経路を示す変更後加工経路データ、及びワークの加工条件を示す加工条件データを、環境の現在状態を表す状態変数として観測する状態観測部と、ワークの加工条件と、加工経路の変更とを関連付けて学習した学習部と、前記状態観測部が観測した状態変数と、前記学習部による学習結果に基づいて、加工経路の変更を決定する意思決定部と、を備え、前記加工経路の変更は、前記加工経路を構成する指令単位の方向及び長さ又は座標値を変更する、シミュレーション装置である。
【発明の効果】
【０００９】
本発明により、ＣＡＭデータを用いて最適な非切削経路の学習と生成を行うことで、サイクルタイムの短縮が可能となる。本発明では、従来技術の学習で必要であった許容誤差を設定する必要がなく、操作者の負担が軽減される、また、最適な非切削経路を加工前に生成することで、学習用の実加工の必要がなくなり、学習のためのコストと時間も低減される。更に、学習した結果に基づいて最適化された加工プログラムが容易に取得されるので、機械学習装置のない数値制御工作機械においても学習結果を利用できる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態によるシミュレーション装置の概略的なハードウェア構成図である。
【図２】一実施形態によるシミュレーション装置の概略的な機能ブロック図である。
【図３】本発明における加工経路の変更について説明する図である。
【図４】シミュレーション装置の一形態を示す概略的な機能ブロック図である。
【図５】機械学習方法の一形態を示す概略的なフローチャートである。
【図６Ａ】ニューロンを説明する図である。
【図６Ｂ】ニューラルネットワークを説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面と共に説明する。
図１は第１の実施形態によるシミュレーション装置の要部を示す概略的なハードウェア構成図である。シミュレーション装置１は、例えば工作機械を制御する制御装置に併設されたパソコンや、制御装置に有線／無線のネットワークを介して接続されたセルコンピュータ、ホストコンピュータ、エッジサーバ、クラウドサーバ等のコンピュータとして実装することができる。また、シミュレーション装置１は、工作機械を制御する制御装置として実装することができる。また、シミュレーション装置１は、例えば工作機械を制御する制御装置に併設されたパソコンや、本実施形態では、シミュレーション装置１を、工作機械２を制御する制御装置にネットワークを介して接続されたコンピュータとして実装した場合の例を示す。
【００１２】
本実施形態によるシミュレーション装置１が備えるＣＰＵ１１は、シミュレーション装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従ってシミュレーション装置１の全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ、図示しない入力部を介してオペレータが入力した各種データ等が一時的に格納される。
【００１３】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、シミュレーション装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、入力装置７１から入力されたプログラムや図示しない外部記憶装置から読み込まれたプログラム、ネットワークを介して工作機械２やＣＡＤ／ＣＡＭ等から取得された各種データ（例えば、工具の種類、ワークの加工経路、加工速度、加工形状、治具形状等のＣＡＭデータ等）が記憶されている。不揮発性メモリ１４に記憶されたプログラムや各種データは、実行時／利用時にはＲＡＭ１３に展開されても良い。また、ＲＯＭ１２には、公知の解析プログラムなどの各種のシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）があらかじめ書き込まれている。
【００１４】
表示装置７０には、メモリ上に読み込まれた各データ、プログラム等が実行された結果として得られたデータ、後述する機械学習装置１００から出力されたデータ等がインタフェース１７を介して出力されて表示される。また、キーボードやポインティングデバイス等から構成される入力装置７１は、オペレータによる操作に基づく指令，データ等を受けてＣＰＵ１１に渡す。
【００１５】
インタフェース２１は、シミュレーション装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、機械学習装置１００全体を統御するプロセッサ１０１と、システム・プログラム等を記憶したＲＯＭ１０２、機械学習に係る各処理における一時的な記憶を行うためのＲＡＭ１０３、及び学習モデル等の記憶に用いられる不揮発性メモリ１０４を備える。機械学習装置１００は、インタフェース２１を介してシミュレーション装置１で取得可能な各情報（例えば、工具の種類、ワークの加工経路、加工速度、加工形状、治具形状等のＣＡＭデータ等）を観測することができる。また、シミュレーション装置１は、機械学習装置１００から出力される、加工経路の変更指令を受けて、変更した加工経路に基づくシミュレーション処理を実行する。
【００１６】
図２は、一実施形態によるシミュレーション装置１と機械学習装置１００の概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示したシミュレーション装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、シミュレーション装置１及び機械学習装置１００の各部の動作を制御することにより実現される。
【００１７】
本実施形態のシミュレーション装置１は、工作機械２や図示しないＣＡＤ／ＣＡＭから取得したＣＡＭデータ、及び機械学習装置１００から出力された加工経路の変更指令に基づいて工作機械２によるワークの加工をシミュレーションするシミュレーション部３４を備える。シミュレーション部３４は、例えばＣＡＭデータに含まれる工具の種類、ワークの加工経路、加工速度、加工形状、治具形状等のデータを用いて工作機械２による加工動作をシミュレーションし、その結果として、加工時に工具に掛かる負荷や加工におけるサイクルタイム等、一般的なシミュレーション処理の結果としてのデータを出力する。なお、シミュレーション部３４が実行するシミュレーション処理については、公知のシミュレーションの手法を適宜採用して良い。
【００１８】
また、シミュレーション部３４は、機械学習装置１００から加工経路の変更指令が出力されている場合、ＣＡＭデータに含まれる加工経路のデータを機械学習装置１００から出力された加工経路の変更指令に従って変更し、変更した加工経路のデータを用いたシミュレーションを実行する。シミュレーション部３４は、機械学習装置１００の学習動作時に、該機械学習装置１００の出力に従って変更された加工経路のデータを用いた工作機械２によるワークの加工のシミュレーションが行われた後に、該ワークのシミュレーションの結果を表示装置へと表示すると共に、機械学習装置１００から観察可能な状態とする。その後、オペレータがしミューレーションの結果に満足すると、変更された加工指令のデータを含むＣＡＭデータは、例えばネットワークを介して工作機械２に送信され、該工作機械２による実際に加工に用いられる。また、オペレータがシミュレーションの結果に満足しない場合には、機械学習装置１００において、シミュレーションの結果に対する評価と、該評価に基づく機械学習が行われ、その機械学習の結果に基づく新たな加工経路の変更指令が出力される。
【００１９】
一方、シミュレーション装置１が備える機械学習装置１００は、ワークの加工条件に対する加工経路の変更を、いわゆる機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ１０１等）を含む。シミュレーション装置１が備える機械学習装置１００が学習するものは、ワークの加工条件と、加工経路の変更との、相関性を表すモデル構造に相当する。
【００２０】
図２に機能ブロックで示すように、シミュレーション装置１が備える機械学習装置１００は、前回変更された加工経路を示す変更後加工経路データＳ１、及びワークの加工条件を示す加工条件データＳ２を含む環境の現在状態を表す状態変数Ｓとして観測する状態観測部１０６と、変更された加工経路に基づいて行われたシミュレーションにおける加工のサイクルタイムを判定するためのサイクルタイム判定データＤ１を含む判定データＤを取得する判定データ取得部１０８と、状態変数Ｓと判定データＤとを用いて、ワークの加工条件と、加工経路の変更を関連付けて学習する学習部１１０とを備える。
【００２１】
状態観測部１０６が観測する状態変数Ｓのうち、変更後加工経路データＳ１は、機械学習装置１００が出力した加工経路の変更指令に基づいて変更された加工経路として取得することができる。加工経路そのものは、加工経路を構成する複数の工具の指令単位（ＧコードにおけるＧ００，Ｇ０１等の１つのコードで指令される移動）の組として表わすことができる。
【００２２】
図３は、本発明における加工経路と、該加工経路の変更について説明する図である。図３に例示されるように、加工経路は複数の工具の指令単位で構成され、工具の各指令単位は非切削経路と切削経路に分けることができる。本発明における加工経路の変更とは、加工経路を構成する複数の工具の指令単位の内のいくつかについて、方向と長さ又は座標値を変更する処理として示すことができる。一般に、加工経路を構成する各指令単位はベクトルの形で表現できるので、このベクトルの内のいくつかについて方向と長さ又は座標値を変更するようにすれば良い。本発明における加工経路の変更は、基本的に加工経路を構成する複数の工具の指令単位の内、非切削経路に対して為され、複数の連続する非切削経路に対して経路の変更を行う際には、最後の非切削経路の移動後の位置が変更前と一致するように調整される。また、本発明における加工経路の変更は、ＣＡＭデータに含まれるワークの加工形状を考慮して、該加工形状と工具とが接触しない範囲で行われる。各々の指令単位の方向と長さ又は座標値の変更は、該指令単位を示すベクトルの方向と長さの変量又は座標値の変量で示すことができるので、加工経路の変更については加工経路を構成する各指令単位の方向と長さの変量又は座標値の変量の組として表現することができる。
なお、本発明のおける加工経路の変更には、更に指令単位の直線経路を円弧経路（ＧコードにおけるＧ０２，Ｇ０３等のコードにより指令される移動）へと変更することを加えても良い。
【００２３】
変更後加工経路データＳ１は、機械学習装置１００が学習部１１０の学習結果に基づいて１つ前の学習周期における加工経路に対して、当該学習周期において変更された後の加工経路をそのまま用いることができる。このような手法を取る場合には、機械学習装置１００は前回変更された加工経路を学習周期毎にＲＡＭ１０３に一時的に記憶しておき、状態観測部１０６は、ＲＡＭ１０３から１つ前の学習周期で変更された加工経路を今回の学習周期の変更後加工経路データＳ１として取得するようにしても良い。
【００２４】
状態観測部１０６が観測する状態変数Ｓのうち、加工条件データＳ２は、ＣＡＭデータに含まれる工具の種類、加工速度、加工形状、治具形状等として取得することができる。
【００２５】
判定データ取得部１０８は、サイクルタイム判定データＤ１として、変更された加工経路に基づいてシミュレーション部３４が実行した工作機械２によるワークの加工のシミュレーション処理で求められたサイクルタイムに対する判定結果を用いることができる。判定データ取得部１０８が用いるサイクルタイム判定データＤ１としては、例えば、加工経路を変更していない状態で工作機械２によるワークの加工のシミュレーション処理で求められたサイクルタイムに対して、加工経路が変更された状態で求められたサイクルタイムがどれだけ小さいか（適）、又は大きいか（否）といったものを使用すれば良い。
【００２６】
なお、判定データ取得部１０８は、学習部１１０による学習の段階では必須の構成となるが、学習部１１０によるワークの加工条件と加工経路の変更とを関連付けた学習が完了した後には必ずしも必須の構成ではない。
【００２７】
学習部１１０に対して同時に入力される状態変数Ｓは、学習部１１０による学習周期で考えた場合、判定データＤが取得された１学習周期前のデータに基づくものとなる。このように、シミュレーション装置１が備える機械学習装置１００が学習を進める間、環境においては、加工条件データＳ２の取得、取得した各データに基づいて変更された加工経路データＳ１に基づいたシミュレーション部３４による加工シミュレーションの実行、判定データＤの取得が繰り返し実施される。
【００２８】
学習部１１０は、機械学習と総称される任意の学習アルゴリズムに従い、ワークの加工条件に対する、加工経路の変更を学習する。学習部１１０は、前述した状態変数Ｓと判定データＤとを含むデータ集合に基づく学習を反復実行することができる。ワークの加工条件に対する、加工経路の変更の学習サイクルの反復中、状態変数Ｓは、上記したように１学習周期前におけるワークの加工条件、及び１学習周期前において変更された加工経路を取得し、また判定データＤは、変更された加工経路に基づいて行われたシミュレーション処理の適否判定結果とする。
【００２９】
このような学習サイクルを繰り返すことにより、学習部１１０は、ワークの加工条件と、加工経路の変更との相関性を暗示する特徴を識別することができるようになる。学習アルゴリズムの開始時にはワークの加工条件と、加工経路の変更の相関性は実質的に未知であるが、学習部１１０は、学習を進めるに従い徐々に特徴を識別して相関性を解釈する。ワークの加工条件と、加工経路の変更との相関性が、ある程度信頼できる水準まで解釈されると、学習部１１０が反復出力する学習結果は、現在状態（つまりワークの加工条件）に対して、加工経路をどう変更するべきかという行動の選択（つまり意思決定）を行うために使用できるものとなる。つまり学習部１１０は、学習アルゴリズムの進行に伴い、ワークの加工条件に対して加工経路をどのように変更するべきかという行動との、相関性を最適解に徐々に近づけることができる。
【００３０】
意思決定部１２２は、状態変数Ｓと学習部１１０が学習した結果に基づいて、加工経路の変更を決定し、決定した加工経路の変更を行うための加工経路の変更指令をシミュレーション部３４へと出力する。
【００３１】
上記したように、シミュレーション装置１が備える機械学習装置１００は、状態観測部１０６が観測した状態変数Ｓと判定データ取得部１０８が取得した判定データＤとを用いて、学習部１１０が機械学習アルゴリズムに従い、ワークの加工条件に対する加工経路の変更を学習するものである。状態変数Ｓは、変更後加工経路データＳ１、及び加工条件データＳ２といったデータで構成され、また判定データＤは、シミュレーション処理の結果として取得された情報から一義的に求められる。したがって、シミュレーション装置１が備える機械学習装置１００によれば、学習部１１０の学習結果を用いることで、ワークの加工条件に応じた、最適な加工経路の変更を、自動的かつ正確に行うことが可能となる。
【００３２】
そして、最適な加工経路の変更を、自動的に行うことができれば、ＣＡＭデータ等の加工に係るデータを把握するだけで、加工経路を適切な状態へと迅速に変更することができる。
【００３３】
シミュレーション装置１が備える機械学習装置１００の一変形例として、判定データ取得部１０８は、サイクルタイム判定データＤ１に加えて、変更された加工経路に基づいて行われるワークの加工で工作機械２に発声する衝撃を判定するための衝撃判定データＤ２を判定データＤとして用いるようにしても良い。判定データ取得部１０８が用いる衝撃判定データＤ２としては、例えば変更された加工経路に基づいて行われるシミュレーション処理において求められた工具の加速度（加速度が大きい場合には機械に衝撃が発生する）が、予め定めた所定の閾値よりも小さいか（適）、大きいか（否）といったような、適宜設定された判定基準により判定された結果を用いればよい。衝撃判定データＤ２を判定データＤとして用いることにより、工作機械２に大きな衝撃が発生しない範囲で、ワークの加工時間を短くする加工経路へと変更することができるようになる。
【００３４】
上記構成を有する機械学習装置１００では、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図３は、図２に示すシミュレーション装置１の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部１１０を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本願の機械学習装置では加工経路の変更）を最適解として学習する手法である。
【００３５】
図４に示すシミュレーション装置１が備える機械学習装置１００において、学習部１１０は、状態変数Ｓに基づいて加工経路の変更がされ、変更された加工経路に基づくシミュレーションの結果の適否判定結果（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める報酬計算部１１２と、報酬Ｒを用いて、前回変更された加工経路の価値を表す関数Ｑを更新する価値関数更新部１１４とを備える。学習部１１０は、価値関数更新部１１４が関数Ｑの更新を繰り返すことによってワークの加工条件に対する加工経路の変更を学習する。
【００３６】
学習部１１０が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００３７】
価値関数Ｑの更新式は、一般に下記の数１式のように表すことができる。数１式において、ｓt及びａtはそれぞれ時刻ｔにおける状態及び行動であり、行動ａtにより状態はｓt+1に変化する。ｒt+1は、状態がｓtからｓt+1に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００３８】
【数１】
2019200661.tif 000003
【００３９】
学習部１１０がＱ学習を実行する場合、状態観測部１０６が観測した状態変数Ｓ及び判定データ取得部１０８が取得した判定データＤは、更新式の状態ｓに該当し、現在状態（つまり、ワークの加工条件）に対して加工経路をどのように変更するべきかという行動は、更新式の行動ａに該当し、報酬計算部１１２が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部１１４は、現在状態に対する前回変更された加工経路の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００４０】
報酬計算部１１２が求める報酬Ｒは、例えば、加工経路を変更した後に行われる、変更された加工経路に基づくシミュレーションの結果の適否判定結果が「適」と判定される場合（例えば、ワークの加工のサイクルタイムが短くなった場合や所定の閾値以下である場合、ワークの加工時に発生する衝撃が予め定めた閾値よりも小さかった場合等）に正（プラス）の報酬Ｒとし、加工経路を変更した後に行われる、変更された加工経路に基づくシミュレーションの結果の適否判定結果が「否」と判定される場合（例えば、ワークの加工のサイクルタイムが長くなった場合や所定の閾値以上である場合、ワークの加工時に発生する衝撃が予め定めた閾値よりも大きかった場合等）に負（マイナス）の報酬Ｒとすることができる。正負の報酬Ｒの絶対値は、互いに同一であってもよいし異なっていてもよい。また、判定の条件として、判定データＤに含まれる複数の値を組み合わせて判定するようにしても良い。
【００４１】
また、調整された前回変更された加工経路に基づくワークの加工の適否判定結果を、「適」及び「否」の二通りだけでなく複数段階に設定することができる。例として、シミュレーションで求められたワークの加工のサイクルタイムの閾値がＴmaxである場合、ワークの加工に掛かるサイクルタイムＴが、０≦Ｔ＜Ｔmax／５のときは報酬Ｒ＝５を与え、Ｔmax／５≦Ｔ＜Ｔmax／２のときは報酬Ｒ＝３を与え、Ｔmax／２≦Ｔ＜Ｔmaxのときは報酬Ｒ＝１を、Ｔmax≦Ｔのときは報酬Ｒ＝−３（マイナスの報酬）を与えるような構成とすることができる。
【００４２】
また、複数の判定データを用いる場合には、それぞれの判定データごとに報酬の値を変化させる（重み付けをつける）ことにより、学習における目標とする状態を変更することもできる。例えば、サイクルタイム判定データＤ１による判定結果に基づいて与える報酬を高くすることで加工時間を重視した加工経路の変更を学習させることもできるし、一方で、衝撃判定データＤ２による判定結果に基づいて与える報酬を高くすることで加工の安定性や工具や工作機械２の寿命を重視した加工経路の変更を学習させることもできる。更に、学習の初期段階は判定に用いる閾値を比較的大きく設定し、学習が進行するにつれて判定に用いる閾値を縮小する構成とすることもできる。
【００４３】
価値関数更新部１１４は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部１１４が関数Ｑを更新するという行為は、価値関数更新部１１４が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には環境の現在状態と加工経路の変更との相関性は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。なお報酬計算部１１２は、判定データＤが分かれば、これに対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００４４】
シミュレーションの結果の適否判定結果に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動（本発明の場合、工作機械２に大きな衝撃が発生しない範囲で、ワークの加工に係るサイクルタイムが短くなるように加工経路を変更する行動）であるほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態（ワークの加工条件）とそれに対する行動（加工経路の変更）との相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、ワークの加工条件と、加工経路の変更との関係が最適解に徐々に近づけられる。
【００４５】
図５を参照して、学習部１１０が実行する上記したＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。まずステップＳＡ０１で、価値関数更新部１１４は、その時点での行動価値テーブルを参照しながら、状態観測部１０６が観測した状態変数Ｓが示す現在状態で行う行動として加工経路の変更行動を無作為に選択する。次に価値関数更新部１１４は、ステップＳＡ０２で、状態観測部１０６が観測している現在状態の状態変数Ｓを取り込み、ステップＳＡ０３で、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。次に価値関数更新部１１４は、ステップＳＡ０４で、判定データＤに基づき、変更された加工経路によるシミュレーションの結果が適当であったか否かを判断し、適当であった場合、ステップＳＡ０５で、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。ステップＳＡ０４で、変更された加工経路によるシミュレーションの結果が適当でなかったと判断した場合、ステップＳＡ０７で、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。学習部１１０は、ステップＳＡ０１〜ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、加工経路の変更の学習を進行させる。なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。
【００４６】
前述した強化学習を進める際に、例えばニューラルネットワークを応用することができる。図６Ａは、ニューロンのモデルを模式的に示す。図６Ｂは、図６Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００４７】
図６Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する結果ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数２式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００４８】
【数２】
2019200661.tif 000004
【００４９】
図６Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００５０】
図６Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００５１】
図６Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００５２】
シミュレーション装置１が備える機械学習装置１００においては、ニューラルネットワークをＱ学習における価値関数として用い、状態変数Ｓと行動ａとを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、当該状態における当該行動の価値（結果ｙ）を出力することもできる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００５３】
上記したシミュレーション装置１の構成は、プロセッサ１０１が実行する機械学習方法（或いはソフトウェア）として記述できる。この機械学習方法は、加工経路の変更を学習する機械学習方法であって、コンピュータのＣＰＵが、変更後加工経路データＳ１、及び加工条件データＳ２を、工作機械２が動作する環境の現在状態を表す状態変数Ｓとして観測するステップと、変更された加工経路に基づくシミュレーション処理の結果の適否判定結果を示す判定データＤを取得するステップと、状態変数Ｓと判定データＤとを用いて、加工条件データＳ２と、加工経路の変更とを関連付けて学習するステップとを有する。
【００５４】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００５５】
例えば、機械学習装置１００が実行する学習アルゴリズムや演算アルゴリズム、シミュレーション装置１が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００５６】
また、上記した実施形態ではシミュレーション装置１と機械学習装置１００が異なるＣＰＵを有する装置として説明しているが、機械学習装置１００はシミュレーション装置１が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現するようにしても良い。
【符号の説明】
【００５７】
１  シミュレーション装置
２  工作機械
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１７，１８，１９  インタフェース
２０  バス
２１  インタフェース
３４  シミュレーション部
７０  表示装置
７１  入力装置
１００  機械学習装置
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１０６  状態観測部
１０８  判定データ取得部
１０９  ラベルデータ取得部
１１０  学習部
１１２  報酬計算部
１１４  価値関数更新部
１２２  意思決定部
【図１】
2019200661.tif 000005
【図２】
2019200661.tif 000006
【図３】
2019200661.tif 000007
【図４】
2019200661.tif 000008
【図５】
2019200661.tif 000009
【図６Ａ】
2019200661.tif 000010
【図６Ｂ】
2019200661.tif 000011