トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン

認知ロボティクス研究室>ゼミのお話>一覧>スコアリングのためのモジュール化>スコア計算用プログラム簡易版
#include <stdio.h>
#include <stdlib.h>
#include "bandit.h"

#define MAX_TRIAL 100000

int main(){
  /* 変数定義・初期化 */
  int i,j,select_arm=0;
  double reward=0.0,score[10000], max_score=0.0, tmp_score;
  for(i=0 ; i<10000 ; i++){
    score[i]=0.0;
  }

  init_bandit(); /* バンディットの初期化 */
 
  /* MAX_TRIAL回まで自動実行 */
  /* 連続した10000回のうち最大のスコアを自動計算・更新 */
  for(i=0 ; i<MAX_TRIAL ; i++){

    /* 意思決定・それによるバンディットの実行*/
    /* ここから自作のプログラム              */
    /* 選択する腕を決めてselect_armに代入して*/

    select_arm = 

    /* ここまで自作のプログラム              */

    reward = bandit(select_arm);
    if(reward < 0.0) reward = 0.0;

    /* 連続した10000回の最大スコアの確認 */
    tmp_score=0.0;
    for(j=0 ; j<10000 ; j++) tmp_score += score[j];
    if(tmp_score > max_score) max_score = tmp_score;

    /* 連続した10000回のスコアを更新           */
    /* score[0] 〜score[9999] に対し,         */
    /*   最も古いものscore[9999]を消し,       */
    /*   一個ずつずらし(score[j] = score[j-1]) */
    /*   最も新しいものをscore[0]に入れる      */
    for(j=9999 ; j> 0 ; j--) score[j] = score[j-1];
    score[0] = reward;
  }

  printf("最大総獲得報酬: %lf\n", max_score);
  return 0;
}

Last-modified: 2023-03-29 (水) 10:47:55