/*********************************************************************/ /* */ /* マルチエージェントシミュレータ Version 1.0 */ /* */ /*********************************************************************/ //------------------ コンポーネントツリー --------------- WORLD { space 二次元空間(2,0),SQUARE_2D(50, 50, LOOP) { agent PROFESSOR_1(10,10)[0] { dim X(10,10) AS Double = (0.000000); dim Y(100,10) AS Double = (0.000000); dim DIRECTION(190,10) AS Double = (0.000000); dim 研究掘削力(10,10) AS Double = (0.000000); dim 分野移動力(10,10) AS Integer = (0); dim パラダイム魅力(10,10)[50][50] AS Integer = (2500*0); dim 自力開発愛着性(10,10)[50][50] AS Integer = (2500*0); dim 年齢(10,10) AS Double = (0.000000); dim PREVX(10,10) AS Integer = (0); dim PREVY(10,10) AS Integer = (0); dim 名前(10,10) AS Integer = (0); dim 生死(10,10) AS Integer = (0); dim 投稿間隔(10,10) AS Integer = (0); dim 前回投稿ステップ数(10,10) AS Integer = (0); dim 論文数(10,10) AS Integer = (0); dim 生成論文流行性(10,10) AS Double = (0.000000); dim 生成論文パラダイム性(10,10) AS Double = (0.000000); dim 採用論文流行性平均値(10,10) AS Double = (0.000000); dim 採用論文パラダイム性平均値(10,10) AS Double = (0.000000); dim 不採用論文数(10,10) AS Integer = (0); dim 研究しないステップのカウンタ(10,10) AS Integer = (0); } dim 研究深度(10,10)[50][50] AS Double = (2500 * 0.000000); dim 研究流行(10,10)[50][50] AS Double = (2500 * 0.000000); agent PROFESSOR_2(10,10)[0] { dim X(10,10) AS Double = (0.000000); dim Y(100,10) AS Double = (0.000000); dim DIRECTION(190,10) AS Double = (0.000000); dim 研究掘削力(10,10) AS Double = (0.000000); dim 分野移動力(10,10) AS Integer = (0); dim 年齢(10,10) AS Double = (0.000000); dim PREVX(10,10) AS Integer = (0); dim PREVY(10,10) AS Integer = (0); dim 名前(10,10) AS Integer = (0); dim 生死(10,10) AS Integer = (0); dim 投稿間隔(10,10) AS Integer = (0); dim 前回投稿ステップ数(10,10) AS Integer = (0); dim 論文数(10,10) AS Integer = (0); dim 論文評価平均値(10,10) AS Double = (0.000000); dim 生成論文流行性(10,10) AS Double = (0.000000); dim 生成論文パラダイム性(10,10) AS Double = (0.000000); dim 採用論文流行性平均値(10,10) AS Double = (0.000000); dim 採用論文パラダイム性平均値(10,10) AS Double = (0.000000); dim 不採用論文数(10,10) AS Integer = (0); dim 研究しないステップのカウンタ(10,10) AS Integer = (0); } agent PROFESSOR_3(10,10)[0] { dim X(10,10) AS Double = (0.000000); dim Y(100,10) AS Double = (0.000000); dim DIRECTION(190,10) AS Double = (0.000000); dim 研究掘削力(10,10) AS Double = (0.000000); dim 分野移動力(10,10) AS Double = (0.000000); dim 年齢(10,10) AS Double = (0.000000); dim PREVX(10,10) AS Integer = (0); dim PREVY(10,10) AS Integer = (0); dim 名前(10,10) AS Integer = (0); dim 生死(10,10) AS Integer = (0); dim 投稿間隔(10,10) AS Integer = (0); dim 前回投稿ステップ数(10,10) AS Integer = (0); dim 論文数(10,10) AS Integer = (0); dim 論文評価平均値(10,10) AS Double = (0.000000); dim 生成論文流行性(10,10) AS Double = (0.000000); dim 生成論文パラダイム性(10,10) AS Double = (0.000000); dim 採用論文流行性平均値(10,10) AS Double = (0.000000); dim 採用論文パラダイム性平均値(10,10) AS Double = (0.000000); dim 不採用論文数(10,10) AS Integer = (0); dim 研究しないステップのカウンタ(10,10) AS Integer = (0); } dim 穴の大きさ(10,10)[50][50] AS Double = (2500 * 0.000000); dim 研究深度限界までの残部(10,10)[50][50] AS Double = (2500 * 0.000000); dim パラダイム魅力仮変数(10,10)[50][50] AS Double = (2500 * 0.000000); agent パラダイム(10,10)[0] { dim X(10,10) AS Double = (0.000000); dim Y(100,10) AS Double = (0.000000); dim DIRECTION(190,10) AS Double = (0.000000); } } dim NUM_PROFESSOR_1(40,41) AS Integer = (0); dim 流行期間(10,10) AS Integer = (0); dim 前回流行ステップ数(10,10) AS Integer = (0); dim 流行期間平均(10,10) AS Integer = (0); dim 流行中心X(10,10) AS Integer = (0); dim 流行中心Y(10,10) AS Integer = (0); dim 流行規模(10,10) AS Integer = (0); dim 流行高さ(10,10) AS Double = (0.000000); dim NUM_PROFESSOR_2(10,10) AS Integer = (0); dim 自力開発愛着性増分(10,10) AS Integer = (0); dim 研究深度限界(10,10) AS Double = (0.000000); dim 停年(10,10) AS Double = (0.000000); dim 定員制限なし(10,10) AS Integer = (0); dim PROFESSOR_1現員数(10,10) AS Integer = (0); dim PROFESSOR_2現員数(10,10) AS Integer = (0); dim PROFESSOR_1新生数(10,10) AS Integer = (0); dim PROFESSOR_2新生数(10,10) AS Integer = (0); dim PROFESSOR_1退官数(10,10) AS Integer = (0); dim PROFESSOR_2退官数(10,10) AS Integer = (0); space 論文(10,10),SQUARE_2D(50, 50, !LOOP) { agent 投稿論文(10,10)[0] { dim X(10,10) AS Double = (0.000000); dim Y(100,10) AS Double = (0.000000); dim DIRECTION(190,10) AS Double = (0.000000); dim 流行性(10,10) AS Double = (0.000000); dim パラダイム性(10,10) AS Double = (0.000000); dim 著者所属派閥(10,10) AS Integer = (0); dim 著者名(10,10) AS Integer = (0); } dim 採用論文数(10,10)[50][50] AS Integer = (2500*0); dim 採用論文流行性平均値(10,10)[50][50] AS Double = (2500 * 0.000000); dim 採用論文パラダイム性平均値(10,10)[50][50] AS Double = (2500 * 0.000000); } dim PROFESSOR_1採用論文数(10,10) AS Integer = (0); dim PROFESSOR_2採用論文数(10,10) AS Integer = (0); dim PROFESSOR_1採用論文流行性平均値(10,10) AS Double = (0.000000); dim PROFESSOR_2採用論文流行性平均値(10,10) AS Double = (0.000000); dim PROFESSOR_1採用論文パラダイム性平均値(10,10) AS Double = (0.000000); dim PROFESSOR_2採用論文パラダイム性平均値(10,10) AS Double = (0.000000); dim PROFESSOR_1不採用論文数(10,10) AS Integer = (0); dim PROFESSOR_2不採用論文数(10,10) AS Integer = (0); dim 査読の甘さ(10,10) AS Double = (0.000000); dim PROFESSOR_1一人当たり採用論文数(10,10) AS Double = (0.000000); dim PROFESSOR_2一人当たり採用論文数(10,10) AS Double = (0.000000); dim PROFESSOR_1投稿間隔(10,10) AS Double = (0.000000); dim PROFESSOR_2投稿間隔(10,10) AS Double = (0.000000); dim NUM_PROFESSOR_3(10,10) AS Integer = (0); dim PROFESSOR_3現員数(10,10) AS Integer = (0); dim PROFESSOR_3新生数(10,10) AS Integer = (0); dim PROFESSOR_3退官数(10,10) AS Integer = (0); dim PROFESSOR_3採用論文数(10,10) AS Integer = (0); dim PROFESSOR_3採用論文流行性平均値(10,10) AS Double = (0.000000); dim PROFESSOR_3採用論文パラダイム性平均値(10,10) AS Double = (0.000000); dim PROFESSOR_3不採用論文数(10,10) AS Integer = (0); dim PROFESSOR_3一人当たり採用論文数(10,10) AS Double = (0.000000); dim PROFESSOR_3投稿間隔(10,10) AS Double = (0.000000); dim 研究しないステップのカウンタ許容上限(10,10) AS Integer = (0); dim 研究進行度(10,10) AS Double = (0.000000); dim ネタ枯渇死亡時の補充(10,10) AS Integer = (0); dim パラダイムシフト発生下限研究深度(10,10) AS Double = (0.000000); dim パラダイムの明示(10,10) AS Integer = (0); } //------------------ コンポーネントパレットツリー --------------- COMPO_PALLET 0{ dim NUM_PROFESSOR_3(10,10) AS Integer = (0); } COMPO_PALLET 1{ dim NUM_PROFESSOR_3(10,10) AS Integer = (0); } //------------------ エージェント変数初期値データ --------------- INITIAL_VALUE { WORLD.NUM_PROFESSOR_1 = 1(50); } //------------------ エージェント共通ルール --------------- #begin_rule common_agent_rule Function 端処理X(Xp as integer) as integer { //マップの端をループさせる処理 //変数定義 Dim EdgeX as integer //マップの幅を取得 EdgeX = _GetWidthSpace(World.二次元空間) //Xpが右端よりはみ出る場合は左側にループ If Xp >= EdgeX then Xp = Xp - EdgeX //Xpが左端よりはみ出る場合は右側にループ ElseIf Xp < 0 then Xp = Xp + EdgeX End If //値を返す Return(Xp) } Function 端処理Y(Yp as integer) as integer { //マップの端をループさせる処理 //変数定義 Dim EdgeY as integer //マップの高さを取得 EdgeY = _GetHeightSpace(World.二次元空間) //Ypが下端からはみ出る場合は上側にループ If Yp >= EdgeY then Yp = Yp - EdgeY //Ypが上端からはみ出る場合は下側にループ ElseIf Yp < 0 then Yp = Yp + EdgeY End If //値を返す Return(Yp) } Function 移動(StepV as Integer) as Boolean { // 012 :方向をランダムに選択して移動 // 783 // 654 //変数定義 Dim Drc as Integer Dim Stp as Integer Dim moX as Integer Dim moY as Integer Dim StpX as Integer Dim StpY as Integer dim High(9) as Integer dim DHigh(10) as Double dim i as integer dim is as integer dim Prob as Double High(0)=WORLD.二次元空間.研究深度(端処理X(My.X-1),端処理Y(My.Y-1)) High(1)=WORLD.二次元空間.研究深度(端処理X(My.X),端処理Y(My.Y-1)) High(2)=WORLD.二次元空間.研究深度(端処理X(My.X+1),端処理Y(My.Y-1)) High(3)=WORLD.二次元空間.研究深度(端処理X(My.X+1),端処理Y(My.Y)) High(4)=WORLD.二次元空間.研究深度(端処理X(My.X+1),端処理Y(My.Y+1)) High(5)=WORLD.二次元空間.研究深度(端処理X(My.X),端処理Y(My.Y+1)) High(6)=WORLD.二次元空間.研究深度(端処理X(My.X-1),端処理Y(My.Y+1)) High(7)=WORLD.二次元空間.研究深度(端処理X(My.X-1),端処理Y(My.Y)) High(8)=WORLD.二次元空間.研究深度(端処理X(My.X),端処理Y(My.Y)) is=0 DHigh(0)=0. for i=0 to 8 High(i)=High(i)+1 is=is+High(i) Dhigh(i+1)=DHigh(i)+CDbl(High(i)) next i //方向をランダムにセット Prob = Rnd()*CDbl(is) for i=0 to 8 If (DHigh(i)NumPap then NumPap=tmpProf.論文数 NameProf=tmpProf.名前 GrpProf=1 end if end if next tmpProf ColProf=_CollectAgent(World.二次元空間.PROFESSOR_2) For Each tmpProf in ColProf if tmpProf.生死==1 then if tmpProf.論文数>NumPap then NumPap=tmpProf.論文数 NameProf=tmpProf.名前 GrpProf=2 end if end if next tmpProf ColProf=_CollectAgent(World.二次元空間.PROFESSOR_3) For Each tmpProf in ColProf if tmpProf.生死==1 then if tmpProf.論文数>NumPap then NumPap=tmpProf.論文数 NameProf=tmpProf.名前 GrpProf=3 end if end if next tmpProf // 後継者の発生  if GrpProf==1 then ColProf=_CollectAgent(World.二次元空間.PROFESSOR_1) obj=_CreateAgent (WORLD.二次元空間.PROFESSOR_1) For Each tmpProf in ColProf   if tmpProf.生死==1 then if tmpProf.論文数==NumPap and tmpProf.名前==NameProf then // 後継者氏名賢者の論文数をゼロクリア tmpProf.論文数=0 // 後継者の遺伝子処理 obj.研究掘削力=tmpProf.研究掘削力*(1+(Rnd()*10-5)/CDbl(100)) // obj.分野移動力=CInt(CDbl(40)/obj.研究掘削力) obj.分野移動力=tmpProf.分野移動力+(1-CInt(Rnd()*3)) if obj.分野移動力<1 then obj.分野移動力=1 end if obj.年齢=25+Rnd()*25 obj.名前=World.NUM_PROFESSOR_1+World.PROFESSOR_1新生数+1 obj.生死=1 obj.投稿間隔=tmpProf.投稿間隔+(1-CInt(Rnd()*3)) if obj.投稿間隔<1 then obj.投稿間隔=1 end if obj.前回投稿ステップ数=_GetCountStep() obj.論文数=0 obj.生成論文流行性=0 obj.生成論文パラダイム性=0 obj.採用論文流行性平均値=0 obj.採用論文パラダイム性平均値=0 obj.不採用論文数=0 For i = 0 To (_GetWidthSpace(WORLD.二次元空間) - 1) For j = 0 To (_GetHeightSpace(WORLD.二次元空間) - 1) obj.自力開発愛着性(i,j)=tmpProf.自力開発愛着性(i,j) obj.パラダイム魅力(i,j)=tmpProf.パラダイム魅力(i,j) Next j Next i end if end if next tmpProf World.PROFESSOR_1現員数=World.PROFESSOR_1現員数+1 World.PROFESSOR_1新生数=World.PROFESSOR_1新生数+1 end if if GrpProf==2 then ColProf=_CollectAgent(World.二次元空間.PROFESSOR_2) obj=_CreateAgent (WORLD.二次元空間.PROFESSOR_2) For Each tmpProf in ColProf   if tmpProf.生死==1 then if tmpProf.論文数==NumPap and tmpProf.名前==NameProf then // 後継者氏名賢者の論文数をゼロクリア tmpProf.論文数=0 // 後継者の遺伝子処理 obj.研究掘削力=tmpProf.研究掘削力*(1+(Rnd()*10-5)/CDbl(100)) // obj.分野移動力=CInt(CDbl(40)/obj.研究掘削力) obj.分野移動力=tmpProf.分野移動力+(1-CInt(Rnd()*3)) if obj.分野移動力<1 then obj.分野移動力=1 end if obj.年齢=25+Rnd()*25 obj.名前=World.NUM_PROFESSOR_2+World.PROFESSOR_2新生数+1 obj.生死=1 obj.投稿間隔=tmpProf.投稿間隔+(1-CInt(Rnd()*3)) if obj.投稿間隔<1 then obj.投稿間隔=1 end if obj.前回投稿ステップ数=_GetCountStep() obj.論文数=0 obj.生成論文流行性=0 obj.生成論文パラダイム性=0 obj.採用論文流行性平均値=0 obj.採用論文パラダイム性平均値=0 obj.不採用論文数=0 // For i = 0 To (_GetWidthSpace(WORLD.二次元空間) - 1) // For j = 0 To (_GetHeightSpace(WORLD.二次元空間) - 1) // obj.自力開発愛着性(i,j)=tmpProf.自力開発愛着性(i,j) // obj.パラダイム魅力(i,j)=tmpProf.パラダイム魅力(i,j) // Next j // Next i end if end if next tmpProf World.PROFESSOR_2現員数=World.PROFESSOR_2現員数+1 World.PROFESSOR_2新生数=World.PROFESSOR_2新生数+1 end if if GrpProf==3 then ColProf=_CollectAgent(World.二次元空間.PROFESSOR_3) obj=_CreateAgent (WORLD.二次元空間.PROFESSOR_3) For Each tmpProf in ColProf   if tmpProf.生死==1 then if tmpProf.論文数==NumPap and tmpProf.名前==NameProf then // 後継者氏名賢者の論文数をゼロクリア tmpProf.論文数=0 // 後継者の遺伝子処理 obj.研究掘削力=tmpProf.研究掘削力*(1+(Rnd()*10-5)/CDbl(100)) // obj.分野移動力=CInt(CDbl(40)/obj.研究掘削力) obj.分野移動力=tmpProf.分野移動力+(1-CInt(Rnd()*3)) if obj.分野移動力<1 then obj.分野移動力=1 end if obj.年齢=25+Rnd()*25 obj.名前=World.NUM_PROFESSOR_3+World.PROFESSOR_3新生数+1 obj.生死=1 obj.投稿間隔=tmpProf.投稿間隔+(1-CInt(Rnd()*3)) if obj.投稿間隔<1 then obj.投稿間隔=1 end if obj.前回投稿ステップ数=_GetCountStep() obj.論文数=0 obj.生成論文流行性=0 obj.生成論文パラダイム性=0 obj.採用論文流行性平均値=0 obj.採用論文パラダイム性平均値=0 obj.不採用論文数=0 // For i = 0 To (_GetWidthSpace(WORLD.二次元空間) - 1) // For j = 0 To (_GetHeightSpace(WORLD.二次元空間) - 1) // obj.自力開発愛着性(i,j)=tmpProf.自力開発愛着性(i,j) // obj.パラダイム魅力(i,j)=tmpProf.パラダイム魅力(i,j) // Next j // Next i end if end if next tmpProf World.PROFESSOR_3現員数=World.PROFESSOR_3現員数+1 World.PROFESSOR_3新生数=World.PROFESSOR_3新生数+1 end if   obj.X=My.X obj.Y=My.Y } Sub 論文投稿(KindA as Integer) { Dim obj As Object Dim PaperFlg as Integer Dim tmpProf as Object Dim ColProf as Collection Dim NumRefProf1 as Integer Dim NumRefProf2 as Integer Dim NumRefProf3 as Integer Dim NumRef as Integer Dim i as Integer Dim 査読者流行性(301) as Double Dim 査読者パラダイム性(301) as Double obj = _CreateAgent(World.論文.投稿論文) obj.流行性=My.生成論文流行性 obj.パラダイム性=My.生成論文パラダイム性 obj.著者所属派閥=KindA obj.著者名=My.名前 //査読プロセス //PaperFlg=0不採用/PaperFlg=1採用 // 査読委員依頼対象者数を調べる NumRefProf1=0 ColProf=_CollectAgent(World.二次元空間.PROFESSOR_1) For Each tmpProf in ColProf   if tmpProf.生死==1 then NumRefProf1=NumRefProf1+1 査読者流行性(NumRefProf1)=tmpProf.採用論文流行性平均値 査読者パラダイム性(NumRefProf1)=tmpProf.採用論文パラダイム性平均値 end if next tmpProf NumRefProf2=0 ColProf=_CollectAgent(World.二次元空間.PROFESSOR_2) For Each tmpProf in ColProf if tmpProf.生死==1 then NumRefProf2=NumRefProf2+1 査読者流行性(NumRefProf1+NumRefProf2)=tmpProf.採用論文流行性平均値 査読者パラダイム性(NumRefProf1+NumRefProf2)=tmpProf.採用論文パラダイム性平均値 end if next tmpProf NumRefProf3=0 ColProf=_CollectAgent(World.二次元空間.PROFESSOR_3) For Each tmpProf in ColProf if tmpProf.生死==1 then NumRefProf3=NumRefProf3+1 査読者流行性(NumRefProf1+NumRefProf2+NumRefProf3)=tmpProf.採用論文流行性平均値 査読者パラダイム性(NumRefProf1+NumRefProf2+NumRefProf3)=tmpProf.採用論文パラダイム性平均値 end if next tmpProf // 査読委員の決定 PaperFlg=0 NumRef=Int(Rnd()*CDbl(NumRefProf1+NumRefProf2+NumRefProf3))+1 //   _OpenFileCSV("TEST.TXT", 1, 3) // ファイル1を追記モードでオープン //  _WriteFileCSV(1, NumRef, false) // 書き出し //  _WriteFileCSV(1, NumRefProf1, false) //  _WriteFileCSV(1, NumRefProf2, true) //  _CloseFileCSV(1) // クローズ if 査読者流行性(NumRef)*(1-World.査読の甘さ)0 then World.PROFESSOR_1一人当たり採用論文数=World.PROFESSOR_1一人当たり採用論文数+CDbl(1)/CDbl(World.PROFESSOR_1現員数) else World.PROFESSOR_1一人当たり採用論文数=0 end if World.PROFESSOR_1採用論文流行性平均値=(World.PROFESSOR_1採用論文流行性平均値*(World.PROFESSOR_1採用論文数-1)+My.生成論文流行性)/CDbl(World.PROFESSOR_1採用論文数) World.PROFESSOR_1採用論文パラダイム性平均値=(World.PROFESSOR_1採用論文パラダイム性平均値*(World.PROFESSOR_1採用論文数-1)+My.生成論文パラダイム性)/CDbl(World.PROFESSOR_1採用論文数) end if if KindA==2 then World.PROFESSOR_2採用論文数= World.PROFESSOR_2採用論文数+1 if World.PROFESSOR_2現員数<>0 then World.PROFESSOR_2一人当たり採用論文数=World.PROFESSOR_2一人当たり採用論文数+CDbl(1)/CDbl(World.PROFESSOR_2現員数) else World.PROFESSOR_2一人当たり採用論文数=0 end if World.PROFESSOR_2採用論文流行性平均値=(World.PROFESSOR_2採用論文流行性平均値*(World.PROFESSOR_2採用論文数-1)+My.生成論文流行性)/CDbl(World.PROFESSOR_2採用論文数) World.PROFESSOR_2採用論文パラダイム性平均値=(World.PROFESSOR_2採用論文パラダイム性平均値*(World.PROFESSOR_2採用論文数-1)+My.生成論文パラダイム性)/CDbl(World.PROFESSOR_2採用論文数) end if if KindA==3 then World.PROFESSOR_3採用論文数= World.PROFESSOR_3採用論文数+1 if World.PROFESSOR_3現員数<>0 then World.PROFESSOR_3一人当たり採用論文数=World.PROFESSOR_3一人当たり採用論文数+CDbl(1)/CDbl(World.PROFESSOR_3現員数) else World.PROFESSOR_3一人当たり採用論文数=0 end if World.PROFESSOR_3採用論文流行性平均値=(World.PROFESSOR_3採用論文流行性平均値*(World.PROFESSOR_3採用論文数-1)+My.生成論文流行性)/CDbl(World.PROFESSOR_3採用論文数) World.PROFESSOR_3採用論文パラダイム性平均値=(World.PROFESSOR_3採用論文パラダイム性平均値*(World.PROFESSOR_3採用論文数-1)+My.生成論文パラダイム性)/CDbl(World.PROFESSOR_3採用論文数) end if end if if PaperFlg==0 then My.不採用論文数=My.不採用論文数+1 if KindA==1 then World.PROFESSOR_1不採用論文数=World.PROFESSOR_1不採用論文数+1 end if if KindA==2 then World.PROFESSOR_2不採用論文数=World.PROFESSOR_2不採用論文数+1 end if if KindA==3 then World.PROFESSOR_3不採用論文数=World.PROFESSOR_3不採用論文数+1 end if end if _KillAgent (obj) } #end_rule common_agent_rule //------------------ エージェントルール --------------- #begin_rule WORLD Agt_Init{ //変数定義 Dim i As Integer Dim j As Integer Dim ii As Integer Dim obj As Object World.自力開発愛着性増分=1000 World.研究深度限界=100 World.停年=60 World.研究しないステップのカウンタ許容上限=12 //Professor_1の生成 If World.Num_Professor_1 > 0 Then For i = 0 To (World.Num_Professor_1 - 1) obj = _CreateAgent(World.二次元空間.Professor_1) obj.分野移動力=14+CInt(Rnd()*7) obj.研究掘削力=10+(Rnd()*10-5) obj.年齢=25+Rnd()*25 obj.名前=i+1 obj.生死=1 obj.投稿間隔=9+(CInt((Rnd()*7))-3) For ii = 0 To (_GetWidthSpace(WORLD.二次元空間) - 1) For j = 0 To (_GetHeightSpace(WORLD.二次元空間) - 1) obj.自力開発愛着性(ii,j)=0 obj.パラダイム魅力(ii,j)=0 Next j Next ii Next i _RandomPutAgent(World.二次元空間.Professor_1, true) World.PROFESSOR_1現員数=World.Num_Professor_1 World.PROFESSOR_1新生数=0 World.PROFESSOR_1退官数=0 End If //Professor_2の生成 If World.Num_Professor_2 > 0 Then For i = 0 To (World.Num_Professor_2 - 1) obj = _CreateAgent(World.二次元空間.Professor_2) obj.分野移動力=14+CInt(Rnd()*7) obj.研究掘削力=10+(Rnd()*10-5) obj.年齢=25+Rnd()*25 obj.名前=i+1 obj.生死=1 obj.投稿間隔=9+(CInt((Rnd()*7))-3) Next i _RandomPutAgent(World.二次元空間.Professor_2, true) World.PROFESSOR_2現員数=World.Num_Professor_2 World.PROFESSOR_2新生数=0 World.PROFESSOR_2退官数=0 End If //Professor_3の生成 If World.Num_Professor_3 > 0 Then For i = 0 To (World.Num_Professor_3 - 1) obj = _CreateAgent(World.二次元空間.Professor_3) obj.分野移動力=14+CInt(Rnd()*7) obj.研究掘削力=10+(Rnd()*10-5) obj.年齢=25+Rnd()*25 obj.名前=i+1 obj.生死=1 obj.投稿間隔=9+(CInt((Rnd()*7))-3) Next i _RandomPutAgent(World.二次元空間.Professor_3, true) World.PROFESSOR_3現員数=World.Num_Professor_3 World.PROFESSOR_3新生数=0 World.PROFESSOR_3退官数=0 End If } Agt_Step{ Dim i As Integer Dim j As Integer Dim ステップ数 as Integer Dim tmpProf1 as Object Dim ColProf1 as Collection Dim NumProf as Integer Dim Rij as Integer Dim ii as Integer Dim jj as Integer Dim ic as Integer Dim obj As Object // ステップ数=_GetCountStep() // if ステップ数-World.前回流行ステップ数>World.流行期間 then // 研究流行の発生() // end if ColProf1=_CollectAgent(World.二次元空間.PROFESSOR_1) NumProf=0 World.PROFESSOR_1投稿間隔=0 For Each tmpProf1 in ColProf1 NumProf=NumProf+1 World.PROFESSOR_1投稿間隔=World.PROFESSOR_1投稿間隔+tmpProf1.投稿間隔 //  tmpProf1.パラダイム魅力(tmpProf1.X,tmpProf1.Y)=100+tmpProf1.自力開発愛着性(tmpProf1.X,tmpProf1.Y)-WORLD.二次元空間.研究深度(tmpProf1.X,tmpProf1.Y) if WORLD.二次元空間.研究深度(tmpProf1.X,tmpProf1.Y)>=World.研究深度限界 then tmpProf1.パラダイム魅力(tmpProf1.X,tmpProf1.Y)=0 end if next tmpProf1 if NumProf<>0 then World.PROFESSOR_1投稿間隔=World.PROFESSOR_1投稿間隔/CDbl(NumProf) else World.PROFESSOR_1投稿間隔=0 end if ColProf1=_CollectAgent(World.二次元空間.PROFESSOR_2) NumProf=0 World.PROFESSOR_2投稿間隔=0 For Each tmpProf1 in ColProf1 NumProf=NumProf+1 World.PROFESSOR_2投稿間隔=World.PROFESSOR_2投稿間隔+tmpProf1.投稿間隔 next tmpProf1 if NumProf<>0 then World.PROFESSOR_2投稿間隔=World.PROFESSOR_2投稿間隔/CDbl(NumProf) else World.PROFESSOR_2投稿間隔=0 end if ColProf1=_CollectAgent(World.二次元空間.PROFESSOR_3) NumProf=0 World.PROFESSOR_3投稿間隔=0 For Each tmpProf1 in ColProf1 NumProf=NumProf+1 World.PROFESSOR_3投稿間隔=World.PROFESSOR_3投稿間隔+tmpProf1.投稿間隔 next tmpProf1 if NumProf<>0 then World.PROFESSOR_3投稿間隔=World.PROFESSOR_3投稿間隔/CDbl(NumProf) else World.PROFESSOR_3投稿間隔=0 end if // 穴の大きさのカウント,研究深度限界までの残部 Rij=2 World.研究進行度=0 For i=0 to _GetWidthSpace(World.二次元空間)-1 For j=0 to _GetHeightSpace(World.二次元空間)-1 World.二次元空間.穴の大きさ(i,j)=0 For ii=0 to 2*Rij For jj=0 to 2*Rij World.二次元空間.穴の大きさ(i,j)=World.二次元空間.穴の大きさ(i,j)+World.二次元空間.研究深度(端処理X(i-Rij+ii),端処理Y(j-Rij+jj)) next jj next ii World.二次元空間.研究深度限界までの残部(i,j)=CDbl((2*Rij+1)*(2*Rij+1)*World.研究深度限界)-World.二次元空間.穴の大きさ(i,j) if World.二次元空間.研究深度限界までの残部(i,j)<=0 then World.二次元空間.研究深度限界までの残部(i,j)=0 end if World.研究進行度=World.研究進行度+World.二次元空間.研究深度(i,j) next j next i World.研究進行度=World.研究進行度/CDbl((_GetWidthSpace(World.二次元空間))*(_GetHeightSpace(World.二次元空間))*World.研究深度限界)*Cdbl(100) if World.研究進行度>50 And World.パラダイムの明示==0 then World.パラダイムの明示=1 obj = _CreateAgent(World.二次元空間.パラダイム) _RandomPutAgent(World.二次元空間.パラダイム, true) end if } Sub 研究流行の発生() { Dim i As Integer Dim j As Integer Dim k as Integer World.前回流行ステップ数=_GetCountStep() World.流行期間=流行期間平均+CInt((Rnd()-0.5)*2*5) World.流行中心X=CInt(Rnd()*(_GetWidthSpace(WORLD.二次元空間) - 1)) World.流行中心Y=CInt(Rnd()*(_GetHeightSpace(WORLD.二次元空間) - 1)) World.流行規模=CInt(Rnd()*4)+1 //(流行規模)*(流行高さ)は一定 World.流行高さ=10/World.流行規模 //研究流行初期化 For i = 0 To (_GetWidthSpace(WORLD.二次元空間) - 1) For j = 0 To (_GetHeightSpace(WORLD.二次元空間) - 1) WORLD.二次元空間.研究流行(i,j)=0 Next j Next i //研究流行メサ部分の設定 For i = World.流行中心X-World.流行規模 To World.流行中心X+World.流行規模 For j = World.流行中心Y-World.流行規模 To World.流行中心Y+World.流行規模 WORLD.二次元空間.研究流行(端処理X(i),端処理Y(j))=World.流行高さ Next j Next i //研究流行非メサ部分の設定 For k=1 To 50 if World.流行高さ-k*0.5>0 then For i = World.流行中心X-World.流行規模-k To World.流行中心X+World.流行規模+k For j = World.流行中心Y-World.流行規模-k To World.流行中心Y+World.流行規模+k if WORLD.二次元空間.研究流行(端処理X(i),端処理Y(j))==0 then WORLD.二次元空間.研究流行(端処理X(i),端処理Y(j))=World.流行高さ-k*0.5 end if Next j Next i end if Next k } #end_rule WORLD //------------------ エージェントルール --------------- #begin_rule WORLD.二次元空間.PROFESSOR_1 Agt_Init{ } Agt_Step{ //ステップごとのエージェントの動き //変数定義 Dim obj as Object dim i as integer dim j as integer dim LenX as Integer dim LenY as Integer dim imove as Integer //論文投稿 if _GetCountStep()-My.前回投稿ステップ数>My.投稿間隔+(CInt((Rnd()*7))-3) then 論文投稿(1) My.前回投稿ステップ数=_GetCountStep() My.生成論文流行性=0 My.生成論文パラダイム性=0 end if My.年齢=My.年齢+CDbl(1)/CDbl(12) if My.年齢>=World.停年 then // if World.定員制限なし ==0 then 欠員補充(1) // World.PROFESSOR_1現員数=World.PROFESSOR_1現員数+1 // World.PROFESSOR_1新生数=World.PROFESSOR_1新生数+1 // end if My.生死=0 World.PROFESSOR_1現員数=World.PROFESSOR_1現員数-1 World.PROFESSOR_1退官数=World.PROFESSOR_1退官数+1 _KillAgent (My) goto endflag end if LenX=My.X-My.PrevX if abs(My.X-My.PrevX)>_GetWidthSpace(WORLD.二次元空間)/2 then LenX=_GetWidthSpace(WORLD.二次元空間)-abs(My.X-My.PrevX) end if LenY=My.Y-My.PrevY if abs(My.Y-My.PrevY)>_GetHeightSpace(WORLD.二次元空間)/2 then LenY=_GetHeightSpace(WORLD.二次元空間)-abs(My.Y-My.PrevY) end if if LenX==0 and LenY==0 then if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then WORLD.二次元空間.研究深度(My.X,My.Y)=WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力 My.生成論文流行性=My.生成論文流行性+1 My.生成論文パラダイム性=My.生成論文パラダイム性+My.研究掘削力 My.研究しないステップのカウンタ=0 else My.研究しないステップのカウンタ=My.研究しないステップのカウンタ+1 end if else if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then WORLD.二次元空間.研究深度(My.X,My.Y)=WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力/CDbl((LenX^2+LenY^2)^0.5) My.生成論文流行性=My.生成論文流行性+CDbl(LenX^2+LenY^2)^0.5 My.生成論文パラダイム性=My.生成論文パラダイム性+My.研究掘削力/CDbl((LenX^2+LenY^2)^0.5) My.研究しないステップのカウンタ=0 else My.研究しないステップのカウンタ=My.研究しないステップのカウンタ+1 end if end if if My.研究しないステップのカウンタ>=World.研究しないステップのカウンタ許容上限 then if World.ネタ枯渇死亡時の補充==1 then 欠員補充(1) end if My.生死=0 World.PROFESSOR_1現員数=World.PROFESSOR_1現員数-1 World.PROFESSOR_1退官数=World.PROFESSOR_1退官数+1 _KillAgent (My) goto endflag end if My.自力開発愛着性(My.X,My.Y)=My.自力開発愛着性(My.X,My.Y)+World.自力開発愛着性増分 My.パラダイム魅力(My.X,My.Y)=100+My.自力開発愛着性(My.X,My.Y)-WORLD.二次元空間.研究深度(My.X,My.Y) My.PrevX=My.X My.PrevY=My.Y // For i=0 to _GetWidthSpace(WORLD.二次元空間)-1 // For j=0 to _GetHeightSpace(WORLD.二次元空間)-1 // WORLD.二次元空間.パラダイム魅力仮変数(i,j)=My.パラダイム魅力(i,j) // next j // next i // _MoveToRichValue (My.X, My.Y,My.分野移動力, WORLD.二次元空間.パラダイム魅力仮変数,False) // _MoveToRichValue (My.X, My.Y,My.分野移動力, WORLD.二次元空間.PROFESSOR_1.パラダイム魅力,False) if My.研究しないステップのカウンタ>0 then imove=0 preflag: imove=imove+1 if imove>My.分野移動力 then goto endflag end if 移動(1) if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then goto endflag else goto preflag end if end if endflag: } #end_rule WORLD.二次元空間.PROFESSOR_1 //------------------ エージェントルール --------------- #begin_rule WORLD.二次元空間.PROFESSOR_2 Agt_Init{ } Agt_Step{ //ステップごとのエージェントの動き //変数定義 Dim obj as Object dim i as integer dim j as integer dim LenX as Integer dim LenY as Integer dim imove as Integer //論文投稿 if _GetCountStep()-My.前回投稿ステップ数>My.投稿間隔+(CInt((Rnd()*7))-3) then 論文投稿(2) My.前回投稿ステップ数=_GetCountStep() My.生成論文流行性=0 My.生成論文パラダイム性=0 end if My.年齢=My.年齢+CDbl(1)/CDbl(12) if My.年齢>=World.停年 then // if World.定員制限なし ==0 then 欠員補充(2) // World.PROFESSOR_2現員数=World.PROFESSOR_2現員数+1 // World.PROFESSOR_2新生数=World.PROFESSOR_2新生数+1 // end if My.生死=0 World.PROFESSOR_2現員数=World.PROFESSOR_2現員数-1 World.PROFESSOR_2退官数=World.PROFESSOR_2退官数+1 _KillAgent (My) goto endflag end if LenX=My.X-My.PrevX if abs(My.X-My.PrevX)>_GetWidthSpace(WORLD.二次元空間)/2 then LenX=_GetWidthSpace(WORLD.二次元空間)-abs(My.X-My.PrevX) end if LenY=My.Y-My.PrevY if abs(My.Y-My.PrevY)>_GetHeightSpace(WORLD.二次元空間)/2 then LenY=_GetHeightSpace(WORLD.二次元空間)-abs(My.Y-My.PrevY) end if if LenX==0 and LenY==0 then if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then WORLD.二次元空間.研究深度(My.X,My.Y)=WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力 My.生成論文流行性=My.生成論文流行性+1 My.生成論文パラダイム性=My.生成論文パラダイム性+My.研究掘削力 My.研究しないステップのカウンタ=0 else My.研究しないステップのカウンタ=My.研究しないステップのカウンタ+1 end if else if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then WORLD.二次元空間.研究深度(My.X,My.Y)=WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力/CDbl((LenX^2+LenY^2)^0.5) My.生成論文流行性=My.生成論文流行性+CDbl(LenX^2+LenY^2)^0.5 My.生成論文パラダイム性=My.生成論文パラダイム性+My.研究掘削力/CDbl((LenX^2+LenY^2)^0.5) My.研究しないステップのカウンタ=0 else My.研究しないステップのカウンタ=My.研究しないステップのカウンタ+1 end if end if if My.研究しないステップのカウンタ>=World.研究しないステップのカウンタ許容上限 then if World.ネタ枯渇死亡時の補充==1 then 欠員補充(2) end if My.生死=0 World.PROFESSOR_2現員数=World.PROFESSOR_2現員数-1 World.PROFESSOR_2退官数=World.PROFESSOR_2退官数+1 _KillAgent (My) goto endflag end if My.PrevX=My.X My.PrevY=My.Y _MoveToRichValue (My.X, My.Y,My.分野移動力, World.二次元空間.穴の大きさ,False) if My.研究しないステップのカウンタ>0 then imove=0 preflag: imove=imove+1 if imove>My.分野移動力 then goto endflag end if 移動(1) if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then goto endflag else goto preflag end if end if endflag: } #end_rule WORLD.二次元空間.PROFESSOR_2 //------------------ エージェントルール --------------- #begin_rule WORLD.二次元空間.PROFESSOR_3 Agt_Init{ } Agt_Step{ //ステップごとのエージェントの動き //変数定義 Dim obj as Object dim i as integer dim j as integer dim LenX as Integer dim LenY as Integer dim imove as Integer //論文投稿 if _GetCountStep()-My.前回投稿ステップ数>My.投稿間隔+(CInt((Rnd()*7))-3) then 論文投稿(3) My.前回投稿ステップ数=_GetCountStep() My.生成論文流行性=0 My.生成論文パラダイム性=0 end if My.年齢=My.年齢+CDbl(1)/CDbl(12) if My.年齢>=World.停年 then // if World.定員制限なし ==0 then 欠員補充(3) // World.PROFESSOR_3現員数=World.PROFESSOR_3現員数+1 // World.PROFESSOR_3新生数=World.PROFESSOR_3新生数+1 // end if My.生死=0 World.PROFESSOR_3現員数=World.PROFESSOR_3現員数-1 World.PROFESSOR_3退官数=World.PROFESSOR_3退官数+1 _KillAgent (My) goto endflag end if LenX=My.X-My.PrevX if abs(My.X-My.PrevX)>_GetWidthSpace(WORLD.二次元空間)/2 then LenX=_GetWidthSpace(WORLD.二次元空間)-abs(My.X-My.PrevX) end if LenY=My.Y-My.PrevY if abs(My.Y-My.PrevY)>_GetHeightSpace(WORLD.二次元空間)/2 then LenY=_GetHeightSpace(WORLD.二次元空間)-abs(My.Y-My.PrevY) end if if LenX==0 and LenY==0 then if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then WORLD.二次元空間.研究深度(My.X,My.Y)=WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力 My.生成論文流行性=My.生成論文流行性+1 My.生成論文パラダイム性=My.生成論文パラダイム性+My.研究掘削力 My.研究しないステップのカウンタ=0 else My.研究しないステップのカウンタ=My.研究しないステップのカウンタ+1 end if else if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then WORLD.二次元空間.研究深度(My.X,My.Y)=WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力/CDbl((LenX^2+LenY^2)^0.5) My.生成論文流行性=My.生成論文流行性+CDbl(LenX^2+LenY^2)^0.5 My.生成論文パラダイム性=My.生成論文パラダイム性+My.研究掘削力/CDbl((LenX^2+LenY^2)^0.5) My.研究しないステップのカウンタ=0 else My.研究しないステップのカウンタ=My.研究しないステップのカウンタ+1 end if end if if My.研究しないステップのカウンタ>=World.研究しないステップのカウンタ許容上限 then if World.ネタ枯渇死亡時の補充==1 then 欠員補充(3) end if My.生死=0 World.PROFESSOR_3現員数=World.PROFESSOR_3現員数-1 World.PROFESSOR_3退官数=World.PROFESSOR_3退官数+1 _KillAgent (My) goto endflag end if My.PrevX=My.X My.PrevY=My.Y _MoveToRichValue (My.X, My.Y,My.分野移動力, World.二次元空間.研究深度限界までの残部,False) if My.研究しないステップのカウンタ>0 then imove=0 preflag: imove=imove+1 if imove>My.分野移動力 then goto endflag end if 移動(1) if WORLD.二次元空間.研究深度(My.X,My.Y)+My.研究掘削力<=World.研究深度限界 then goto endflag else goto preflag end if end if endflag: } #end_rule WORLD.二次元空間.PROFESSOR_3 //------------------ エージェントルール --------------- #begin_rule WORLD.二次元空間.パラダイム Agt_Init{ } Agt_Step{ dim i as Integer dim j as Integer if World.研究進行度>World.パラダイムシフト発生下限研究深度 and (World.研究深度限界-World.二次元空間.研究深度(My.X,My.Y))/World.研究深度限界<0.1 then For i=0 to _GetWidthSpace(World.二次元空間)-1 For j=0 to _GetHeightSpace(World.二次元空間)-1 World.二次元空間.研究深度(i,j)=0 next j next i World.パラダイムの明示=0 _KillAgent (My) end if } #end_rule WORLD.二次元空間.パラダイム //------------------ エージェントルール --------------- #begin_rule WORLD.論文.投稿論文 Agt_Init{ } Agt_Step{ } #end_rule WORLD.論文.投稿論文 //------------------ シミュレーション設定部 --------------- SINGLE_SIMULATION { STEP_MAX = 0; TIME_MAX = 0; END_CONDITION = ""; EXEC_WAIT = 0; EXEC_ORDER = RANDOM; RANDOM_SEED = 0; LOG_FILE = "",FIXED,OVERWRITE,0; } //------------------ ループ設定部 --------------- REPEAT_SIMULATION { VALUE_CHANGE = NONE; REPEAT_MAX = 1; VARIABLES = ""; START_VALUE = 0.000000; STEP_VALUE = 1.000000; END_VALUE = 1.000000; EXEC_TIMES_SAME = 1; RANDOM_RANGE = 0.000000, 1.000000; SAME_VALUE = YES; EXEC_TIMES_DIFFERENT = 1; } //------------------ 二次元マップ表示出力設定部 --------------- MAP_OUTPUT { MAP_SPACE_NAME = "WORLD.二次元空間"; MAP_NAME = "研究深度"; TITLE = "研究深度"; AXIS_LABEL = "", ""; DRAW_RANGE = 0, 0, 49, 49; RULED_LINE = NO; REMARKS = YES; SPACE_KIND = SQUARE_2D; BG_PICT = NO; BG_TYPE = 0; BG_VAR_NAME = ""; BG_FILE_NAME = ""; DISABLE = NO; POSITION_X = 28; POSITION_Y = 66; SIZE_X = 498; SIZE_Y = 318; OUTPUT { MAP_ELEMENT_NAME = "研究深度"; MAP_ELEMENT = SPACE_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.研究深度"; SPACE_DRAW_RANGE = 0.000000, 100.000000; SPACE_COLOR_MIN = 0,255,255; SPACE_COLOR_MAX = 255,255,255; AGENT_COLOR = 255,0,0; MARKER_ID = 0; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } OUTPUT { MAP_ELEMENT_NAME = "パラダイム"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.パラダイム"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 255,255,0; AGENT_COLOR = 0,0,0; MARKER_ID = 0; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } OUTPUT { MAP_ELEMENT_NAME = "Professor 1"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.PROFESSOR_1"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,0,255; AGENT_COLOR = 64,128,0; MARKER_ID = 1; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } OUTPUT { MAP_ELEMENT_NAME = "Professor 2"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.PROFESSOR_2"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,255,0; AGENT_COLOR = 0,128,255; MARKER_ID = 1; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } OUTPUT { MAP_ELEMENT_NAME = "Professor 3"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.PROFESSOR_3"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 255,0,255; AGENT_COLOR = 128,0,128; MARKER_ID = 1; ICON_TYPE = 1819438935; ICON_VAR_NAME = "d.PROFESSOR_1新生数+1 "; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } } //------------------ 二次元マップ表示出力設定部 --------------- MAP_OUTPUT { MAP_SPACE_NAME = "WORLD.二次元空間"; MAP_NAME = "研究流行"; TITLE = "研究流行"; AXIS_LABEL = "", ""; DRAW_RANGE = 0, 0, 49, 49; RULED_LINE = NO; REMARKS = YES; SPACE_KIND = SQUARE_2D; BG_PICT = NO; BG_TYPE = 0; BG_VAR_NAME = ""; BG_FILE_NAME = ""; DISABLE = YES; POSITION_X = 599; POSITION_Y = 189; SIZE_X = 499; SIZE_Y = 320; OUTPUT { MAP_ELEMENT_NAME = "研究流行"; MAP_ELEMENT = SPACE_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.研究流行"; SPACE_DRAW_RANGE = 0.000000, 10.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 255,128,0; AGENT_COLOR = 0,0,255; MARKER_ID = 0; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } OUTPUT { MAP_ELEMENT_NAME = "Professor 1"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.PROFESSOR_1"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 255,0,0; AGENT_COLOR = 0,128,0; MARKER_ID = 1; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } OUTPUT { MAP_ELEMENT_NAME = "Professor 2"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.PROFESSOR_2"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,255,0; AGENT_COLOR = 0,128,255; MARKER_ID = 1; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "人口推移"; TITLE = "人口推移"; AXIS_LABEL = "経過ステップ", "人数"; SCALE = 0.000000, 0.000000, 1000.000000, 500.000000, 12.000000, 50.000000; REMARKS = YES; DISABLE = NO; POSITION_X = 442; POSITION_Y = 296; SIZE_X = 600; SIZE_Y = 334; OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1現員数"; LINE_COLOR = 0,0,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1現員数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2現員数"; LINE_COLOR = 255,0,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2現員数 "; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3現員数"; LINE_COLOR = 64,0,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "WORLD.PROFESSOR_3現員数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1新生数"; LINE_COLOR = 0,255,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1新生数 "; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2新生数"; LINE_COLOR = 255,0,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2新生数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3新生数"; LINE_COLOR = 0,64,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_3新生数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1退官数"; LINE_COLOR = 255,255,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1退官数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2退官数"; LINE_COLOR = 0,255,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2退官数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3退官数"; LINE_COLOR = 255,128,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_3退官数"; } OUTPUT { GRAPH_ELEMENT_NAME = "合計数"; LINE_COLOR = 0,0,0; LINE_WIDTH = 2; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1現員数+World.PROFESSOR_2現員数+World.PROFESSOR_3現員数"; } } //------------------ 二次元マップ表示出力設定部 --------------- MAP_OUTPUT { MAP_SPACE_NAME = "WORLD.論文"; MAP_NAME = "採用論文数"; TITLE = "採用論文数"; AXIS_LABEL = "", ""; DRAW_RANGE = 0, 0, 49, 49; RULED_LINE = NO; REMARKS = YES; SPACE_KIND = SQUARE_2D; BG_PICT = NO; BG_TYPE = 0; BG_VAR_NAME = ""; BG_FILE_NAME = ""; DISABLE = NO; POSITION_X = -40; POSITION_Y = 369; SIZE_X = 304; SIZE_Y = 248; OUTPUT { MAP_ELEMENT_NAME = "採用論文数"; MAP_ELEMENT = SPACE_VARIABLE; OUTPUT_EXPRESSION = "WORLD.論文.採用論文数"; SPACE_DRAW_RANGE = 0.000000, 50.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,0,255; AGENT_COLOR = 0,0,255; MARKER_ID = 0; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } } //------------------ 二次元マップ表示出力設定部 --------------- MAP_OUTPUT { MAP_SPACE_NAME = "WORLD.論文"; MAP_NAME = "採用論文流行性平均値"; TITLE = "採用論文流行性平均値"; AXIS_LABEL = "", ""; DRAW_RANGE = 0, 0, 49, 49; RULED_LINE = NO; REMARKS = YES; SPACE_KIND = SQUARE_2D; BG_PICT = NO; BG_TYPE = 0; BG_VAR_NAME = ""; BG_FILE_NAME = ""; DISABLE = NO; POSITION_X = 520; POSITION_Y = 395; SIZE_X = 298; SIZE_Y = 250; OUTPUT { MAP_ELEMENT_NAME = "採用論文数"; MAP_ELEMENT = SPACE_VARIABLE; OUTPUT_EXPRESSION = "WORLD.論文.採用論文数"; SPACE_DRAW_RANGE = 0.000000, 50.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,0,0; AGENT_COLOR = 0,0,255; MARKER_ID = 0; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } } //------------------ 二次元マップ表示出力設定部 --------------- MAP_OUTPUT { MAP_SPACE_NAME = "WORLD.論文"; MAP_NAME = "採用論文パラダイム性平均値"; TITLE = "採用論文パラダイム性平均値"; AXIS_LABEL = "", ""; DRAW_RANGE = 0, 0, 49, 49; RULED_LINE = NO; REMARKS = YES; SPACE_KIND = SQUARE_2D; BG_PICT = NO; BG_TYPE = 0; BG_VAR_NAME = ""; BG_FILE_NAME = ""; DISABLE = NO; POSITION_X = 261; POSITION_Y = 398; SIZE_X = 294; SIZE_Y = 246; OUTPUT { MAP_ELEMENT_NAME = "採用論文数"; MAP_ELEMENT = SPACE_VARIABLE; OUTPUT_EXPRESSION = "WORLD.論文.採用論文数"; SPACE_DRAW_RANGE = 0.000000, 50.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,0,0; AGENT_COLOR = 0,0,255; MARKER_ID = 0; ICON_TYPE = 0; ICON_VAR_NAME = ""; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "採用論文数"; TITLE = "採用論文数"; AXIS_LABEL = "経過ステップ", ""; SCALE = 0.000000, 0.000000, 1000.000000, 100.000000, 12.000000, 10.000000; REMARKS = YES; DISABLE = NO; POSITION_X = 344; POSITION_Y = 152; SIZE_X = 594; SIZE_Y = 269; OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1採用論文数"; LINE_COLOR = 0,128,0; LINE_WIDTH = 3; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1採用論文数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2採用論文数"; LINE_COLOR = 0,128,255; LINE_WIDTH = 3; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2採用論文数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3採用論文数"; LINE_COLOR = 64,0,128; LINE_WIDTH = 3; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_3採用論文数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1不採用論文数"; LINE_COLOR = 0,128,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1不採用論文数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2不採用論文数"; LINE_COLOR = 0,128,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2不採用論文数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3不採用論文数"; LINE_COLOR = 64,0,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_3不採用論文数"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "採用論文流行性平均値"; TITLE = "採用論文流行性平均値"; AXIS_LABEL = "経過ステップ", ""; SCALE = 0.000000, 0.000000, 1000.000000, 100.000000, 12.000000, 10.000000; REMARKS = YES; DISABLE = NO; POSITION_X = 336; POSITION_Y = -7; SIZE_X = 513; SIZE_Y = 279; OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1"; LINE_COLOR = 0,128,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1採用論文流行性平均値"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2"; LINE_COLOR = 0,128,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2採用論文流行性平均値"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3"; LINE_COLOR = 64,0,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_3採用論文流行性平均値"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "採用論文パラダイム性平均値"; TITLE = "採用論文パラダイム性平均値"; AXIS_LABEL = "経過ステップ", ""; SCALE = 0.000000, 0.000000, 1000.000000, 20.000000, 12.000000, 10.000000; REMARKS = YES; DISABLE = NO; POSITION_X = 341; POSITION_Y = 225; SIZE_X = 509; SIZE_Y = 274; OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1"; LINE_COLOR = 0,128,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1採用論文パラダイム性平均値"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2"; LINE_COLOR = 0,128,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2採用論文パラダイム性平均値"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3"; LINE_COLOR = 64,0,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_3採用論文パラダイム性平均値"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "一人当たり採用論文数"; TITLE = "一人当たり採用論文数"; AXIS_LABEL = "", ""; SCALE = 0.000000, 0.000000, 1000.000000, 5.000000, 12.000000, 5.000000; REMARKS = YES; DISABLE = NO; POSITION_X = 345; POSITION_Y = 465; SIZE_X = 398; SIZE_Y = 203; OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1"; LINE_COLOR = 0,128,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1一人当たり採用論文数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2"; LINE_COLOR = 0,128,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2一人当たり採用論文数"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3"; LINE_COLOR = 64,0,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_3一人当たり採用論文数"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "投稿間隔"; TITLE = "投稿間隔"; AXIS_LABEL = "", ""; SCALE = 0.000000, 0.000000, 1000.000000, 15.000000, 0.000000, 5.000000; REMARKS = YES; DISABLE = NO; POSITION_X = 243; POSITION_Y = 185; SIZE_X = 408; SIZE_Y = 220; OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_1投稿間隔"; LINE_COLOR = 0,128,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_1投稿間隔"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_2投稿間隔"; LINE_COLOR = 0,128,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_2投稿間隔"; } OUTPUT { GRAPH_ELEMENT_NAME = "PROFESSOR_3投稿間隔"; LINE_COLOR = 64,0,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.PROFESSOR_3投稿間隔"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "研究進行度"; TITLE = "研究進行度"; AXIS_LABEL = "", "研究進行度[%]"; SCALE = 0.000000, 0.000000, 1000.000000, 100.000000, 12.000000, 10.000000; REMARKS = YES; DISABLE = NO; POSITION_X = -1; POSITION_Y = 402; SIZE_X = 491; SIZE_Y = 253; OUTPUT { GRAPH_ELEMENT_NAME = "研究進行度"; LINE_COLOR = 0,0,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.研究進行度"; } } //------------------ 二次元マップ表示出力設定部 --------------- MAP_OUTPUT { MAP_SPACE_NAME = "WORLD.二次元空間"; MAP_NAME = "二次元表示マップ_1"; TITLE = "二次元空間"; AXIS_LABEL = "", ""; DRAW_RANGE = 0, 0, 49, 49; RULED_LINE = NO; REMARKS = YES; SPACE_KIND = SQUARE_2D; BG_PICT = NO; BG_TYPE = 0; BG_VAR_NAME = ""; BG_FILE_NAME = ""; DISABLE = YES; POSITION_X = 496; POSITION_Y = 321; SIZE_X = 410; SIZE_Y = 273; OUTPUT { MAP_ELEMENT_NAME = "要素_1"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.パラダイム"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,0,255; AGENT_COLOR = 0,0,255; MARKER_ID = 1; ICON_TYPE = 168636715; ICON_VAR_NAME = "// World.PROFESSOR_3新生数=World.PROFESSOR_3新生数+1 "; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } } //------------------ 数値画面出力設定部 --------------- NUMERIC_OUTPUT { NUMERIC_NAME = "数値画面出力_1"; TITLE = ""; DISABLE = YES; POSITION_X = 864; POSITION_Y = 473; SIZE_X = 112; SIZE_Y = 253; OUTPUT { OUTPUT_ELEMENT_NAME = "要素_1"; FIGURES = 0; FORMAT_ID = 180; OUTPUT_EXPRESSION = "World.パラダイムの明示"; } OUTPUT { OUTPUT_ELEMENT_NAME = "要素_2"; FIGURES = 0; FORMAT_ID = 180; OUTPUT_EXPRESSION = "World.研究進行度"; } } //------------------ コントロールパネルデータ設定部 --------------- CONTROL_PANEL { PANEL_ITEM { ITEM_NAME = "Number of Professor_1"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.NUM_PROFESSOR_1; CONTROL_ON = NO; CONTROL_ON_INT = 1; CONTROL_ON_DOUBLE = 0.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 10; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 10.000000; } PANEL_ITEM { ITEM_NAME = "Number of Professor_2"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.NUM_PROFESSOR_2; CONTROL_ON = NO; CONTROL_ON_INT = 1; CONTROL_ON_DOUBLE = 0.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 10; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 10.000000; } PANEL_ITEM { ITEM_NAME = "Number of Professor_3"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.NUM_PROFESSOR_3; CONTROL_ON = NO; CONTROL_ON_INT = 1; CONTROL_ON_DOUBLE = 0.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 10; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 10.000000; } PANEL_ITEM { ITEM_NAME = "査読甘さ(0=strict/1=free)"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.査読の甘さ; CONTROL_ON = NO; CONTROL_ON_INT = 0; CONTROL_ON_DOUBLE = 1.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 10; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 0.100000; } PANEL_ITEM { ITEM_NAME = "ネタ枯渇死亡時の補充"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.ネタ枯渇死亡時の補充; CONTROL_ON = NO; CONTROL_ON_INT = 1; CONTROL_ON_DOUBLE = 0.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 1; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 1.000000; } PANEL_ITEM { ITEM_NAME = "パラダイムシフト発生下限"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.パラダイムシフト発生下限研究深度; CONTROL_ON = NO; CONTROL_ON_INT = 0; CONTROL_ON_DOUBLE = 1.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 10; SLIDER_VALUE_MIN = 50.000000; SLIDER_VALUE_STEP = 5.000000; } } //------------------ 説明用HTMLテキスト --------------- //------------------ 空間初期値データ設定部 --------------- SPACE_INITIAL { } //------------------ レポート出力情報設定部 --------------- REPORT_INFO { REPORT_NAME = ""; FIELD_DELIMITER = " "; } //------------------ その他のデータ設定部 --------------- OTHERS_DATA { INDENT = 1; FONT_NAME = "MS ゴシック"; FONT_WIDTH = 0; FONT_HEIGHT = -13; FONT_WEIGHT = 200; FONT_ITALIC = 0; FONT_CHARSET = 128; WINDOW_HIDE_RUN = 0; POSITION_X = 0; POSITION_Y = 0; SIZE_X = 0; SIZE_Y = 0; } //------------------ 再生用ログデータ ---------------