So I'm a bit confused by this optimization word problem. I would be able to solve it I think given number values for the speeds but I'm uncertain how to get an exact answer when you don't know the difference between $v_1$ and $v_2$. Maybe I'm just not sure how to approach the question.
You stand adjacent to point $A$ at the edge of a circular lake of radius $r$. Want to get to $B$ diametrically opposite $A$. You can swim straight, run around the shore, or swim to a point $C$ somewhere in between and run the rest of the way to $B$.
Assume running speed $v_1$, swimming speed $v_2$, with $v_2 < v_1$.

Since the lake is circular, we can use angles to determine the position of the person and the points. Let point A be at $0 ^{\circ}$ and point B be at $180 ^{\circ}$
Note that the segment between point A and point C in the circle is a chord, and its length can easily be found and proven as well.
I would approach this problem by creating a time function based on the angle between point A, center of the lake, and some point C at the edge of a lake. This function measures the total time for the person to reach from point A to the midpoint of the lake.
There would be two components to this function, the time it took for the person to swim and the time it took for the person to run. These two components are also based on the angle of the function. There is a relationship to these two components based on the angle: the longer the person swims, the shorter amount s/he has to run around the lake to the midpoint.
After you generate a time function that reflects the two components and how they're related, it's simply taking a matter of the function's derivative to find the absolute minima of the time.