タスクチュートリアルを一新しました。
2022年12月31日土曜日
2022年12月30日金曜日
2022年12月29日木曜日
2022年12月28日水曜日
1フェーズ勤務表
フェーズが1しかないプロジェクトは、シフト勤務表としても実現が可能です。
しかし、シフト数が25を超えるような状態は、求解速度の観点から好ましくありません。
例えば、工場の場合、多くの工程があります。一人のスタッフに着目した場合、全ての工程を担当できることはなく、担当可能な工程は限られていると思われます。そのような性質を持つ場合は、シフトではなくタスクとして実装した方が、求解速度は上がります。
(シフトは、内部的には、全てのスタッフが全てのシフト状態を保持します。シフト数が大きくなると、指数関数的にメモリが大きくなりキャッシュヒット率が低下することが懸念されます。)
スキル定義の例
以下の例は、工場の担当可能な工程作業を表しています。このように、多くのタスクがあるけれども、一人のスタッフが担当可能なタスクは数個に限定される場合は、シフトとして実装するよりもタスクとして実装した方が効果的です。
サンプルは、充填プロジェクトです。
以前は、集積、供給、包装をシフトとして持っていたものを1フェーズタスク勤務表に書き直したプロジェクトになります。
1勤が、日勤で、2勤が夜勤になります。1勤務を、勤務1、供給、集積、包装、目視のタスクに分解定義しています。充填プロジェクトでのタスク数は少ないので、前述の効果はありませんが、タスクの変動(目視検査等の追加)に対しては、強い構造となります。
下は、シフト解とタスク解になります。シフトの1勤だけに、タスク群が割り当てられているのが分かります。
2022年12月26日月曜日
タスク勤務表とは?
1日のシフトが複数の時間区分(以下フェーズと呼称します)、その時間区分毎に、一人のスタッフに一つの仕事(以下タスクと呼称します)を割り当てるタイプの勤務表をいいます。フェーズ数は、いくつでも自由に定義することができます。
1フェーズ勤務表
3フェーズ勤務表の例
タスク勤務表では、シフト解とタスク解、二つの解が出力されます。
シフト解は、シフトに対する割り当ての答えであり、一日に一つのラベルで出力されます。
6フェーズのシフト解の例
シフト解と、タスク解は、右クリック、ビューの切り替えにより、相互に行き来することが出来ます。
シフトは、予定として、既に決まっている場合もあります。その場合は、
シフト予定入力に記述します。
この場合、シフト解は、シフト予定入力そのものになりますから、解として意味があるのはタスク解の方のみです。
シフト勤務表との差異を下表にまとめます。
|
シフト勤務表 |
タスク勤務表 |
解 |
シフト解のみ |
シフト解とタスク解 |
予定 |
シフト 予定入力のみ |
シフト 予定入力とタスク予定入力 |
列最小単位 |
日(Day) |
フェーズ |
シフト |
一日あたり一個 |
1日あたり一個 |
タスク |
なし |
あり(1フェーズあたり1個) |
2022年12月24日土曜日
ハード列基数制約ソフト化オプション廃止
次のリリースで、オプションを廃止します。動作としては、常にDisableの状態に固定します。
ハードConflict解析の邪魔となることが多いので止めることにしました。
<Task集合のNot演算>
これも弊害が多く、NoTaskVarに限定することにしました。
<制約部の形態動作が少し変化します>
殆ど気づかないとは思いますが、他制約をいじって戻ってきた場合に、設定していない制約は、消えてしまうことがあります。今までと、ちょっと違う動きとなります。
<タスクチュートリアル変更>
大幅に見直してチュートリアル変更を予定しています。
2022年12月13日火曜日
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月11日日曜日
2022年12月6日火曜日
2022年12月5日月曜日
Redo/Undoのグレーアウト化
「Redo/Undoでラベルはグレーアウトの方がよい
これにより「ここにあったような気がするんだけど 見当たらないですね」というユーザ同士の行き違いを減らすことができると思いました。」
というご指摘があり実装しました。
現在のところ、適用はストア版のみです。(未だpublicになってはいません)
2022年12月4日日曜日
2022年12月3日土曜日
ソフト制約調整
2022年12月2日金曜日
ストア版永続ライセンスのURL配布
下記に該当する方々に、URLの配布を開始しました。
■現ライセンスを保持している
■開発に貢献があった
■Covid-19関連
■βテスター業務を完了
手作業で1ユーザ毎、順次配信しているので、該当しているが未だ来ないという方は、しばしお待ちください。
E-mailでURLをお送りしています。
インストール手順です。
前提条件:
■microsoft アカウントがあること
■Windows10/11 64bit Versionであること
手順:
受領したURLリンクをクリックするとマイクロソフトアカウントが求められます。
(下記は仮想環境(英語)の為、英語表示になっていますが日本語で出ます)
マイクロソフトアカウントのパスワードを入れますするとマイクロソフトアカウントに入ります。25桁のコードが既に入っている筈です。
あとは、通常通りアプリの起動で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日
になって自動更新されていました。
リリース後、数時間から数日のバラツキがある模様です。