Find all functions $f\colon \mathbb{Q}\to \mathbb{R}_{\geq 0}$ such that for any two rational numbers $x$ and $y$ the following conditions hold
[list]
[*] $f(x+y)\leq f(x)+f(y)$,
[*]$f(xy)=f(x)f(y)$,
[*]$f(2)=1/2$.
[/list]
1. **Verification of the given function:**

   We are given the function \( f(r) = 2^{-\nu_2(r)} \) for \( r \neq 0 \) and \( f(0) = 0 \). We need to verify that this function satisfies the given conditions:
   
   - **Condition 1: \( f(x+y) \leq f(x) + f(y) \)**
   
     We know that \( \nu_2(x+y) \geq \min\{\nu_2(x), \nu_2(y)\} \). Therefore,
     \[
     f(x+y) = 2^{-\nu_2(x+y)} \leq 2^{-\min\{\nu_2(x), \nu_2(y)\}} \leq 2^{-\nu_2(x)} + 2^{-\nu_2(y)} = f(x) + f(y).
     \]
   
   - **Condition 2: \( f(xy) = f(x)f(y) \)**
   
     By definition,
     \[
     f(xy) = 2^{-\nu_2(xy)} = 2^{-\nu_2(x) - \nu_2(y)} = 2^{-\nu_2(x)} \cdot 2^{-\nu_2(y)} = f(x)f(y).
     \]
   
   - **Condition 3: \( f(2) = \frac{1}{2} \)**
   
     For \( r = 2 \), we have \( \nu_2(2) = 1 \), so
     \[
     f(2) = 2^{-\nu_2(2)} = 2^{-1} = \frac{1}{2}.
     \]

2. **Proof that this is the only function satisfying the conditions:**

   - From the second condition, by considering the pairs \((x, y) = (0, 2)\) and \((1, 2)\), we get:
     \[
     f(0) = 0 \quad \text{and} \quad f(1) = 1.
     \]
   
   - We also get \( f(2^k) = \frac{1}{2^k} \). In fact, \( f \) is multiplicative over \(\mathbb{Q}\). Furthermore, we may obtain \( f(-1) = 1 \) from \((x, y) = (-1, -1)\), and \( f(-r) = f(r) \) for all rational numbers \( r \).

   - From the first condition, we get \( f(y) \geq |f(x+y) - f(x)| \) for all pairs \((x, y)\).

     Set \( y = 2^a \). We get:
     \[
     \frac{1}{2^a} \geq |f(x + 2^a) - f(x)|.
     \]
     Choose an arbitrary positive integer \( t \) and write it in the form \( 2^{a_1} + 2^{a_2} + \cdots + 2^{a_n} \). Using the triangle inequality, we obtain:
     \[
     |f(x + t) - f(x)| \leq |f(x + t) - f(x + t - 2^{a_n})| + |f(x + t - 2^{a_n}) - f(x + t - 2^{a_n} - 2^{a_{n-1}})| + \cdots + |f(x + 2^{a_1}) - f(x)|
     \]
     \[
     \leq \frac{1}{2^{a_n}} + \cdots + \frac{1}{2^{a_1}} < \frac{2}{2^{a_1}}.
     \]

   - We now claim that for any prime \( p \geq 3 \), we have \( f(p) = 1 \), which automatically implies the desired conclusion.

     Let \( t = p^u - p^v \) and \( x = p^v \). Then we have:
     \[
     \frac{2}{2^{\nu_2(p^u - p^v)}} \geq |f(p)^u - f(p)^v|.
     \]
     If \( f(p) > 1 \), then we fix \( u - v \) and let \( u \) be large. This yields a contradiction.
     If \( f(p) < 1 \), let \( x = 1 \) and \( t = p^k - 1 \). We have:
     \[
     \frac{2}{2^{\nu_2(p^k - 1)}} \geq |1 - f(p)^k|.
     \]
     Setting \( k \) to be a large power of 2, we get a contradiction.

     Hence, \( f(p) = 1 \) and we are done.

The final answer is \( \boxed{ f(r) = 2^{-\nu_2(r)} } \) for \( r \neq 0 \) and \( f(0) = 0 \).