日付P1〜Pnのパターンがいくつかあるとします。複数パターンマッチングアルゴリズム
いくつかのものはP1のようにシンプルです - すべての月曜日、P2 - すべての火曜日;他の人は、P4のような、より複雑なもの - それは絵に示されるように、私は、最短結果の文字列を作成する必要があります日付(V1、V2)のカスタムアレイの場合など
すべての営業日:
任意の配列に対して、配列内の日付を表す文字列を作成する必要があります。最も簡単な方法は、1.5.2013,2.5.2013,3.5.2013 ...のような文字列を作成することですが、結果の文字列は非常に長くなります。
事前定義されたいくつかのパターンを使用して、より短い結果文字列を作成できます。
シングル日付フォーマット:DD.MM.YYYY (10文字)
列挙(日付とパターン):カンマとスペース(2文字)私は次の規則を使用した結果の文字列の場合
日付の間隔:DD.MM.YYYY-DD.MM.YYYY (21文字)
パターン名の間隔:PX-Pyを(5文字)
の 特別な単語:(6文字)を除い
結果文字列の例:P4のパターンを使用して
V1:01.05.2013-03.05.2013を除く
P4 、09.05.2013、10.05.2013、16.05.2013、17.05.2013 (80文字)
V1使用PNパターン:
Pnの06.05.2013-08.05.2013、13.05.2013-15.05.2013、20.05.2013-24.05.2013、27.05.2013-31.05.2013 (
P1-P3 01.05.2013-19.05.2013、P4 20.05.2013-31.05.2013 (54 charact:最良パターンマッチを使用して94文字)
V1 ERS)
主な目標は、最短の結果の文字列を作成することです。私が理解しているように、最良のパターン/パターンを見つけることによってこれを達成することができます。
現在、私はナップザックの問題と最も長い共通のサブシーケンスの問題を適応しようとしていますが、正しい方向であるかどうかはわかりません。
私は任意のアイデアに感謝します。私の問題の彼の余分な短い説明のため月ドヴォルザークへ
更新
ありがとう:
目標は、事前に定義された辞書(P1..Pnとすべてを使用してVを記述することですインターバル、および減算がすべて許可され、各操作およびアトムには事前定義コスト(結果文字列の文字数)があります。
* what *の最短結果文字列?タスクの明示的な説明を入力してください。あなたのグラフィックスから、私は例えばV2が全日の一部と一致する理由を理解できませんが、V1は仕事日の一部に一致しません。 – Bergi
私は詳細を追加しました。 V1パターンP4(すべての営業日)に使用できますが、結果の文字列は長くなります。 P4パターンを使用するV1の結果文字列は次のとおりです。P4 5.5.2013〜8.5.2013および13.5.2013〜15.5.2013および20.5.2013〜24.5.2013および27.5.2013〜31.5.2013 – dannikoti
したがって、目標交叉、和集合および減算がすべて許可され、各演算およびアトムが事前定義されたコストを有する事前定義された辞書(P1..Pnおよびすべての間隔および単一の日付)を使用してVを記述することであるか? –