For every finite set of real numbers, $S = ${$a_1,a_2,...,a_n$}, which satisfies the condition of the problem, that every element of $S$ can be written as the sum of two elements, each of which is in $S$ but not necessarily distinct, there corresponds a directed graph $G_S$ with the following construction:
Each element of $S$ is associated with a vertex in $G_S$, according to the rule $a_i \in S \rightarrow V_i \in G_S$. A vertex $V_i \in G_S$ is connected to another vertex $V_k \in G_S$ by an edge $E_j$ if and only if $a_i + a_j = a_k$. This notation for the edges reflects a special property of the directed graph $G_S$, namely that each edge of this graph is associated with an element of $S$.
A useful fact is that the number of times the edge $E_i$ appears on the graph is equal to the number of outgoing edges originating at the vertex $V_i$. This follows simply from the observation that if $a_i + a_j = a_k$, then we have both $V_i \rightarrow(E_j)\rightarrow V_k$ and $V_j \rightarrow(E_i)\rightarrow V_k$.
(The notation $V_i \rightarrow(E_j)\rightarrow V_k$ indicates that there is an edge $E_j$ directed from the vertex $V_i$ to the vertex $V_k$)
The basic idea of the solution is as follows: we will choose an arbitrary vertex $V_i \in G_S$ and construct a path $P$ which leads to $V_i$. The construction of this path is such that it will contain no repeated edges; furthermore, we will be able to continue to add vertex's to this path until we find a closed cycle. It's clear that a closed cycle in $G_S$ with no repeat edges corresponds to zero sum subset in $S$. (the sum over the numbers associated with these edges is zero)
Choose an arbitrary vertex $V_i \in G_S$. Since every vertex has at least one incoming edge, there is some vertex $V_j$ which has an outgoing edge, say $E_k$ which connects to $V_i$. So the initial path is $P = V_j \rightarrow(E_k)\rightarrow V_i$.
We will now begin adding one vertex to the path at a time, and checking for repeated edges. It will of course always be possible to find another vertex to add to the path, since every vertex in $G_S$ has at least one incoming edge.
Let's assume that we have been adding vertex's to our path $P$ with no repeated edges occurring, but then we add one more vertex, say $V_x$, and it's connecting edge is a repeat, say $E_l$. We can eliminate either one or both occurrences of the repeated edge by inserting the vertex associated with that edge into the path. This is illustrated below:
Suppose,
$P = V_x \rightarrow(E_l)\rightarrow ... V_r \rightarrow(E_l)\rightarrow V_m \rightarrow...\rightarrow V_j \rightarrow(E_k)\rightarrow V_i$
We can eliminate one or both occurrences of the edge $E_l$ by inserting $V_l$ into the path, connecting it to either the vertex which the first occurrence of the repeated edge connects to, or else connecting it to the vertex for which the second occurrence of the repeated edge connects to, and deleting the portions of the path which occur before the insertion. In other words, the path $P$ can become:
$P = V_l \rightarrow(E_r)\rightarrow V_m \rightarrow...\rightarrow V_j \rightarrow(E_k)\rightarrow V_i$
If the edge $E_r$ occurs already in the path, then we simply repeat the procedure, this time inserting the vertex $V_r$, and repeat, until the path contains no repeated edges.
If after this procedure is complete, the initial vertex on the path is the same as some other vertex already on the path, then we have found a closed cycle with no repeat edges.
Suppose we add a vertex to the path, say $V_x$, we find that it's outgoing edge, $E_a$, which connects to $V_y$, is repeated, furthermore suppose that the vertex $V_a$ is already part of the path, but the edge $E_x$ is not. In this case we have found a closed cycle with no repeat edges, because from $a_x + a_a = a_y$, we have $V_a \rightarrow(E_x)\rightarrow V_y$.
It might happen during the application of this procedure for constructing the path $P$, that we arrive at a cycle which alternates between 2 fixed paths; this is illustrated below:
after M iterations:
$P_M = V_x \rightarrow ... V_r \rightarrow ... \rightarrow V_m \rightarrow...\rightarrow V_j \rightarrow(E_k)\rightarrow V_i$
After M+K iterations:
$P_{M+K} = V_y \rightarrow ... V_q \rightarrow ... \rightarrow V_m \rightarrow...\rightarrow V_j \rightarrow(E_k)\rightarrow V_i$
and so on...
In this expression, $(V_m \rightarrow...\rightarrow V_j \rightarrow(E_k)\rightarrow V_i)$ represents the same path, while $(V_x \rightarrow ... V_r \rightarrow ...)$ and $(V_y \rightarrow ... V_q \rightarrow ...)$ represent different paths.
In order for what I call an "alternating path cycle" like this to occur, two things must be true:
each time we add a vertex to the path, we do so in a way such that we choose the same sequence of incoming edges and vertex's for each iteration of the alternating path cycle.
one of the vertex's appearing in one of the paths has it's corresponding edge occur twice in the other path.
The fact that an edge occurs twice in one of the paths indicates that the vertex corresponding to this edge has multiple outgoing edges, leading to different vertex's. This means that for any alternating path cycle, we will always be able to escape from the cycle by choosing a different sequence of vertex's and edges to add to the path, as illustrated below:
Suppose $P_M$ and $P_{M+K}$ are two paths which constitute the "end points" an alternating path cycle. If $V_a$ appears in path $P_M$, while edge $E_a$ occurs twice in path $P_{M+K}$; then we have a choice of two different points along the path $P_{M+K}$ for which to insert the vertex $V_a$; therefore, we are not forced to choose the same sequence of edges and vertex's to add to the path $P$, and so we violate the first condition for an alternating path cycle to occur.
And so we see that we will always be able to add another vertex's to the path $P$ which leads to our arbitrarily chosen initial vertex $V_i$; and since we can add an infinite number of vertex's to the path (one at a time) with this procedure, and the total number of available vertex's is finite, we will eventually add a repeated vertex to the path; since this path has no repeat edges by construction, this closed cycle it contains has no repeat edges, and the sum along the edges of this closed cycle is a zero sum subset of $S$.
I realize that this solution needs to be written up more rigorously. I also realize that it's very likely I have overlooked something or made a big mistake somewhere. The key issue for me is to make sure that I have properly analyzed every case of what can happen when I add one more vertex to the path $P$, to make sure that the statement "...since we can add an infinite number of vertex's to the path (one at a time) with this procedure, and the total number of available vertex's is finite, we will eventually add a repeated vertex to the path." is valid. I think the "alternating path cycle" is one thing that can go wrong, but I'm not convinced this is the only thing that can go wrong.
...
EDIT: I will use this space to respond to comments
@Gjergji: The zero sum subset of S which corresponds to a closed cycle is the sum over the edges of that cycle, so if r=l like you say, we only include in the zero sum subset the number corresponding to that edge, not the vertex; I therefore don't see r=l as a problem, but perhaps I am missing something.
In response to "I don't understand how you get a cycle with different edges...". Could you please identify which parts of my argument you object to/are confused about. It might help you to understand what I am trying to say if you draw the graph for some set S that satisfies the condition and just start constructing a path in the way I outline.
@Gjergji: I really appreciate that you have taken the time to respond twice. I am just an amateur, and I have been working on this problem for awhile, so it means a lot to me. Let me try and explain why I disagree with you about r=l.
Consider the path:
$P = V_x \rightarrow(E_r)\rightarrow V_z ... V_r \rightarrow(E_r)\rightarrow V_m \rightarrow...\rightarrow V_j \rightarrow(E_k)\rightarrow V_i$
now I switch $V_x$ with $V_r$ and form a closed cycle where the edge $E_r$ does not appear (the closed cycle terminates immediately before the occurrence of the edge $E_r$.)
$P = V_r \rightarrow(E_x)\rightarrow V_z ... V_r \rightarrow(E_r)\rightarrow V_m \rightarrow...\rightarrow V_j \rightarrow(E_k)\rightarrow V_i$
So the cycle is $V_r \rightarrow(E_x)\rightarrow V_z ... V_r.$
$a_i = a_j + a_k$restrict the vector$(a_1, \dots, a_n)$to a linear subspace $L$ of $\mathbb{R}^n$. There are only $2^n-1$ conditions that a sum be 0, so each one is a hyperplane. If there is no solution then each such hyperplane intersected with $L$ is a hyperplane in that subspace. But the finite union of hyperplanes can't be the whole space, so there is some point with rational coordinates (since a hyperplane is closed -- the remaining set is open). – Victor Miller Mar 4 2010 at 14:29