EvaluatorをDownloadして、次のコマンドで起動しようとしても、
C:\Users\tak.sugawara\Downloads\evaluator-jar>java -jar evaluator.jar evaluator.jarにメイン・マニフェスト属性がありません
となって起動できません。jar ファイルの実態は、zipファイルのようですので、zipファイルとして展開するとソースを読むことができます。そこで、メインクラスを拾って、さらに、読み込んでいるライブラリのクラスパスを設定したファイルtest.maniを以下のように設定します。
sugatak@DESKTOP-5AQMG4V:~/INRC1$ more test.mani Main-Class: dds.nrp.core.evaluation.ScheduleEvaluator Class-Path: /usr/share/java/dom4j.jar /usr/share/java/jaxen.jar
次のコマンドでevaluator.jarを修正します。
jar uvfm evaluator.jar test.mani
以上で、evaluator.jarの修正が完了しました。試しにsantosさんのサイトから解ファイルを持ってきて動かしてみます。
sugatak@DESKTOP-5AQMG4V:~/INRC1$ java -jar evaluator.jar instances/sprint02.xml solutions/sprint02.xml Exception in thread "main" java.lang.NullPointerException at dds.nrp.core.tools.ScheduleParser.parseScheduleInfo(ScheduleParser.java:96) at dds.nrp.core.tools.ScheduleParser.parse(ScheduleParser.java:77) at dds.nrp.core.evaluation.ScheduleEvaluator.main(ScheduleEvaluator.java:112) sugatak@DESKTOP-5AQMG4V:~/INRC1$ java -jar evaluator.jar instances/medium_hidden01.xml solutions/medium_hidden01_tak.xml Schedule: ========= Employee 0 |E | D | D | L | | |E |E | L | L | L | | |E | N| L | | |E |E | L | L | N| | |E |E | D | Employee 1 | | | | N| N| N| | | D |E |E | N| N| | |E |E |E | | | D |E |E |E | L | | | | Employee 2 | L | L | N| | | |E | L | L | L | | L | L | N| N| | |E |E |E | N| N| | |E |E |E |E | Employee 3 | D | D | D | | | | DH | DH | DH | DH | DH | | | D | DH | D | | | DH | DH | DH | DH | | DH | DH | DH | DH | DH | Employee 4 | | | | L | N| N| N| | |E |E | L | L | | |E | L | N| N| N| | | D | D |E | | | | Employee 5 |E |E |E | L | | |E |E |E |E |E | | |E | D | L | | |E |E |E | D | D | | |E |E |E | Employee 6 | N| N| L | L | | |E | L | N| | |E |E |E |E |E | | |E |E |E |E | DH | | |E |E |E | Employee 7 | | | | D |E |E | | | D | D |E | L | L | |E | D |E | L | | | L | N| L | N| L | | | | Employee 8 | | | | D | D | D | | |E |E | N| L | L | | |E | D |E | L | L | | |E |E | L | | | | Employee 9 | L | N| L | | | | L | L | N| L | |E |E | D |E | L | | | N| N| L | L | L | | | D | D | D | Employee 10 | | | |E |E |E | N| | | |E | N| N| L | L | L | L | | | | N| L | N| N| | | | | Employee 11 | | | |E |E |E | L | | | | N| N| N| L | | | | N| L | L | L | L | L | L | | | | | Employee 12 | | | | N| L | L | L | | | | N| L | L | L | | | | D | D | D | D | D |E |E | | | | | Employee 13 | | | | N| L | L | N| N| | | | D | D | L | L | N| L | | | | N| N| L | L | | | | | Employee 14 | | | |E | L | L | L | N| | | | D | D | L | L | N| N| | | |E |E |E | D | | | | | Employee 15 | | | | |E |E | L | | | | |E |E |E | L | | | | | | L | L | L | L | | | | | Employee 16 | L | L | L | | | | | D |E | N| L | | | | | | D | L | L | L | | | | | D | L | L | N| Employee 17 | L | N| N| | | | |E |E | D | D | | | | | |E |E | D | D | | | | | N| L | L | L | Employee 18 | N| L | N| | | | | L | L | N| L | | | | | |E |E |E |E | | | | | D |E |E |E | Employee 19 | L | L | L | | | | |E | N| N| L | | | | | | L | L | L | L | | | | | N| L | L | L | Employee 20 | | | | |E |E | D | | | | |E |E | N| N| | | | | |E |E | N| L | | | | | Employee 21 |E |E |E | | | | |E | L | L | L | | | | | | N| N| N| N| | | | |E | D | D |E | Employee 22 | | | | | | |E | N| L | L | | | | |E |E |E | D | | | | | | |E | L | L | N| Employee 23 | N| L | L | | | | | D |E |E | D | | | | | | L | L | L | L | | | | | L | L | L | L | Employee 24 | | | | | D | D | D | L | | | | | |E |E | N| | | | |E |E |E | N| | | | | Employee 25 | | | | | | | | | | | |E |E | N| L | L | N| L | | | | | | | | | | | Employee 26 |E |E |E |E | L | L | | | | | | | | | | | | | | | | | | L | L | N| N| L | Employee 27 |E |E |E |E | L | L | | | | | | | | | | | | | | | | | |E | N| N| N| N| Employee 28 | D |E |E | L | N| N| | | | | | | | | | | | | | | | | |E |E | N| N| L | Employee 29 | DH | DH | DH | DH | DH | DH | | | | | | DH | DH | DH | D | DH | DH | DH | | | | | | | | | | | Violations: =========== Employee: 22 ================ Employee: 23 ================ Employee: 24 ================ Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 22, cost = 1 Employee: 25 ================ Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 55, cost = 1 Minimum consecutive working weekends: excess = 1 , pos = 139, cost = 5 Employee: 26 ================ Minimum consecutive working weekends: excess = 1 , pos = 26, cost = 5 Maximum number of assignments: excess = 1 , pos = 139, cost = 3 Minimum consecutive working weekends: excess = 1 , pos = 139, cost = 5 Employee: 27 ================ Minimum consecutive working weekends: excess = 1 , pos = 26, cost = 5 Maximum number of assignments: excess = 1 , pos = 139, cost = 3 Minimum consecutive working weekends: excess = 1 , pos = 139, cost = 5 Employee: 28 ================ Minimum consecutive working weekends: excess = 1 , pos = 29, cost = 5 Maximum number of assignments: excess = 1 , pos = 139, cost = 3 Minimum consecutive working weekends: excess = 1 , pos = 139, cost = 5 Employee: 29 ================ Minimum number of consecutive free days: excess = 5 , pos = 28, cost = 15 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 58, cost = 1 Maximum number of assignments: excess = 3 , pos = 139, cost = 9 Employee: 10 ================ Employee: 11 ================ Employee: 12 ================ Employee: 13 ================ Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 57, cost = 1 Employee: 14 ================ Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 57, cost = 1 Employee: 15 ================ Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 20, cost = 1 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 55, cost = 1 Employee: 16 ================ Employee: 17 ================ Employee: 18 ================ Employee: 19 ================ Employee: 0 =============== Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 90, cost = 1 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 125, cost = 1 Employee: 1 =============== Employee: 2 =============== Minimum number of consecutive free days: excess = 1 , pos = 46, cost = 3 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 56, cost = 1 Employee: 3 =============== Minimum number of consecutive free days: excess = 1 , pos = 108, cost = 3 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 93, cost = 1 Employee: 4 =============== Employee: 5 =============== Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 90, cost = 1 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 125, cost = 1 Employee: 6 =============== Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 55, cost = 1 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 90, cost = 1 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 125, cost = 1 Alternative skill: excess = 1 , pos = 22, cost = 10 Employee: 7 =============== Minimum number of consecutive free days: excess = 1 , pos = 61, cost = 3 Employee: 8 =============== Employee: 9 =============== Minimum number of consecutive free days: excess = 1 , pos = 46, cost = 3 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 55, cost = 1 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 94, cost = 1 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 127, cost = 1 Employee: 20 ================ Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 20, cost = 1 Unwanted pattern: None(Friday)-Any(Saturday)-Any(Sunday): excess = 1 , pos = 55, cost = 1 Employee: 21 ================ Penalty: ======== 111 sugatak@DESKTOP-5AQMG4V:~/INRC1$
santosさんの解ファイルで起動しないのは、Competitorタグが定義されていないからです。santosさんのサイトの解ファイルを見る場合には、Competitorタグを適当に追加してください。
私のソリューションファイル(medium_hidden01.xml)も上記のように動くようになりました。自分のソフトの目的関数値と、evaluatorの評価値が一致していないとき、ルールの解釈に齟齬があるか、もしくは、ソフト実装上の不具合があるということになります。実際的には、GUIでソルバーに投げるproblem.jsonを書いている訳ですが、GUIを修正して、一致させるようにします。以上の作業を繰り返し行って初めてCompetitionに対する準備が完了となります。
参考サイト
0 件のコメント:
コメントを投稿