2022年12月28日水曜日

1フェーズ勤務表

 フェーズが1しかないプロジェクトは、シフト勤務表としても実現が可能です。

しかし、シフト数が25を超えるような状態は、求解速度の観点から好ましくありません。

例えば、工場の場合、多くの工程があります。一人のスタッフに着目した場合、全ての工程を担当できることはなく、担当可能な工程は限られていると思われます。そのような性質を持つ場合は、シフトではなくタスクとして実装した方が、求解速度は上がります。

(シフトは、内部的には、全てのスタッフが全てのシフト状態を保持します。シフト数が大きくなると、指数関数的にメモリが大きくなりキャッシュヒット率が低下することが懸念されます。)

スキル定義の例

以下の例は、工場の担当可能な工程作業を表しています。このように、多くのタスクがあるけれども、一人のスタッフが担当可能なタスクは数個に限定される場合は、シフトとして実装するよりもタスクとして実装した方が効果的です。


サンプルは、充填プロジェクトです。

以前は、集積、供給、包装をシフトとして持っていたものを1フェーズタスク勤務表に書き直したプロジェクトになります。 

1勤が、日勤で、2勤が夜勤になります。1勤務を、勤務1、供給、集積、包装、目視のタスクに分解定義しています。充填プロジェクトでのタスク数は少ないので、前述の効果はありませんが、タスクの変動(目視検査等の追加)に対しては、強い構造となります。

下は、シフト解とタスク解になります。シフトの1勤だけに、タスク群が割り当てられているのが分かります。



2022年12月26日月曜日

タスク勤務表とは?

 

1日のシフトが複数の時間区分(以下フェーズと呼称します)、その時間区分毎に、一人のスタッフに一つの仕事(以下タスクと呼称します)を割り当てるタイプの勤務表をいいます。フェーズ数は、いくつでも自由に定義することができます。

1フェーズ勤務表



2フェーズ勤務表の例


3フェーズ勤務表の例


4フェーズ勤務表の例

6フェーズ勤務表の例


タスク勤務表では、シフト解とタスク解、二つの解が出力されます。

シフト解は、シフトに対する割り当ての答えであり、一日に一つのラベルで出力されます。

 

6フェーズのシフト解の例


シフト解と、タスク解は、右クリック、ビューの切り替えにより、相互に行き来することが出来ます。

シフトは、予定として、既に決まっている場合もあります。その場合は、

シフト予定入力に記述します。


この場合、シフト解は、シフト予定入力そのものになりますから、解として意味があるのはタスク解の方のみです。

シフト勤務表との差異を下表にまとめます。

 

シフト勤務表

タスク勤務表

シフト解のみ

シフト解とタスク解

予定

シフト 予定入力のみ

シフト 予定入力とタスク予定入力

列最小単位

日(Day

フェーズ

シフト

一日あたり一個

1日あたり一個

タスク

なし

あり(1フェーズあたり1個)

 


2022年12月24日土曜日

ハード列基数制約ソフト化オプション廃止

 次のリリースで、オプションを廃止します。動作としては、常にDisableの状態に固定します。

ハードConflict解析の邪魔となることが多いので止めることにしました。

<Task集合のNot演算>

これも弊害が多く、NoTaskVarに限定することにしました。

<制約部の形態動作が少し変化します>

殆ど気づかないとは思いますが、他制約をいじって戻ってきた場合に、設定していない制約は、消えてしまうことがあります。今までと、ちょっと違う動きとなります。

<タスクチュートリアル変更>

大幅に見直してチュートリアル変更を予定しています。




2022年12月13日火曜日

python3 制約プログラミングマニュアル更新

機能追加等を反映していなかったので
更新しました。
マニュアル更新に伴い、サンプルも更新しました。現在はGithubのみの適用です。




2022年12月12日月曜日

Excel定数

 Excel定数をいちいち書かなくてもよい方法が分かりました。

下のコードで、import constants as c

で定数を一気にインポートすることが出来ます。


import win32com.client
from win32com.client import constants as c

xl = win32com.client.gencache.EnsureDispatch('Excel.Application')
xl.Visible = True
wb = xl.Workbooks.Add()
ws = xl.ActiveSheet
ws.Range('A1').FormulaR1C1 = 'X'
ws.Range('B1').FormulaR1C1 = 'Y'
ws.Range('A2').FormulaR1C1 = 1
ws.Range('A3').FormulaR1C1 = 2
ws.Range('A4').FormulaR1C1 = 3
ws.Range('B2').FormulaR1C1 = 4
ws.Range('B3').FormulaR1C1 = 5
ws.Range('B4').FormulaR1C1 = 6
#ws.Range('A1:B4').Select()
ch = ws.Shapes.AddChart().Select()
xl.ActiveChart.ChartType = c.xlXYScatterLines
xl.ActiveChart.SetSourceData(Source=ws.Range("A1:B4"))
#ch.Location(10,10) # something like this?
上のExcelグラフは、こちらを新規プロジェクトにコピペ、言語制約の使用にチェックをして求解しただけで得ることが出来ます。

2022年12月5日月曜日

Redo/Undoのグレーアウト化

 「Redo/Undoでラベルはグレーアウトの方がよい

これにより「ここにあったような気がするんだけど 見当たらないですね」というユーザ同士の行き違いを減らすことができると思いました。」


というご指摘があり実装しました。

現在のところ、適用はストア版のみです。(未だpublicになってはいません)


2022年12月4日日曜日

職権訂正

 特許料年金の払い込みでミスがあり、特許庁より電話がありました。

軽微なミスだったので、職権訂正で事なきを得ました。特許庁から電話を頂くのは、通算二度目です。お手間を取らせてごめんなさい。


2022年12月3日土曜日

ソフト制約調整

動画をアップしました。

ソフト制約システムは、結局トレードオフです。しかも、事前にどうなるか、誰も予測不能です。やってみる(Cut&Try)しかありません。(これが為に、高速ソルバーが必要となります。)

 



管理者が、ある程度周りの状況を掴んだ上で、狙い目を設定することになるでしょう。

2022年12月2日金曜日

ストア版永続ライセンスのURL配布

下記に該当する方々に、URLの配布を開始しました。 

■現ライセンスを保持している

■開発に貢献があった

■Covid-19関連

■βテスター業務を完了

手作業で1ユーザ毎、順次配信しているので、該当しているが未だ来ないという方は、しばしお待ちください。

E-mailでURLをお送りしています。

インストール手順です。

前提条件:

■microsoft アカウントがあること

■Windows10/11 64bit Versionであること

手順:

受領したURLリンクをクリックするとマイクロソフトアカウントが求められます。

(下記は仮想環境(英語)の為、英語表示になっていますが日本語で出ます)

マイクロソフトアカウントのパスワードを入れます
するとマイクロソフトアカウントに入ります。25桁のコードが既に入っている筈です。
次へをクリックします。
確認をクリックします。
入手をクリックします。
サイトを開きます。
永続ライセンス版(50000円)の購入ページが開きます。
50000円をクリックします。25桁のコードが正しければ課金されることはありませんので、ご安心ください。(万が一、間違っていた場合でも、課金される場合は、金額が表示され確認のダイアログで出ます。その場合は最初からやり直してください)
ダウンロードが始まります。開くが出るまで10-20分位かかることもあります。
サーバエラー等によりダウンロードが失敗していると思われる場合、下記のライブラリを開くと再試行が表示されている場合があります。その場合は、再試行してください。






日本語スケジュールナースが開きます。(下記は英語環境なので英語表記になっています)


あとは、通常通りアプリの起動でOKです。スケジュールナースのUpdateは自動で行われるのでダウンロードする必要はありません。

ストア版永続ライセンスは、マイクロソフトアカウントに紐づいています。なので、

同じマイクロソフトアカウントでログインすれば、他のPCでも10台までお使いになれます。PCを買い換えても、使うことが出来ます。(永続版ストアサイトは、privateですがhttps://www.microsoft.com/store/apps/9NGKL40LLGGT



2022年12月1日木曜日

ストア版は自動更新される

 今日、ストア版とdownload版、両方のupdateを行いました。

で、「この更新を必須にします」にチェックをつけてリリースしました。


数時間後に、何気に起動してみると、しっかり更新されていました。一度インストールすると、Windowsが勝手にパッケージUpdateを察知してインストールしてくれるようです。この間、Windowsのサインアウトはしていません。パッケージ容量は現在80MB程度もあり、結構時間がかかるので、いちいちダウンロードしなくてもよくなるのはうれしいです。(ありがた迷惑になる場面もあるかもしれませんが。)

=>

■12月1日リリースしたものが12月5日

■12月5日リリースしたものが12月5日

になって自動更新されていました。

リリース後、数時間から数日のバラツキがある模様です。