F&Q

よくあるご質問

artisocに関してよくあるご質問をまとめました。

artisoc - インストール・環境設定

環境変数の定義の方法(WindowsXPの場合)

スタートメニューの[設定]-[コントロールパネル]-[システム]をクリックします。[詳細設定]タブの[環境変数(N)]ボタンをクリックします。 [システム環境変数(S)]の変数「Path」を選択して[編集]ボタンをクリックします。変数値に「;(Javaインストールフォルダ)\\bin」を末尾に追加します。

WindowsXP上にNetBeansをインストールして、artisocが起動しないとき

Path設定に「(NetBeansのインストールフォルダ)\\\\bin」だけでなく、「(J2SDKのインストールフォルダ)\\\\bin」も追加してください。

Javaインストーラが途中で落ちるとき(Windows2000/XP以外の場合)

「NetBeans」のインストーラをダウンロードした可能性があります。「NetBeans」はWindows2000/XPのみに対応したIDE(統合開発環境)です。「Download J2SE SDK」のリンクにありますJava2 Platform, Standard Edition 5.0もしくは1.4.2のインスーラをダウンロードしてください。

USBセキュリティキーの最新ドライバを取得したいとき

Aladdin社の下記HASP Driverのダウンロードページより最新版を取得することができます。

HASP Driverのダウンロードページ
https://sentinelcustomer.gemalto.com/sentineldownloads/

Sentinel HASP/LDK - Windows GUI Run-time Installer
から次のページで、I accept
さらに、その次で、Click here to download file (browser pop-ups must be allowed): DOW0002510
をクリックすると入手できます。

ソフトウェアアップデート後にartisocが起動しないとき(MacOS Xの場合)

MacOS X v10.3.9 Updateを実行後にartisocが動作しないことがあります。これはMacOS Xの問題のため、下記のホームページを参照の上、更新処理を行ってください。

http://docs.info.apple.com/article.html?artnum=301380-ja

setup.exeを実行したときにエラーメッセージが表示される(Windowsの場合)

「MSIEXC.EXEファイルがリンクしているエクスポートMSIDLL:222は見つかりません」と表示される場合は、Windows Updateの重要な更新を全てインストールしてください。

Windows 7対応について

Windows7上でartisocを動作させるためには、Windows7対応のUSBキードライバーをインストール必要があります。

該当ドライバは、下記よりダウンロードできます。
http://www.aladdin.com/support/hasp/enduser.aspx

※ 「Sentinel HASP/LDK Windows GUI Run-time Installer」をダウンロードし、解凍後、HASPUserSetup.exeからインストールを行ってください。

artisocVer.2.5以降のアップデート方法について

artisoc2.5以降のバージョンでは、artisoc上からアップデートの確認および更新バージョンのダウンロードを行うことができます。

(0)お使いのartisocを起動します。(インターネットに接続されている必要があります)
(1)「ヘルプ」メニュー⇒バージョン情報を選択します。
(2)バージョン情報ダイアログの「更新を確認」ボタンを押下します。



(3)更新版がある場合にはダウンロードの確認ダイアログが表示されます。
※更新がない場合には「最新バージョンです」と表示されます。
※何もダイアログが表示されない場合は、お使いのネットワーク環境からダウンロードができない可能性がございます。もし、ダウンロードできない場合にはMASサポートまでご連絡をお願いします。

(4)更新版がある場合にはダウンロード先となるフォルダを選択し、ダウンロードを開始します。(ダウンロードには、しばらく時間がかかります)

(5)ダウンロードが完了したら「ダウンロードが完了しました」とダイアログが表示されます。

(6)artisocを終了させて、過去のartisocをアンインストールします。
  ※Windowsの場合、「スタートメニュー」⇒「コントロールパネル」⇒「プログラムの追加と削除」から過去にインストールされたartisocを削除します。

(7) (4)でダウンロードしたインストーラを起動し、指示に従ってインストールを行います。

artisoc MacOSX版起動時に「このアプリは壊れているため開けません」とエラーが表示され起動できない

以下のような対策が考えられます。

(1)デスクトップに置いて起動をする
フォルダの権限の問題でアクセスできない事がございます。
アプリケーションフォルダからデスクトップに置いて、起動をご確認ください。

(2)一時的にGatekeeperの設定を「すべてのアプリケーションを許可」に変更する
artisoc.appの起動時に限りGatekeeper機能をオフにします。
「ダウンロードしたアプリケーションの実行許可」の設定にて、「すべてのアプリケーションを許可」を選択してください。
手順は下記ホームページを参照ください。
http://support.apple.com/kb/HT5290?viewlocale=ja_JP

artisocVer.2.0以前のアップデート方法について

artisoc2.0以前のバージョンをお使いの方は、構造計画研究所 artisocサポート担当から差し上げた、アップデートのお知らせのメール通りに、最新のインストーラのダウンロード及びインストールをお願いいたします。
メールを紛失された方は、お名前、現在お使いのartisocのバージョンと合わせて、MASサポートまでお問い合わせください。

artisocを実行時に「Cound not create the Java virtual machine.」とエラーが表示され起動できない

artisocを起動するために必要なJavaがインストールされていない可能性があります。
パッケージ同梱のJavaのインストーラを利用してインストールするか、下記のサイトよりお使いの環境に応じたJavaをダウンロードして、インストールしてください。
http://www.java.com/ja/download/manual.jsp

なお、artisoc 3.0の64bit版をインストールする際には64bit版のJavaが必要となります。

起動時に「This version is not 64bit」とメッセージが表示される

・お使いのPC環境が64bit環境にも関わらず32bit版のartisocをインストール・実行した際にこのエラーが表示されます。64bit版のartisocをインストールしてください。

起動時に「This version is not 32bit」とメッセージが表示される

・お使いのPC環境が32bit環境にも関わらず64bit版のartisocをインストール・実行した際にこのエラーが表示されます。32bit版のartisocをインストールしてください。
・お使いのPC環境が64bit環境で64bit版のartisocをインストール・実行した際にこのエラーが表示される場合には、64bit版のJAVA(jre-6u25-windows-x64)がインストールされていない可能性がございます。64bit版のJAVAがインストールされているかご確認ください。

起動時に「Please put a protection key.Retry?」とメッセージが表示される

・USBキーがお使いのPCに挿入されていない可能性がございます。正しくUSBキーが挿入されているかご確認ください。
・USBキーが挿入されているにも関わらず表示される場合には、USBキーを認識するドライバ(Sentinel_HASP_Run-time)が正しくインストールされていない可能性がございます。ドライバがインストールされているかご確認ください。

win7(32bit)においてartisocを起動時に「Cound not create the Java virtual machine.」とエラーが表示され起動できない

artisoc実行に必要なメモリ容量が不足している可能性があります。
Javaのバージョンが1.7の環境下にて生じる問題であることが分かっております。

解決策としては、以下の通りです。
・Java1.7をアンインストールしJava1.6をインストールする
・メモリを大量に使用する処理を終了する

Windows 8から8.1へのアップグレードの対応について

Windows8から8.1にアップグレードの時に「Sentinel Runtaime Driversをアンインストールしてください」とエラーが表示する場合がございます。その際は、Sentinel Runtaime Driversをアンインストールし、Windows 8.1にアップグレードした後、Windows 8.1対応のUSBキードライバーをインストールする必要があります。

該当ドライバは、下記よりダウンロードできます。
http://www.aladdin.com/support/hasp/enduser.aspx

※ 上記ホームページの「Sentinel HASP/LDK Windows GUI Run-time Installer」をダウンロードし、解凍後、HASPUserSetup.exeからインストールを行ってください。

Mac OS X 10.10(Yosemite)対応について

Mac OS X 10.10(Yosemite)でartisocをお使いになる前に、Javaをインストールする必要がございます。以下の手順に従い、インストール作業を実施してください。

(1) artisoc.appをダブルクリックすると下記のダイアログが表示されます。


(2) 「詳しい情報ボタン...」を押下すると、Java for OS XのWEBページが表示されます。


(3) 「download」をクリックし、Javaのインストーラをダウンロードしてください。

ダウンロードしたファイル「JavaForOSX2014-001.dmg」を開き、指示に従ってインストールしてください。

(4) インストール後、artisoc.appをダブルクリックするとartisocが起動します。

artisoc - 出力設定

出力設定画面で出力項目が追加できない

artisoc1.0において、Javaとの互換性の問題により発生する現象です。
お使いのartisocの種類により対処法が異なります。

⇒artisoc textbook版をお使いの方
下記URLに必要事項を記入し、最新版のartisoc textbook版をダウンロード及びインストールしてください
https://kke.smartseminar.jp/public/application/add/136

⇒artisoc academic 及び professional版をお使いの方
恐れ入りますが、ご購入者または契約時の責任者のお名前と、ご使用されているartisocのバージョン情報を添えて、下記アドレスまでお問い合わせ下さい
問合せ先:mas-support@kke.co.jp

artisoc - 組込み関数

「エージェントID」と「UniqueID」の違い

「エージェントID」と「UniqueID」は、どちらもエージェントを識別するIDですが、
割り当てられるIDは異なります。

「エージェントID」は、シミュレーション内で、あるエージェントが削除された後、
新しいエージェントが発生した場合、エージェントIDは使いまわされます。例えば、エージェントID=0が削除された後、新しいエージェントを発生した場合、そのエージェントIDは0となることがあります。

一方で、UniqueIDは使い回されることはなく、シミュレーション内で唯一のIDとなります。シミュレーション内でエージェントを削除され新しいエージェントが発生するようなモデルの場合は、UniqueIDを使った方が後からの結果分析やコードのデバッグが簡単です。

「KillAgt」、「DelAgt」、「TerminateAgt」の違い

◆「KillAgt」◆
【削除方法】
 エージェントにkillフラグを立てる。killフラグを立てられたエージェントは、ステップ終了時に全て削除される。
【使用時の注意】
 エージェントが削除されるのはステップ終了時なので、「KillAgt」を実行したステップ内では「CountAgt」関数実行時に「KillAgt」が実行されたエージェントもカウントされます。削除されないエージェントのみを数えたい場合は「CountAliveAgt」関数をお使いください。
 「KillAgt」では、エージェント型変数(以下Agt)やエージェント集合型変数(以下AgtSet)に「KillAgt」が実行されたエージェントが格納されていても、その内容を更新しないため、「KillAgt」によってエージェントが削除された後もAgt変数やAgtSet変数内に消されたはずのエージェントが格納されたままとして取り扱われます。従って、AgtSet変数内のエージェントを削除しても「CountAgtSet」実行時に取得できるエージェント数は減りませんし、居ないはずのエージェントを「GetAgt」で取得しようとするとエラーが発生します。
 「KillAgt」使用時は、削除するエージェントが格納されたAgt変数やAgtSet変数からエージェントを削除するか、「TerminateAgt」をお使いください。
【CPU負荷】 小


◆「DelAgt」◆
【削除方法】
 「DelAgt」が実行されると、エージェントはルール実行中でも即座に削除される。
【使用時の注意】
 エージェントは即座に削除されるので、「CountAgt」で正しいエージェント数が取得できます。
 Agt変数やAgtSet変数に関しては、「KillAgt」同様に更新を行いませんので、使用時は、削除するエージェントが格納されたAgt変数やAgtSet変数からエージェントを削除するか、「TerminateAgt」をお使いください。
【CPU負荷】 中


◆「TerminateAgt」◆
【削除方法】
 「TerminateAgt」が実行されると、エージェントはルール実行中でも即座に削除される。
【削除されたエージェントの情報】
 エージェントは即座に削除されるので、「CountAgt」で正しいエージェント数が取得できます。
 「TerminateAgt」では、実行時にAgt変数とAgtSet変数の内容を更新していきます。従って、「KillAgt」や「DelAgt」使用時のようにAgt変数やAgtSet変数からエージェントの情報を削除する必要は無く、「CountAgtSet」実行時に削除されたはずのエージェントがカウントされることはありません。

【CPU負荷】 大

「DelAgtSet2」と「RemoveAgt」の違い

DelAgtSet2とRemoveAgtは名前は違いますが、動作内容は一緒です。
お好きな方を使用して下さい。

artisoc

en「配列値に対して、演算はできません。」というエラーが出る

ルールエディタ上で、配列変数のインデックス指定が正しくされていない可能性があります。

たとえば、Aという変数の次元数を1に設定したとします。
(次元数は変数のプロパティで確認・編集することができます)
このとき、ルールエディタ上で
My.A
と書くのは誤りで、
My.A(0)
などと、整数でインデックス指定をする必要があります。
次元数を2に設定したならば、
My.A(0,1)
などと、インデックスを2つ指定する必要があります。

同様に、たとえばUniverseのルールエディタから空間Map上のHitoエージェントの変数Bを参照したいとします。
このとき、
Universe.Map.Hito.B
と書くのは誤りです。
なぜならどのHitoエージェントの変数を参照すべきか明記されていないからです。
正しくは、
Universe.Map.Hito(0).B
などと、インデックスとしてエージェントのID指定をします。
こう書くことで、IDが0番のHitoエージェントの変数を参照することができます。

「配列値に対して、演算はできません。」というエラーが出る

ルールエディタ上で、配列変数のインデックス指定が正しくされていない可能性があります。

たとえば、Aという変数の次元数を1に設定したとします。
(次元数は変数のプロパティで確認・編集することができます)
このとき、ルールエディタ上で
My.A
と書くのは誤りで、
My.A(0)
などと、整数でインデックス指定をする必要があります。
次元数を2に設定したならば、
My.A(0,1)
などと、インデックスを2つ指定する必要があります。

同様に、たとえばUniverseのルールエディタから空間Map上のHitoエージェントの変数Bを参照したいとします。
このとき、
Universe.Map.Hito.B
と書くのは誤りです。
なぜならどのHitoエージェントの変数を参照すべきか明記されていないからです。
正しくは、
Universe.Map.Hito(0).B
などと、インデックスとしてエージェントのID指定をします。
こう書くことで、IDが0番のHitoエージェントの変数を参照することができます。

実行速度を高速化する方法

【実行ウェイトを小さくする】
「設定」⇒「実行環境設定」の実行ウェイトを0と設定することで、実質モデルの処理速度での実行となります。

【表示の高速化】
マップやグラフにおいて表示要素が多い場合には、表示要素の多さに伴い実行速度が遅くなります。対応方法としては下記のようなものがあります。
・表示要素を絞り込む
・レンダリングを簡易化する(マップ画面設定ダイアログの「高速描画」を指定)
 - グラフの表示タイミングを数ステップ間隔とする
 - 画面出力を減らす(出力設定で非表示にする)

【処理の高速化】
ルールの効率化を行うことで実行速度を速くすることができます。
対応方法としては下記のようなものがあります。
・多数のエージェントを生成する場合は、CreateAgtMultiで一括して生成する。
・同一ステップでMakeAgt~を使って同じエージェントを集合を何度も作成している場合には、結果を変数に格納し、それを使いまわすようにする。
・コンソール画面への出力を極力控える
・エージェントの変数の履歴をできるだけ少なくする
・for文を可能な限り減らす工夫をする

生成可能な最大エージェント数は?

生成できる最大のエージェントの数は、2,147,483,647 となります。

大量のデータを初期値として設定するとき

変数の初期値を設定する場合、次の二通りの方法があります。

 1. 初期値設定画面から設定する
 2. Universeのルール(Univ_Init)で設定する。

 大量のデータを初期値として設定するときは後者の方法を利用し、Univ_Initでファイル入出力関数を利用して定義することをおすすめします。

 ファイル入出力のための手順については、サンプルモデルの「テキストファイル入出力モデル」を参考にしてください。

・サンプルモデルのページ
 http://mas.kke.co.jp/modules/mydownloads/

起動時に「MAS_Edition not defined in resource file.」と表示されるとき

このメッセージは言語設定が「日本語」もしくは「英語」に設定されていないときに表示されます。
次の操作で言語設定を変更して下さい。

・コントロールパネルを開く
・「地域と言語のオプション」を開く
・言語設定を「日本語」もしくは「英語」を選択する

なお、リソースファイルを追加することにより比較的容易に他の言語に対応できますので、artisoc@kke.co.jp までご相談ください。

Windows Vistaで動作させたいとき

 USBライセンスキーのドライバをバージョンアップをする必要があります。
 Aladdin社のドライバ更新ページを開き、

 http://www.aladdin.com/support/hasp/enduser.asp#latestDD

 「HASP Device Driver Downloads」

 にあります

 HASP HL Device Driver GUI Installation
 NEW! Supports Vista
 Win32/Win64
 HASP_HL_driver_setup.zip
 2.4 MB
 5.22
 01/2007
 
 をダウンロードし、インストールしてください。

SortAgtSetでエラーが出力されるとき

第2引数で指定したソートのキーとなる変数について、全ての変数の変数型が一致していないエラーとなりますのでご注意下さい。

KK-MASモデルをartisocモデルにコンバートする手順

1.KK-MAS(試用版でも可)とartisocを起動します。

2.KK-MASでモデルを開き、ツリーに登録されている
 エージェント、変数、空間を手動でartisocのツリーに定義します。
 ※ 空間のレイヤ数は1です。

3.KK-MASで定義しているエージェントのルールを
 artisocのエージェントにコピーし、次の変更を行います。

 ・WorldのルールとUniverseのルールの対応は次の通りです。
   Agt_Init → Univ_Init
   Agt_Step → Univ_Step_Begin
   (対応なし)Univ_Step_End
   (対応なし)Univ_Finish

 ・型宣言の変更
   World. → Universe.
   As Object → As Agt
   As Collection → As AgtSet
   As Agent → As AgtType

 ・関数名の変更(http://mas.kke.co.jp/cabinet/KK-MAS2artisoc_functions.pdf)
   _CountAgent → CountAgt
   _CreateAgent → CreateAgt
   _Forward → Forward
   _KillAgent → KillAgt
   _MoveToSpace → MoveToSpacePositionCell
   _SpecifyAgent → SpecifyAgtType
   _SpecifyKillAgent → SpecifyKillAgt
   _Turn → Turn
   _AddCollection → AddAgtSet
   _CopyCollection → CopyAgtSet
   _CountCollection → CountAgtSet
   _GetObject → GetAgt
   _GetCollectionEntry → GetAgtSetEntry
   _RemoveCollection → RemoveAgtSet
   _GetHeightSpace → GetHeightSpace
   _GetRideSpace → GetRideSpace
   _GetWidthSpace → GetWidthSpace
   _SpecifyLoop → SpecifyLoop
   _SpecifySpace → SpecifySpace
   _CloseFileCSV → CloseFileCSV
   _OpenFileCSV → OpenFileCSV
   _ReadFileCSV → ReadFileCSV
   _WriteFileCSV → WriteFileCSV
   _ExitSimulation → ExitSimulation
   _ExitSimulationMsg → ExitSimulationMsg
   _GetCountStep → GetCountStep
   _GetCountSimulationNumber → GetCountSimulationNumber
   _DebugStr → PrintLn
   _Shell → Shell
   _RadToDegree → RadToDegree
   _NormInv → NormInv
   _NormDist → NormDist

4.データ型変更関数を追加します。
  artisocでは、変数型のチェックを厳しく行っておりますので整数型と実数型の演算や比較等でエラーとなる場合は次の関数を利用して変数型を変更します。
  各関数の詳細については「help.pdf」に記述しております。 

  CBool : ブール型に変更する。
  CDbl : 実数型に変更する。
  CInt : 整数型に変更する。
  CLong : 長整数型に変更する。
  CStr : 文字列型に変更する。

  ※コレクション型については変更の必要はありません。

5.出力設定と実行環境設定を変更します。
  KK-MASのモデルの出力設定と実行環境設定をartisocのモデルに追加します。


6.共通ルールエディタにルールがある場合は、Universeのルールに
 追加し、各エージェントからは「@関数名」で呼び出します。
 ※共通ルールを外部ファイルにして読み込むこともできます。詳細については「help.pdf」の「インクルード文」をご確認下さい。

ログ再生時の外部ファイル(背景画像等)について

ログ保存はモデルのみDBに格納されますので、外部ファイル(背景画像等)がある場合はプログラムをインストールしたフォルダと同じフォルダにコピーすると表示されます。

[停止]ボタンを押してもシミュレーションが止まらない

artisocでは、実行エンジンと出力エンジンが並列で動いている関係で[停止]ボタンのリクエストが実行エンジンに伝わるまでに少々時間がかかる場合があります。しばらくお待ちください。

初期値設定とコントロールパネルの値の設定順番

初期値とコントロールパネルの値の関係ですが、値としてはまずは初期値が代入され、次にコントロールパネルの値が代入され、その後ルールが実行されます。

マップ出力におけるマーカーをファイル指定変数名で定義するときの注意

マップ出力において、マーカーをファイル指定変数名で定義するときは該当のエージェントに文字列型変数(その他の変数型では候補リストが表示されません)を追加して定義してください。

表示を滑らかにする方法

設定]-[実行環境設定]-[シミュレーション]タブのガーベージコレクション間隔を「1」に指定すると、1ステップ毎にガーベージコレクション(Javaのメモリの再配置)を行うため、見かけ上スムーズに動きます。但し、CPU負荷が高いためパフォーマンスがやや低下しますのであらかじめご了承ください。
ガーベージコレクション間隔に「0」を指定した場合は、ガーベージコレクションのタイミングがJavaにおまかせになり最高速で実行できます。

線引きエージェントでマップ画面が真っ白になった

マップ出力において、線引きで利用するエージェント集合型変数に不正なエージェント値が入っていると画面が真っ白になりますのでご確認ください。

コントロールパネルの設定の仕方

ユーザマニュアル(manual-ja.pdf)のp.2-32「2.2.4 コントロールパネル設定」をまずはご確認下さい。
[操作手順]
・Universeの直下に『変数』(整数型、実数型等)を定義します。
・設定メニューの「コントロールパネル設定」を選択します。
・「ユーザ設定項目リスト」ダイアログが表示されますので「追加」ボタンをクリックします。
・「ユーザ設定項目」ダイアログが表示されますので「設定対象」のプルダウンから先ほど定義した『変数』を選択すると、p.2-33にありますとインタフェースが表示されます。
・あとは、利用したいインタフェースを選択して「OK」ボタンをクリックしてください。

共通ライブラリ(*.inc)を利用するには

FunctionやSubで定義した関数を共通ライブラリファイル(*.inc)で保存してモデルと同じフォルダにコピーし、エージェントルールの先頭に「include "(インクルードファイル名)"」と記述すると、共通ライブラリとして利用できます。

String型変数のIf文(条件式)が思い通り動作しないとき

例えば「If strTest == "Red" Then」ではうまく思い通りの動作がしません。
「If StrComp(strTest,"Red") == 0 Then」のようにStrComp関数を使いましょう。