OpenAI Gymの使用を開始する

はじめる

FlexSimを使用して強化学習をはじめるには、強化学習アルゴリズムからFlexSimと通信を行う方法を示すPythonスクリプトを使用します。強化学習アルゴリズムはどのプログラミング言語でも作成でき、どのような言語とツールでもFlexSimと通信できます。この例では、OpenAI Gymツールキットと、強化学習アルゴリズムのStable-Baselines3実装とともに、Pythonにより作成されたサンプルコードを使用します。ここに示すサンプルコードは、自分のプロジェクトの必要に合わせて自由にカスタマイズでき、別の言語、ライブラリ、パッケージ、実装を使用して同じタイプの通信プロトコルを実装することもできます。

  1. 最初に、flexsim_reinforcement_learning.zipをダウンロードします。

このzip圧縮されたアーカイブには、3つのPythonスクリプトが含まれています。

  • flexsim_env.py:gym.EnvのサブクラスであるFlexSimEnvクラスで、カスタムの環境インターフェイスを実装します。このクラスには、ソケットを使用してFlexSimを起動し、通信するメソッドとプロパティがあります。
  • flexsim_training.py:単一のmain()メソッドで、FlexSimEnvクラスを使用してstable_baselines3強化学習アルゴリズムをトレーニングし、トレーニング済みモデルを保存して、FlexSim環境との直接接続を使ってトレーニング済みモデルを評価する例を示しています。
  • flexsim_inference.py:BaseHTTPRequestHandlerのサブクラスであるFlexSimInferenceServerクラスで、HTTPリクエストを処理するためのメソッドを実装しています。main()メソッドは、トレーニング中に保存されたトレーニング済みモデルをロードし、トレーニング済みモデルを使用できるHTTPサーバーをホストして、システムの観察に対応するアクションを指定する方法の例を示しています。これは例示を目的とした簡単な例で、実際の運用には推奨されません。ライブシステムには、よりセキュアなサーバーを実装する必要があります。

Python開発環境の構成

上述のPythonスクリプトには、標準ライブラリの一部ではないPythonパッケージとモジュールへの依存関係が含まれています。異なるPythonのバージョンのパッケージへの依存関係を管理するため、Visual Studio CodeVisual StudioAnacondaなどの統合開発環境(IDE)ソフトウェアパッケージを使用して仮想環境を構成し、Pythonスクリプトを編成して実行できます。例を単純にするためにVisual Studio Codeを使用しますが、これは必ず必要なわけではありません。必要なら、依存関係のパッケージをインストールし、スクリプトを変更してから、別のIDEを使用して実行できます。

Visual Studio Code(VS Code)のバージョンが異なる場合、ここに示されているスクリーンショットとは多少異なる可能性がありますが、一般的な手順はどのIDEでもほぼ同じです。

  1. Visual Studio CodeのPythonチュートリアルに従って、VS Code、そのPython拡張機能、およびPython 3をダウンロードし、インストールします。
  2. また、Pythonインタープリタとデバッガをチュートリアルの記載に従って設定します。

    オプションとして、インストールしたPythonパッケージを管理するための仮想環境を設定できます。ここで使用するカスタムパッケージはgymとstable-baselines3です。

  3. RL Pythonの開発用のフォルダを作成し(たとえば、Documents/FlexSim 2022 Projects/RL)、VS Codeで開きます。
  4. 上記のPythonスクリプトを抽出して、フォルダにコピーします。
  5. エクスプローラ]ペインでflexsim_env.pyをダブルクリックして開きます。
  6. 上端の[Pythonファイルの実行]ボタンを押して、スクリプトの実行を試みます。パッケージが存在しないため、「"gym"という名前のモジュールがありません」などのエラーが出力されます。
  7. パッケージが存在しないエラーを修正するには、[ターミナル]ペインを使用して、欠けているパッケージをインストールします。[ターミナル]ウィンドウに「pip install gym」コマンドを(鍵括弧なしで)入力し、Enterキーを押します。
  8. 正しいPythonインタープリタと環境を使用していることを確認してください。これらをインストールしても、パッケージが存在しないというエラーが出る場合は、スクリプトの実行に使用しているとは別の環境にパッケージをインストールしている可能性があります。上述のチュートリアルで、仮想環境についてと、VS CodeでPythonパッケージを管理する方法について、詳細を調べてください。

  9. gymをインストールすると、numpyなど他の依存関係もインストールされます。インストールされていない場合、欠けている他の依存関係もインストールしてください。
  10. Python開発環境の構成が終了したら、トレーニングを開始できます。