Mary is now M years old
Ann is now A years old
x = the first mentioned number of years in the past
y = the mentioned number of years in the future
z = the second mentioned number of years in the past
Mary is twice as old as Ann was (x years ago)
M = 2(A-x)
(x years ago) was when Mary was half as old as Ann will be (y years from now)
M-x = 
(A+y)
(y years from now is) when she (Ann) is three times as old as Mary was 
(z years ago) 
A+y = 3(M-z)
when she was three times as old as Ann (was z years ago)
M-z = 3(A-z)
M = 2(A-x)
M-x = 
(A+y)
A+y = 3(M-z)
M-z=3(A-z)
That's 4 equations in 5 unknowns, so there probably are
more than one answer
  M - 2A          +  x = 0
 2M -  A - y      - 2x = 0
-3M +  A + y + 3z      = 0
  M - 3A     + 2z      = 0
Solving that by matrices gives:
(M,A,y,z) = (6x,10x,12x,4x)
The youngest they could be is when x=1 year ago, y=12 years from now,
and z=4 years ago:  Mary is now 6, Ann is now 10.
The next youngest they could be is when x=2 year ago, y=24 years from now,
and z=8 years ago:  Mary is now 12, Ann is now 20.
The next youngest they could be is when x=3 year ago, y=36 years from now,
and z=12 years ago:  Mary is now 18, Ann is now 30.
etc. etc.
Edwin