2018年10月19日金曜日

一般ベンチでは思わしくない結果に

手持ちのテストプロジェクトがかろうじて動くようになり、やってみると惨憺たる結果となりました。
これらは、リアルベンチ(実使用のプロジェクト)ではあり、現在のScNurseの優秀さを改めて実感するという結果になりつつあります。ここまで、結果が分かれるとは、正直予想していませんでした。
 また、実問題で走らせてみると新たなに別な問題も発生して、この対応にまた時間がかかりそうです。
 
 

2018年9月28日金曜日

要素技術開発がほぼ終了

ずっとSchedulingBenchmarkサイト問題に取り組んでいましたが、これは、NSPの特殊形であって一般系ではありません。現在、これを一般系でも動くように落とし込む作業を行っていますが、高いハードルで一筋縄では行きません。かなり複雑です。が、ほぼ形は見えたので、ようやく、今後の展開を考えることが出来ます。

1)手持ちベンチマークで検証  10月
2)NS2ベンチマークで検証   11月
3)NS1ベンチマークで検証       
4)まとめ               12月
5)実装ベータ版公開        1月
6)英語サイト公開          2月
7)DSL作成~            3月

特殊形では、ほぼWorldWideでトップ性能であることは、確認できたのですが、一般系でどのような性能になるのかが、未だ見えません。 こちらについては、10月以降検証を進めていきます。 上記ベンチマーク問題とプロジェクトファイルについては、英語サイトにして公開予定です。これで、One-StopのNSP問題集として、実問題を含めて網羅できると思います。新解の提示もいくつか出来ると思います。 

その後、Domain Specific Language 作成作業を行っていきたいと思います。 

開発中は、様々な文献を調査しました。門外漢である自分は、日本語での整数計画の本が少なくて困りました。連続系リニアでは、結構あるのですが、離散系である整数となると少ないのです。農工大の宮代先生が、近代科学社の最適化モデリングシリーズで書かれるようなので、そちらに期待というところです。

一般的な組み合わせ最適化問題と、NSPで何が違うかといういうとNSPは、組み合わせ最適化問題に包含される関係にあります。
前にも見たように、商用とフリーのMIPソルバーでは、いかんともしがたい性能差があります。ですから汎用である商用MIPソルバーに任せておけばよい、というのはある意味正しいです。実際、NSPのState Of Art Solverは、学術関係で発表されている全てのソルバーも含めても、Grobi/CPlexになると思います。残念ながら、学術関係ではない一般の方々が、StateOfArtソルバーを、手軽に使うことはできないですし、使い方もスキルを要します。
 NSPには、勤務シフトという他に例にないくらい複雑な制約郡と、多数の基数制約の組み合わせという特徴があります。この特殊な性質を上手に活用すると、State Of Artソルバー並みに、もしくはそれ以上に上手くいく場合もあります。State Of Artソルバー並みの性能と手軽に使うことができるGUI、そしてプログラマが使えるPython DSLを提供することがスケジュールナースの目標です。
さらにブラシュアップための知見は、現在の単純な線形目的関数値ではなく、機械学習や、AI的な手法によって得られると思います。現場に立脚した最適化は、個々の職場で違うと思うので、その目的のための道具としてPython DSLです。

2018年9月15日土曜日

数理計画テキスト

ずっとSchedulingBenchmarkサイト問題に取り組んでいましたが、これは、NSPの特殊形であって一般系ではありません。現在、これを一般系でも動くように落とし込む作業を行っていますが、高いハードルで一筋縄では行きません。かなり複雑です。が、ほぼ形は見えたましたので、ようやく、今後の展開を考えることが出来ます。

1)手持ちベンチマークで検証  10月
2)NS2ベンチマークで検証   11月
3)NS1ベンチマークで検証       
4)まとめ               12月
5)実装ベータ版公開        1月
6)英語サイト公開          2月
7)DSL作成~            3月

特殊形では、ほぼWorldWideでトップ性能であることは、確認できたのですが、一般系でどのような性能になるのかが、未だ見えません。 こちらについては、10月以降検証を進めていきます。 上記ベンチマーク問題とプロジェクトファイルについては、英語サイトにして公開予定です。これで、NSP問題集として、実問題を含めて網羅できると思います。新解の提示もいくつか出来ると思います。
その後、Domain Specific Language 作成作業を行っていきたいと思います。 

開発中は、様々な文献を調査しました。門外漢である自分は、日本語での整数計画の本が少なくて困りました。連続系リニアでは、結構あるのですが、離散系である整数となると少ないのです。組み合わせ最適化という分野は実際問題、離散系が主ではないでしょうか?農工大の宮代先生が、近代科学社の最適化モデリングシリーズで書かれるようなので、そちらに期待というところです。

2018年9月12日水曜日

CALL for papers


Dear solver and benchmarks submitters to the MaxSAT Evaluation 2018,
The JSAT journal is being reactivated and has several renewals like a new
webpage (see http://jsatjournal.org/) and the submission management via
Easychair.
We are attaching a call for papers for a special issue on SAT-related
competitions. This special issue aims to cover all aspects related to
competitions (e.g., solving approaches, tools, benchmarks, result
interpretations, etc.) To make this special issue a success, we encourage
the MaxSAT submitters to contribute to the special issue.

2018年8月26日日曜日

シリアライゼーションライブラリ cereal

アルゴリズムの改善を行うのに、コンパイル→探索の サイクルを出来るだけ早く回したいというのが背景です。大規模になると、コンパイルするだけで時間がかかってしまいます。そこで、コンパイル後の状態を保存・解凍できるようにすると、(一回コンパイルすれば)コンパイルの時間が省けます。この機能は、Save/Restoreという風に呼ばれていると思いますが、いわゆる「シリアル化」です。C++のクラスやvectorなどのテンプレートを、簡単にシリアル化するのに、cerealを今回、使ってみました。cerealは、serialと発音的にどうなんでしょうか? ともあれ、とても簡単にシリアル化できました。BinaryやJson思いのままに可能です。日本語記事は、こちらか、こちらが詳しいです。

新しい解の発見 その3

instance20の新解を更新しました。(UB:4778→4775→4773→4772→4771→4770→4769)

autorosterのxml formatで、解の有効性は、確認済みです。
Instance20の最適解が確定しました。

 So Far Bestknown New Solution  
 LBUBLBUB
Instance153823383438243831
Instance204743494347694769

2018年8月20日月曜日

新しい解の発見 その2

性懲りもなく、未だ研究していて、その甲斐あって

instance20の新解を発見しました。


 So Far Bestknown New Solution  
 LBUBLBUB
Instance153823383438243831
Instance204743494347694778