-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CmapExDeepBkzについて #6
Comments
SolverBが暫定解を更新してから, SolverAがそれを含む基底を受け取るまで遅延があるケース sequenceDiagram
autonumber
LC->>SolverA: Task with Basis B_0
LC->>SolverB: Task with Basis B_0
SolverB-->SolverB: Update local best
SolverA-->SolverA: Finish 1 tour
SolverA->>LC: Basis B_1 ( < B_0 )
LC-->LC: Replace global basis B_0 --> B_1
SolverB-->SolverB: Finish 1 tour
SolverB->>LC: Basis B_2 ( < B_1 )
LC-->LC: Replace global basis B_1 --> B_2
SolverA-->SolverA: Finish 2 tour
SolverA->>LC: Basis B_3 ( > B_2 )
LC->>SolverA: Global basis B_2 ( Because B_2 < B_3 )
SolverA-->SolverA: Merge global basis B_2
|
lattice::DeepBKZ内部を次のように変更
これだと例えば、上の状況においてSolverAは1tour終了後に暫定解を含む基底を受け取れる(上の図だとtour2終了時に受け取っていた)。 sequenceDiagram
autonumber
LC->>SolverA: Task with Basis B_0
LC->>SolverB: Task with Basis B_0
SolverB-->SolverB: Update local best
SolverB->>LC: Basis B_1 ( < B_0 )
LC-->LC: Replace global basis B_0 --> B_1
SolverA-->SolverA: Finish 1 tour
SolverA->>LC: Basis B_2 ( > B_1 )
LC->>SolverA: Global basis B_1 ( Because B_1 < B_2 )
SolverA-->SolverA: Merge global basis B_1
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
基底共有機能を付与するために、DeepBKZ関数をオーバーラップしたクラスCmapExDeepBkzの情報共有APIを記載します。
通信関数
*1, *2は前回実行時からそれぞれiReceiveInterval, notificationIntervalパラメタ秒経過していないならスキップ
lattice::DeepBKZ内部
現状 lattice::DeepBKZ関数では
そのため、lattice::DeepBKZのtourごとにLCからglobal基底を受けとってマージするようにしているので、tourに時間がかかる場合はこの基底の受け入れに遅延が生じます。
The text was updated successfully, but these errors were encountered: