In a Rooted Tree, we have a message on Root. in each step, each node that has a one copy of message, can transfer this message to at most one of it's childeren. we want to use minimum step and send the message to all nodes. for each node v, d(v) and c(v) shows the distance v to it's deepest leaf and number of it's childs. i propose two greedy algorithm, but i couldent find any prove or counterexample.
1) each node that recive a message, in each step send a message to one of childeren taht has a maximum d(v).
2) each node that recive a message, in each step send a message to one of childeren taht has a maximum c(v).
anyone could help me?
Actually 1) can be used to find a counter-example to 2), and vice-versa.
Take tree $T$ with the root having two child subtrees $T_1, T_2$. $T_1$ is a node with many leaf children (say 10), and $T_2$ is a path of small length (say 2). You want to send the message to $T_1$ first, as $T_2$ will finish first even if receives the message second. Thus 1) won't work.
To show that 2) won't work, set $T_1$ as a node with two leaf children (a cherry), and $T_2$ as a path of large length. You want to send the message to the path first, even though its root has less children than $T_1$.
What I suggest is some kind of dynamic programming algorithm. For some internal node $v$, denote by $time(v)$ the minimum number of iterations needed to pass all messages to the $v$ subtree. Say $v$ has children $v_1, \ldots, v_k$. If you can find out how to compute $time(v)$ as a function of $time(v_1), \ldots, time(v_k)$, you can pass the message to the most time-consuming child (that hasn't had the message yet) at every iteration.