Consider I have two types of commands A and B which can be pipelined. Each of these types have a certain time duration and a value associated with it. For example,

A = <|"time"->180, "value"->5|>;
B = <|"time"->60, "value"->1|>;

Minimum timing allowed of A and B is as follows

tAAsame = 180; (* Cmd_A (same) to Cmd_A (same) *)
tAAdiff = 90; (* Cmd_A (diff) to Cmd_A (diff) *)
tBBsame = 60; (* Cmd_B (same) to Cmd_B (same) *)
tBBdiff = 10; (* Cmd_B (diff) to Cmd_B (diff) *)
tABsame = 180; (* Cmd_A (same) to Cmd_B (same) *)
tABdiff = 10; (* Cmd_A (diff) to Cmd_B (diff) *)

Now, consider I have commands: A0, A1, B0, B1. I would like to fit these commands in time 1000s which maximizes the total value of the commands in that time duration.

Here is an example of how these commands can be spaced. This is not optimal. enter image description here

I looked into KnapSackSolve function but couldn't clearly think of how to input command to command timing constraint into it. Is there a way to input such information? if not what other ways are there to solve this command pipelining problem.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.