2023年6月25日日曜日

GitHub公開でずっと無料に

 GitHub、オープンソース文化 (nurse-scheduling-software.com)

12ヶ月以上の要件が厳しいのですが、サブスク12ヶ月という意味ではありません。以前からプロジェクトを運用されていた方はいらっしゃると思いますので、該当する方はいらっしゃると思います。長く運用・稼動していることが唯一と言ってよい条件です。

これは、長期稼動したプロジェクトは、鍛えられていて安定している、という私の経験に基づくものです。月々の外乱に耐えたプロジェクトこそ、参考にされるにふさわしい、と考えています。

業種が違えば、プロジェクト形態は、当然違うでしょう。反対に、業種が同じであれば、そのプロジェクトを土台にして構築して行ける可能性は高まります。

介護一つ取っても、本当に多種多様なプロジェクトがあります。公開して頂ける方が増えれば増えるほど、日本のシフトは、良くなると期待されます。

これまで、あまり光があたらなかった業種でも、シフトのフレームワークが出来れば、やはり自動化してみよう、と考える方が増えてくると思います。

ご自分のプロジェクトが、きっと他の誰かの役に立つと思います。

<スケジュールナースのプロジェクト=モデリングの一方法ではあるが、フレームワークでもある>

GUIではあるけれども、スケジュールナースのプロジェクトは、制約のソースコードであることは、間違いありません。いわば、モデリングの一方法ではありますが、制約記述のフレームワークでもあります。

世の中にナーススケジューリング問題でググると、一杯記述が出てきます。遺伝的アルゴリズムだったり自作のメタヒューリスティクスだったり、Pythonでの記述だったり、量子アニーリングだったりします。アルゴリズムや、方法論とも、多種多様です。しかし、問題は、正にその問題しか解けないことです。作者と同じか、殆ど同じプロジェクトでないと他の人は、使えないのです。一般の人にとって、Pythonとか、ハードルが高すぎます。折角公開しても、他の大勢の人が使えないのであれば、あまり意味がなさないと思います。

スケジュールナースのプロジェクトは、その点、明確に違います。同じ業種で、同じシフトパターンであれば、格段に他の人が使える可能性が出てきます。GUIという言語ではあるけれども、普遍的なアーキテクチャであるという自負があります。日本にとどまらず、世界的に、標準の地位を確立すること、が目標です。

<世界最高レベルの性能>

標準を目指すのであれば、粗悪性能であることは許されません。出来れば、世界最高性能であると証明されたものであれば、より安心して使って頂けると思います。その点においても、一切の妥協をせずに、どのベンチマークを取っても最高の性能を示すアルゴリズムを開発してきました。

<価格>

そして、他の人が気軽に使って頂ける価格にしたい、10台で480円/月ですから、なんと、一台あたり48円/月 という信じられない価格を実現しました。もはや、使えない理由は存在しません。理不尽なシフトをこの日本から一掃しましょう。




2023年6月24日土曜日

塾講師問題を再考

 GitHub化したサンプルプロジェクトを何にしようか?考えていて、塾講師問題が身近でよさそうだ、と思い付きました。Readme.mdの内容を考えてみます。

オリジナルの仕様を眺めてみました。

Google OR-Toolsによる最適化プロジェクト入門 - Qiita

プロジェクトは、以下をいじります。



>空きコマの数を最小化したり、同じシフト数でも出勤する日数を最小化するようなモデル

これについて考えてみます。

>空きコマ数最小化

下で空きタスクにソフトレベル1を設定しています。


現在の設定は、
ですが、予定の重みを7として予定が変更されないようにします。これで、ほぼ、空きコマ数最小のモデルとなります。

これで、UB=62が求まりました。つまり、31個の空きコマは必然です。
しかし、アルゴリズム2で求解するとUB=61になっています。
これは、予定が変更されていることによります。アルゴリズム2は、完全な最適解を求めるまで終了しません。(アルゴリズム1は、準最適解です。)いずれにせよ、予定の重みをより重くすれば、予定が変更されることはなくなり、上と同じになるはずです。

アルゴリズム3でも同じUB=61となりましたが、解の出方は違います。別解があるということです。



>出勤する日数を最小化
制約を追加します。休日でない=出勤です。出勤にペナルティを与えるものとします。



予定および空きコマペナルティを排するために当該部をアンチェックして、求解します。




結果は、全て同じUBとなりました。最適解が求まりました。

タスク解

シフトとタスク解


着目して頂きたいのは、モデル変更のスピードです。Qiitaの仕様を読んで、モデル変更して求解、最適解を得るのに、2-3分で完了しました。ナーススケジューリング問題は、毎月モデリングしているようなもので、月々に何らかの変更が入るのが常です。なので、大枠は決まっているけれども、少々の変更なら、直ぐに手元で変更できることが大事な要件です。本プロジェクトは、ナーススケジューリング問題ではありませんが、組み合わせ最適化の一例であり、モデリング方法は似ています。 

2023年6月23日金曜日

買い切り版新設

 スケジュールナースは、個人で使って頂けるようにしたかったので、全面サブスクにしています。しかし、国公立の病院で、サブスクでなくて使えるようにして欲しいという要望を多数頂きました。

これらの背景として、一つのマイクロソフトアカウントでPC10台まで使えるということは、サブスクで考えると1台あたり48円/月になってしまうことです。

これでは、とても商売が成立しないので運用で、1病棟1アカウントをお願いすることに変更しました。物理的には何の制限もないので、ただただお願いするしかないのですが、どうか事情をお察しの上でお買い求めください。

世界最高性能のソルバが、月あたりでこの価格帯になるということが魅力なのでしょう。

個人として考えると、自宅で作り、病棟でExcelへ移動、印刷といった使い方では、10台までという制限はとても助かると思います。(..とある看護師長さんは、おっしゃっていました。)

なので、スケジュールナース的には、組織で使って頂くよりも個人で使って頂ける方が有難いのです。

で、最初のご要望には、菅原システムズに銀行送金する方法を新設しました。(といっても従来方法に後戻りという言い方が正しいような気がします。)


ストア買い切り版 (nurse-scheduling-software.com)


2023年6月19日月曜日

GitHub Readme.mdの書き方

 Japan GitHub Ranking | 🗻日本語しか読みたくない人のためのGitHubランキング Ranking of repositories in Japanese (zzzmisa.com)

に有名な日本語GitHubレポジトリ集が載っています。

後で、サンプルレポジトリを書きますが、日本語プロジェクトでは、日本語でreadme.mdを書いて頂きたいと思います。いわば、取り扱い説明書になります。

このmdという拡張子はマークダウンという奴です。スケジュールナースのサイトは、hugoというサイトジェネレータを使っていますが、このとき書くのは、xxx.mdで、テキストエディタで書いています。それをhugoで、htmlに変換する訳です。

ただし、テンプレートを販売している業者やOpenSourceが沢山あるので、自分のサイトイメージに近いものを選んで自社用サイトに作り替えていく訳です。OpenSourceの方は、無料なのですが、品質だったり、痒いところに手が届かなかったりで、結局は業者の販売するものを買ったのに落ち着きます。この辺は、Wordpressと同じ状況かもしれませんが、テンプレートは一回切りなので割り切れます。

とりあえずは、Readme.mdがどんなものであるか?概観して雰囲気を掴むことはできると思います。

スケジュールナースのプロジェクトは、日本語と英語があります。例えば、ベンチマークを走らせるには、プロジェクトは全て英語なので、英語モードにOSを変更しないと読めません。また、RepositoryViewerも言語に応じて、レポジトリ部分を選んでいるので、Japanese/Englishといったディレクトリ構成にする必要があります。(将来対応言語を増やすかもしれません。)

<スケジュールナースプロジェクトでビジネス>

スケジュールナースプロジェクトをGithubで公開して、商売をするのは自由です。プロジェクトファイルの著作権は、作成者にあります。ExcelBookやシートを有料で販売している業者があるように、プロジェクトを有料で販売するのは自由です。Excelシート中にVBAを含むのは、プロジェクトファイル中にPythonコードを含む場合があるのに似ています。しかしながら、Excelというアプリケーションがインストールされていないと、Excelファイルがあっても使えないのは、プロジェクトファイルがあっても、スケジュールナースがないと使えないのと同じです。

例えば、「フレームワーク的なもののみをGithubで公開、細かな実装は、受託設計・メンテナンスします、」でもOKです。実際、そのビジネススタイルは、Hugoで既にあるものですが、各国、法律・仕様が異なるので、各国・各業種毎に、そういう業者が必要になる点が異なります。全部英語で済む、というものではありません。







2023年6月10日土曜日

Schedule Nurse Campaign

We are planning to renew the English website following the Japanese one. The style will be the same as the Japanese site. We will prepare a campaign for Schedule Nurse. Now Schedule Nurse has only paid subscriptions, but we will give you a one-time purchase version for free as a gift if you publish your original and working projects on GitHub. Terms,

1. You must have already purchased a subscription (for at least 12 10 months  or 1 year subscription (40.49USD or 40.49EUR) )

2. Publish original projects on GitHub that is ready for use (real working is mandatory more than three months.)

The conditions are as follows.

We will review your application to see if it is ready for use, and if it passes, we will give it to you as a gift. 

Schedule Nurse is only available in Japanese and English, but we will consider other languages upon request. (In that case, we will need your cooperation.)

2023年6月6日火曜日

変則2交代勤務

 去年あたりから、変則2交代の要求があります。

看護協会の提唱する正循環が、基点となっていると思います。恐らく、

nurse_life01.pdf (otarukyokai.or.jp)

ただし、実際の要求は、

https://www.nurse-scheduling-software.com/japanese/constraints_faqs/chapter5/

のように遅日勤→ロング日勤(長日勤)になっていて、別な要求でも

https://www.nurse-scheduling-software.com/japanese/constraints_faqs/chapter6/

ロング日勤仕様になっています。

いずれも、長日→夜勤→明け→休み となる長シーケンスとなります。長シーケンスとなるため、今までよりは、休み希望が通りにくくなる可能性が高いと思われますが、シミュレーションしたところ、顕著な差とは言えず、懸念したほどではないと思います。

別な注意点として、翌月に跨る連続勤務には注意が必要です。

変則2交代を参考にしたい場合は、

https://www.nurse-scheduling-software.com/japanese/constraints_faqs/chapter7/

が一番、実際的なサンプルではないかと思うので参考にしてください。


参考:

看護師「2交代・変則2交代制」の違いとメリット・デメリット | ママナース革命 (hosikoblog.com)

2023年6月1日木曜日

キャッチを変更

 480円/月をやめて、

「諦めないでください」に始まり

「安心してください」で終わる、パスにしてみました。

この方が、より直線的、端的にアピールできるかも、との期待です。

スケジュールナース (nurse-scheduling-software.com)