Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Without taking account the batteries minimization, what you're looking for is the <a href="http://mathworld.wolfram.com/Shortest-PathSpanningTree.html" rel="nofollow noreferrer">Shortest Path Spanning Tree</a>, which is kind of similar to the <a href="http://en.wikipedia.org/wiki/Minimum_spanning_tree" rel="nofollow noreferrer">Minimum Spanning Tree</a>, except for with a different "cost" function. (You can just run <a href="http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" rel="nofollow noreferrer">Dijkstra's Algorithm</a> to calculate the Shortest Path Spanning Tree, since the cost seems to always be positive.)</p> <p>This does not take account the battery minimization though. In that case, (and I'm not quite sure what it is that you're trying to minimize first) you might want to look into <a href="http://en.wikipedia.org/wiki/Minimum_cost_flow_problem" rel="nofollow noreferrer">Min-cost max flow</a>. However, this will optimize (maximize) the "flow" first, before minimizing the cost. This might or might not be ideal.</p> <p>To create the vertex constraint (each node can only operate <code>k</code> messages), you just need to create a second graph <code>G_1</code> where you add an additional vertex <code>u_i</code> for each <code>v_i</code> - and having the flow <code>v_i</code> to <code>u_i</code> be whatever your constraint be, in this case, <code>k+1</code>, with the cost <code>0</code>. So basically if there is an edge <code>(a,b)</code> in the original graph <code>G</code>, then in <code>G_1</code>, there will be an edge <code>(u_a,v_b)</code> for each of these edges. In effect, you're creating a second layer of vertices that constraints the flow to <code>k</code>. (Special case for the root, unless you also want a message constraint on the root.)</p> <p>The standard max-flow solution on <code>G_1</code> should suffice - a source that points to each vertex with a flow of <code>1</code>, and a sink that is connected to the root. There is a solution for <code>G_1</code> (varying on <code>k</code>) if the maxflow of <code>G_1</code> is <code>N</code>, the number of vertices.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload