Approximating the biggest acyclic subgraph of a given weighted digraph $G= (V,E)$
First: The upper bound is as stupid as they come: Namely, that at most, the optimal solution contains all edges. 

With this upper bound, our approximating algorithm now asserts the following statement: 
In every weighted, directed graph $G =(V,E)$ there exists a subgraph $G' = (V,E'), E'\subseteq E$ so that $G'$ is acyclic, and $\sum_{e\in E'} weight(e) \ge \frac 1 2 \sum_{e\in E} weight(e)$, i.e. we can choose the edges in $E'$ so that they accumulate at least half of the weight of all edges in $E$.

To find such a graph $G'$, we enumerate the vertices in $V$ as $x_1,...,x_n$, and now create two edge sets using it:
$$
E_1 = \{(x_i,x_j)\in E\mid x_i&lt;x_j \} \\
E_2 = \{(x_i,x_j)\in E\mid x_i&gt;x_j \}
$$
Differently put, imagine the graph $G$. Now move the vertices, so that they form the line $x_1,...,x_n$ from left to right (while keeping the edges intact). 
Now, for $E_1$, you remove all edges going left.
For $E_2$, you remove all edges going right.

Each of the corresponding graphs $G_1 := (V,E_1), G_2:=(V,E_2)$ is acyclic, and $E_1\dot\cup E_2=E$, i.e. $E_1, E_2$ contain all edges in $E$ exactly once.

Therefore, either $G_1$ or $G_2$ has to contain at least half of the edge weight, and thus one of them is the wanted subgraph.