bayes_gp_gui_shimizu プログラム仕様

ベイズ最適化/ガウス過程回帰GUIアプリケーション

概要:

bayes_gp_plain_shimizu.py の機能をグラフィカルユーザーインターフェースを通じて提供します。 入力ファイルの指定、ベイズ最適化のパラメータ設定、実行、結果表示を行います。

詳細説明:

本スクリプトは、TkinterをベースとしたGUIアプリケーションフレームワークである`tklib`を利用して構築されています。 ユーザーはGUIを通じてデータファイルの選択、ガウス過程回帰およびベイズ最適化に関連する様々なパラメータ (例: 2Dグリッドのサイズ、探索回数、乱数基底の数、アクイジション関数の種類など)を設定できます。 設定されたパラメータはバックエンドの計算エンジン bayes_gp_plain_shimizu に渡され、解析が実行されます。 解析結果は出力ファイルに保存されます。

関連リンク:

Bayes/GP GUI 技術ドキュメント

PHYSBO.bayes_gp_gui_shimizu.copy_config(app, cparams, config)[ソース]

設定パラメータ(config)の値を計算パラメータ(cparams)にコピーします。

概要:

アプリケーションの全体設定オブジェクトから、計算エンジンで使用されるパラメータオブジェクトへ、 共通のキーを持つ設定値を転送します。

詳細説明:

`config`オブジェクトと`cparams`オブジェクトの両方に存在する属性について、 `cparams`の該当属性を`config`の値で更新します。 これにより、GUIの設定ダイアログ等で変更されたアプリケーション全体の設定が、 計算ロジックにも適用されるようにします。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。このオブジェクトが更新されます。

  • config (tklib.tkparams.tkParams) -- アプリケーション全体の設定パラメータオブジェクト。このオブジェクトから値がコピーされます。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.copy_tkvars(app, cparams, tkvars)[ソース]

Tkinterウィジェットの変数(tkvars)の値を計算パラメータ(cparams)と設定(config)にコピーします。

概要:

GUI上の入力フィールドや選択ボックスの値(tkinter.StringVarなど)を、 計算エンジンのパラメータオブジェクトとアプリケーションの設定オブジェクトの対応する属性に転送します。

詳細説明:

主に、GUI上でユーザーが設定を変更した後、実際の計算や設定保存のためにその値を内部データ構造に反映させる際に使用されます。 `cparams`と`config`オブジェクトの属性が、`tkvars`辞書に格納されたTkinter変数の現在の値で更新されます。 特に`figsize`はリスト形式に変換されて`cparams`に設定されます。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • tkvars (dict) -- Tkinterウィジェットの変数を格納する辞書。キーはパラメータ名、値はtkinter.StringVarなどの変数。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.create_canvas_tab(app, config, cparams, pane, title)[ソース]

キャンバスを表示するタブをペインに追加します。

概要:

新しいフレームを作成し、その中にTkinter Canvasウィジェットを配置して、指定されたペインにタブとして追加します。

詳細説明:

この関数は、描画や視覚化のためのキャンバスを提供するタブを作成するために使用されます。 現在、キャンバスは作成されるだけで、具体的な描画ロジックは含まれていません。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- アプリケーションの設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • pane (tkinter.ttk.Notebook or tkinter.PanedWindow) -- タブを追加する親ペインウィジェット。

  • title (str) -- タブのタイトル文字列。

戻り値:

作成されたタブのフレーム。

戻り値の型:

tktkinter.Frame

PHYSBO.bayes_gp_gui_shimizu.create_graph_tab(app, config, cparams, parent_notebook)[ソース]

グラフ関連のパラメータ設定タブをノートブックに追加します。

概要:

グラフの幅、高さ、フォントサイズ、凡例フォントサイズを設定するための入力ボックスを含むタブを作成し、 指定された親ノートブックに追加します。

詳細説明:

このタブは、出力されるグラフの視覚的なプロパティをユーザーが調整できるように設計されています。 各パラメータは数値入力ボックスとして提供され、デフォルト値へのリセットやヘルプ表示機能も備えています。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- アプリケーションの設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • parent_notebook (tkinter.ttk.Notebook) -- タブを追加する親ノートブックウィジェット。

戻り値:

作成されたタブのフレーム。

戻り値の型:

tktkinter.Frame

PHYSBO.bayes_gp_gui_shimizu.create_left_frame2(app, config, cparams, pane, title)[ソース]

各種Tkinterウィジェット(Menubutton, Scale, Dialog, Progressbar, Checkbutton, OptionMenu, Combobox, Radiobutton, Spinbox)を含むテスト用タブをペインに追加します。

概要:

多様なTkinterウィジェットを配置したフレームを作成し、指定されたペインにタブとして追加します。

詳細説明:

このタブは、Tkinterで利用可能な様々な標準ウィジェットの動作確認やデモンストレーションを目的としています。 カスタムダイアログの表示、スライダー、プログレスバー、チェックボックス、オプションメニュー、コンボボックス、 ラジオボタン、スピンボックスといった基本的なインタフェース要素が含まれています。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- アプリケーションの設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • pane (tkinter.ttk.Notebook or tkinter.PanedWindow) -- タブを追加する親ペインウィジェット。

  • title (str) -- タブのタイトル文字列。

戻り値:

作成されたタブのフレーム。

戻り値の型:

tktkinter.Frame

PHYSBO.bayes_gp_gui_shimizu.create_left_frame3(app, config, cparams, pane, title)[ソース]

TextウィジェットとListboxを含むテスト用ウィジェットタブをペインに追加します。

概要:

垂直スクロールバー付きのTextウィジェットとListboxウィジェットを含むフレームを作成し、 指定されたペインにタブとして追加します。

詳細説明:

このタブは、TextおよびListboxウィジェットの機能テストやデモンストレーションのために用意されています。 Listboxには月の名前が挿入され、ユーザーが選択できる状態になります。 もう一つのTextウィジェットも出力表示用として用意されています。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- アプリケーションの設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • pane (tkinter.ttk.Notebook or tkinter.PanedWindow) -- タブを追加する親ペインウィジェット。

  • title (str) -- タブのタイトル文字列。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.create_left_frame4(app, config, cparams, pane, title)[ソース]

Treeviewを含むテスト用ウィジェットタブをペインに追加します。

概要:

TkinterのTreeviewウィジェットを含むフレームを作成し、指定されたペインにタブとして追加します。

詳細説明:

このタブは、Treeviewウィジェットの機能テストやデモンストレーションのために用意されています。 階層的なデータ表示と複数列のデータ表示が可能なTreeviewが作成され、サンプルデータが挿入されます。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- アプリケーションの設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • pane (tkinter.ttk.Notebook or tkinter.PanedWindow) -- タブを追加する親ペインウィジェット。

  • title (str) -- タブのタイトル文字列。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.create_main_tab(app, config, cparams, parent_notebook)[ソース]

メインの解析設定タブをノートブックに追加します。

概要:

入力・出力ファイルのパス設定、解析実行ボタン、およびベイズ最適化の主要パラメータ設定のための ウィジェットを含むタブを作成し、指定された親ノートブックに追加します。

詳細説明:

このタブはアプリケーションの中心的な機能を提供します。 ユーザーはデータファイル (infile) を選択し、予測結果 (outfile) と状態保存ファイル (outresfile) のパスを自動生成・設定できます。 「analyze」と「validate」ボタンで解析を実行し、コマンドライン版の「usage」や「citation」も表示できます。 また、2Dグリッドの解像度 (nx_2D, ny_2D)、プローブ数 (max_num_probes), 各探索の数 (num_search_each)、 ランダム基底の数 (num_rand_basis)、ハイパーパラメータ更新間隔 (interval)、 アクイジション関数 (score_mode)、乱数シード (random_seed)、テストデータの割合 (fraction_test)、 およびデータの標準化 (standardize) といった、ベイズ最適化の重要なパラメータを設定するためのコントロールを提供します。 下部にはメッセージ表示用のテキストボックスも含まれます。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- アプリケーションの設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • parent_notebook (tkinter.ttk.Notebook) -- タブを追加する親ノートブックウィジェット。

戻り値:

作成されたタブのフレーム。

戻り値の型:

tktkinter.Frame

PHYSBO.bayes_gp_gui_shimizu.create_menu(app, config, cparams, root_window)[ソース]

アプリケーションのメニューバーを作成します。

概要:

「ファイル」メニューと「ツール」メニューを持つメニューバーをルートウィンドウに追加します。

詳細説明:

「ファイル」メニューには「開く」と「終了」のコマンドが含まれます。「ツール」メニューには「設定」 ダイアログを開くコマンドが含まれます。これらのコマンドにはアクセラレータキーも割り当てられています。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- 設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • root_window (tkinter.Tk) -- メニューバーを追加するルートTkinterウィンドウ。

戻り値:

作成されたメニューバー。

戻り値の型:

tkinter.Menu

PHYSBO.bayes_gp_gui_shimizu.create_toolbar(app, config, cparams, root_window)[ソース]

アプリケーションのツールバーを作成します。

概要:

「Setup」、「Edit ini file」、「言語選択コンボボックス」、「Exit」ボタンを含むツールバーをルートウィンドウに追加します。

詳細説明:

ツールバーは、アプリケーションの主要な操作(設定、設定ファイルの編集、言語切り替え、終了)へのクイックアクセスを提供します。 言語選択コンボボックスは、選択された言語をアプリケーションの設定に反映させ、再起動後に適用されることをユーザーに通知します。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- 設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

  • root_window (tkinter.Tk) -- ツールバーを追加するルートTkinterウィンドウ。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.create_window(app, config, cparams)[ソース]

メインGUIウィンドウと内部のペイン、タブを作成します。

概要:

アプリケーションのルートウィンドウを初期化し、ツールバーと、複数のタブを持つノートブックペインを配置します。

詳細説明:

この関数は、GUIの視覚的なレイアウトを構築する役割を担います。 `tkApplication_GUI`の機能を利用してルートウィンドウを作成し、設定されたジオメトリと最小サイズを適用します。 次に、ツールバーを追加し、メインのコンテンツエリアとしてノートブックウィジェットを持つシングルペインレイアウトを作成します。 このノートブックには、「Analyze」(メイン設定)、「Graph」(グラフ設定)、「Development」(開発用)、 「Editor test」(エディタテスト)、およびいくつかの「Widget test」タブが追加されます。 最後に、アプリケーションのメインループを開始し、GUIイベントを処理します。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- アプリケーションの設定パラメータオブジェクト。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.initialize(app, config)[ソース]

アプリケーションのグローバル変数と設定を初期化します。

概要:

Tkinter変数、ファイルタイプ、リソースディレクトリ、および設定可能な設定値を初期設定します。

詳細説明:

GUIの起動時に一度だけ呼び出され、アプリケーション全体で使用される基本的なパス、 デフォルトの設定値、GUIウィジェットと連携するための変数を設定します。 configオブジェクトの各種属性にデフォルト値が割り当てられ、 その型が定義されることで、設定ファイルからの読み込み時に自動的な型変換が可能になります。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • config (tklib.tkparams.tkParams) -- 設定パラメータオブジェクト。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.main()[ソース]

アプリケーションのエントリーポイント。GUIの初期化、設定読み込み、ウィンドウ作成、実行を行います。

概要:

本スクリプトの実行開始点であり、`tkApplication_GUI`インスタンスの生成から、 GUIウィンドウの作成、設定の保存、およびアプリケーションの終了処理までを制御します。

詳細説明:
  1. `tkApplication_GUI`インスタンスを初期化し、グローバル変数とローカル変数を設定します。

  2. `config`(アプリケーション設定)と`cparams`(計算エンジンパラメータ)のオブジェクトを取得します。

  3. アプリケーションのバージョン情報と修正日時をコンソールに出力します。

  4. `initialize`関数を呼び出して、アプリケーションの非設定および設定可能なパラメータを初期設定します。

  5. 設定ファイル (config.inifile) から既存の設定を読み込みます。

  6. コマンドライン引数があれば、`update_vars`を呼び出してパラメータを更新します(現在はコメントアウト)。

  7. 現在の言語設定に基づいてリソースファイルを読み込み、フレーズを初期化します。

  8. 設定に基づき作業ディレクトリを変更します。

  9. `create_window`関数を呼び出してメインGUIウィンドウを作成し、Tkinterのイベントループを開始します。

  10. GUIが閉じられた後、GUIウィジェットの現在の設定値を`cparams`と`config`にコピーします。

  11. メインウィンドウのジオメトリを`config`に保存します。

  12. 最新の設定を`config.inifile`に保存します。

  13. 必要であれば、計算パラメータをパラメータファイル (.prm`または.ini`) に保存します。

  14. アプリケーションを正常終了します。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.update_vars(app, cparams)[ソース]

コマンドライン引数に基づいてパラメータを更新します。

概要:

この関数は現在、実装がコメントアウトされており、コマンドライン引数からのパラメータ更新は行いません。 将来的な拡張のために残されています。

パラメータ:
  • app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。

  • cparams (tklib.tkparams.tkParams) -- 計算エンジンのパラメータオブジェクト。

戻り値:

None

PHYSBO.bayes_gp_gui_shimizu.usage(app)[ソース]

アプリケーションのコマンドライン使用方法を表示します。

概要:

引数として渡されたアプリケーションインスタンスが持つ使用方法文字列を標準出力に出力します。

詳細説明:

主にコマンドラインからスクリプトが誤った形で呼び出された際に、 正しい使用方法をユーザーに提示するために使用されます。

パラメータ:

app (tklib.tkgui.tkapplication_gui.tkApplication_GUI) -- アプリケーションインスタンス。usage_str属性を持ちます。

戻り値:

None