スケジューリングソルバScNurse 高速求解エンジンとしての利用法 2016.May.15 菅原システムズ.

Slides:



Advertisements
Similar presentations
OWL-Sを用いたWebアプリケーションの検査と生成
Advertisements

スケジュールナースを 使った勤務表作成 ご提案資料
自動勤務表ソフトの使いかた 病棟勤務表事例で見る実践的使いこなし術 2016.Mar.17 菅原システムズ.
最新ファイルの提供を保証する代理FTPサーバの開発
Webアプリケーション開発の 基本的なポイント
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
JPAを利用した RESTful Webサービスの開発
表計算ソフトで動作するNEMUROの開発
環境教育用E-Learningシステム の開発 平成19年度環境教育実践専修構想発表会 環境教育実践専修 鵜川研究室 彭艶萍
電子社会設計論 第11回 Electronic social design theory
ケータイキット for Smarty のご紹介
報告 (2006/9/6) 高橋 慧.
Androidの 画面描画機構を チューニングする!
モード付き並列機械における オンラインスケジューリング
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
スケジュールナース 機能の紹介 選べないシフト表から選べるシフト表へ.
ユーリテクノスのFlashテクノロジーを 利用した様々なサービスのご提案
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
CSP記述によるモデル設計と ツールによる検証
分散処理を用いた大規模ソフトウェアに対するコーディングパターン検出ツール
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
Occam言語による マルチプリエンプティブシステムの 実装と検証
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
プログラム実行時情報を用いたトランザクションファンクション抽出手法
RT-Linuxを用いた 多入力パルス波高分析システムの開発
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
Leap Motionを用いた実世界指向 アプリランチャの設計と開発
暗黙的に型付けされる構造体の Java言語への導入
ソフトウェア情報学総論 基盤ソフトウェア学講座
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
Ibaraki Univ. Dept of Electrical & Electronic Eng.
議事録作成支援 Webアプリケーションの開発 リアルタイム通信を用いた合意形成を目指して
ゲーム開発モデルの基礎.
ネットワークプログラミング (5回目) 05A1302 円田 優輝.
JXTAの概要 P2P特論 (ソフトウェア特論) 第3回 /
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
音声認識・翻訳 Android アプリケーション制作
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
個人の動画配信のためのWebサーバ構築 06A1058 古江 和栄.
第4回 ファイル入出力方法.
Intel SGXを用いた仮想マシンの 安全な監視機構
サポートベクターマシンを用いた タンパク質スレッディングの ためのスコア関数の学習 情報科学科4年 81025G 蓬来祐一郎.
ソフトウェア保守のための コードクローン情報検索ツール
北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ 金子拓磨
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年6月25日 3.1 関数近似モデル
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
ソフトウエアの正体 vol.1 なるほどIT豆知識
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
分散処理を用いたコーディングパターン検出ツールの実装
ネットワーク・プログラミング デバイスドライバと環境変数.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
C10:秘匿共通集合計算プロトコルを用いた 就職活動支援システム“JHT”
オントロジーを利用した Webサービスの実行支援に関する研究
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
コンパイラ 2012年10月11日
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
長岡技術科学大学 大学院 工学研究科 機械創造工学専攻 髙山 誠 指導教員 小林 泰秀 准教授
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
Presentation transcript:

スケジューリングソルバScNurse 高速求解エンジンとしての利用法 2016.May.15 菅原システムズ

アプリから求解のための必要な情報を入力として受け取り解を出力します。 ScNurse(エスシーナース)とは? スケジューリング専用の高速ソルバです。 アプリから求解のための必要な情報を入力として受け取り解を出力します。 貴アプリ ScNurse (スケジューリングソルバ) 入力 出力(解)

用語集 ソルバ 答えを出す脳、に相当するソフトウェア 制約 勤務のルール 解 制約を満たす答え ハード制約 必ず満たさないといけない制約。 ソフト制約 出来れば満たしたい制約 オプティマイズ 最適化。エラーの数を1個づつ減らして最小化すること。 リソース 人的資源。使用例)リソースがない➡人がいない 行 横方向の列 列 縦方向の列 充足 制約を満たすこと エラー 失敗。誤差(目標値からのずれ、ペナルティ) ボトルネック その制約を満たすことが難しいために解がない状態 トレードオフ 何かを達成するために別の何かを犠牲にしなければならない関係のこと。

用語集2 ハードエラー 解が存在しないこと(ソルバが矛盾を認識したときに出すエラー) solution1

ScNurseの特徴 関連特許 ScNurseは、下記取得済み特許に基づいて実装されています。 特許5807978号 特許5807980号 特許5807978号  特許5807980号 高速求解 実務問題に強い。複雑なシフトほど高速性能を発揮します。物理CPU数に対して有効に作用します。200人または365日といった大規模用にもカスタマイズ対応が可能です。 複数の解提示 別解数をパラメータとして指定可能です UNSAT提示 解が存在しないことの証明が可能な場合、即座に報告しユーザを無駄に待たせません。 複数のアプリインターフェース 現状、次の3種をサポートしています。 1)Windows実装 ファイル渡しインターフェース( Windows7Desktop/Windows10 UWP 32Bit/64Bit) 2)Linux実装 TCP/IP サーバインタフェース(64Bit) 3)Linux実装 WebSocket サーバインタフェース(64Bit)

ScNurseの特徴続き 柔軟なソフト制約 優先度設定(Default 7レベル)が可能です。 最小予定変更の提示 制約を満足する最小の予定変更の提示が可能です。 厳密解・近似解 規模や問題の複雑度によりますが、Default動作モードは、厳密解出力になります。時間タイムアウトの場合は、近似解による出力になります。 エラーの原因表示 エラー原因要因を列挙できます。 言語処理による制約記述 言語処理により、複雑で大規模な記述も少ない行数で記述することも可能です。 検証コード出力 Windowsファイル渡しインターフェースの場合は、Pythonによる検証コードを出力出来ます。

スケジューリングに関し他のソルバとの比較 ScNurse MIPソルバ メタヒューリスティクス 高速求解 専用ソルバ。論理的な関係に対して学習が働くので複雑な論理関係になるほど、他のソルバより有利に働く 汎用ソルバ シフト数が多いと遅くなる、もしくは求解困難になる事例が見られる。 ソフト制約規模が大きいとき有利 論理関係の学習機構の実装が難しい。 極めて大規模の場合有利 価格 安価 寡占化により高価 多様 複数の解提示 ◎ △ UNSAT提示 × 最小予定変更 厳密解・近似解 x エラーの原因表示

UNSAT証明 数独解が2つないことを証明します。 1解しかありません。 解2がありません。 解がないことが分からないと、いつまでも探し続けるしかありません。厳密解を出せないソルバ、例えばメタヒューリスティクスによる方法では、基本的に解がないことが分かりません。 ユーザに「もう解はありません。」とは言うことはできません。 1解しかありません。 解2がありません。

自明なエラーは即検出原因指摘が出来る これも厳密解を出せないソルバでは難しいと思われます。ScNurseでは、単純な論理矛盾は、コンパイル時に検出でき、即原因指摘が可能です。

複数解(別解)を出せます 解の個数を10に指定した場合 1解しかありません。 解2がありません。

予定変更の最小解も出せます これ以上良い解がない証明ができた➡最小解を発見した。

予定変更の別解も出せます 予定変更位置の別解も求められます

Windows7 インタフェース 求解条件・制約 貴アプリ ScNurse 求解中止 求解状況報告 解 デスクトップアプリを想定したインターフェースです。 貴アプリは、求解条件・制約をファイルに書き込みます。 ScNurseを子プロセスとして起動します。 ScNurseは、ファイルを構文解析し求解します。 貴アプリは、求解途中で求解中止にしたいときは、パイプでMsgを送ります。 ScNurseは、求解状況をWindowsMsgで逐次報告します。 解が出来たらファイルに書き込みScNurseは終了します。 貴アプリ 求解条件・制約 ScNurse ファイル 求解中止 求解状況報告 解 ファイル

Windows10 UWP インタフェース 求解条件・制約 貴アプリ (XAML/C#/ ScNurse javascript) 求解中止 デスクトップアプリを想定したインターフェースです。 貴アプリは、求解条件・制約をファイルに書き込みます。 ScNurseをLaunchUriAsync(ファイル指定付き)で起動します。 ScNurseは、ファイルを構文解析し求解します。 貴アプリは、求解途中で求解中止にしたいときは、AppServiceConnectionをCloseします。 ScNurseは、求解状況をAppServiceConnectionで逐次報告します。 解が出来たらファイルに書き込みScNurseは終了します。 貴アプリ (XAML/C#/ javascript) 求解条件・制約 ScNurse ファイル 求解中止 求解状況報告 解 ファイル

TCP/IP インタフェース(Linuxサーバ) フォーマットは前ページWindowsと同じです。 ScNurseは、送られたてきた入力情報を構文解析し求解します。 貴アプリは、求解途中で求解中止にしたいときは、TCP/IPプロトコルでMsgを送ります。 ScNurseは、求解状況をTCP/IPプロトコルで逐次報告します。 解が出来たらTCP/IPプロトコルで送ります。 貴アプリ 求解条件・制約 ScNurse Linuxサーバ TCP/IP TCP/IP求解中止 求解状況報告TCP/IP 解 TCP/IP

WebSocket インタフェース(Linuxサーバ) Javascriptを想定したインターフェースです。 貴アプリは、求解条件・制約をJSONフォーマットにし、WebSocketプロトコルで送ります ScNurseは、送られたてきた入力情報を構文解析し求解します。 貴アプリは、求解途中で求解中止にしたいときは、WebSocketプロトコルでMsgを送ります。 ScNurseは、求解状況をWebSocketプロトコルで逐次報告します。 解が出来たらJSONフォーマットにしWebSocketプロトコルで送ります。 貴アプリ 求解条件・制約 ScNurse Linuxサーバ WebSocket WebSocket求解中止 求解状況報告WebSocket 解 WebSocket

インタフェースフォーマット概要 ソルバへの入力フォーマットは、求解条件と制約式から成ります。 名称 内容 求解条件 行数(人数)、列数(日数)の指定 シフトの種類の指定、求解数、タイムアウト値の指定 制約式 制約の本体部

求解条件 求解条件 persons=9;//行数 Days=9;//列数 { _A,_B,_C,_D,_E,_F,_G,_H,_I};//シフトの種類 parameter int NofCpus=8;//使用CPU数 parameter int N_of_solutions=2;//解数 parameter int not_repeat_planned_errors=0; parameter int HardTimeout=120;//タイムアウト秒 parameter int ErrorAnalysis=0;//エラー解析 parameter int SoftTimeout=26;//ソフトタイムアウト秒 …

制約式(例) 制約式は、コメントと制約関数から成ります。コメントは、エラー時の表示に使用します。 コメント(オプション) //予定入力 6 菅原 2014年5月2日$DayEntry(1,X[0][1][_F],X[0][1][_A],X[0][1][_B],X[0][1][_C],X[0][1][_D],X[0][1][_E],X[0][1][_G],X[0][1][_H],X[0][1][_I]); //予定入力 1 菅原 2014年5月3日$DayEntry(1,X[0][2][_A],X[0][2][_B],X[0][2][_C],X[0][2][_D],X[0][2][_E],X[0][2][_F],X[0][2][_G],X[0][2][_H],X[0][2][_I]); … 人、日、シフトの3次元で指定します。 制約関数。$Inv(),$And(),$Or()等、10種類位あります。

ライセンスの種類 名称 提供物 価格 備考 Unlimited 全ソースコード(Windows/LinuxServer/スケジュールナース、匠シフタ :C++,C#,Javascript) 2000万円 分割払可。特許ライセンス費込。使用数量に関係なく自由に使うことが出来ますが、独占使用権ではありません。 技術指導・サポート 120万円 1年間のみ WindowsDesktop バイナリコード インタフェースSpec. 5万円Start 1Windows組み込みあたり  ミニマムロイヤリティ LinuxServer* インタフェースSpec**. T.B.D. 1サーバあたり 240万円 *デモURLは 携帯ブラウザでhttp://www.nurse-scheduling-software.com/W/piyo04142016.php 36x36数独を携帯ブラウザで数秒で解くことができます。 **制約ファイル仕様書に関しては、サポートまで依頼してください。

高速求解で広がる世界 高速求解+クラウド・VPS使用で素早く、安価にスケジューリングサーバ構築が可能 技術指導によりノウハウを提供します。 ご清聴ありがとうございました