If B1, B2 & B3 are the boxes
{ My approach:
1. B1-B2-B3
2.#-B2-B3-B1
3. #-#-B3-B1-B2
& so on }
Steps
1. B1 (29 Artifacts)(1 Checkpoint) B2 (28 Artifacts)(2 Checkpoint) B3 (27 Artifacts)(3 Checkpoint)
2. B2 (28 Artifacts)(2 Checkpoint) B3 (27 Artifacts)(3 Checkpoint) B1 (27 Artifacts)(4 Checkpoint)..........
17. B3 (21 Artifacts)(12 Checkpoint) B1 (21 Artifacts)(13 Checkpoint) B2 (20 Artifacts)(14 Checkpoint)
18. B3 (11 Artifacts)(13 Checkpoint) B1 (30 Artifacts)(13 Checkpoint) B2 (20 Artifacts)(14 Checkpoint)
19. B1 (30 Artifacts)(13 Checkpoint) B3 (0 Artifacts)(14 Checkpoint) B2 (30 Artifacts)(14 Checkpoint) [ B3 is left behind]
20. B2 (30 Artifacts)(14 Checkpoint) B1 (28 Artifacts)(15 Checkpoint) ........
34. B2 (16 Artifacts)(28 Checkpoint) B1 (14 Artifacts)(29 Checkpoint)
35. B2 (29 Artifacts)(29 Checkpoint) B1 (0 Artifacts)(29 Checkpoint) [B1 is left behind]
36. B2 (28 Artifacts)(30 Checkpoint)
So in the end, Anya can manage to bring 28 Artifacts with her after the 30th checkpoint if she doesn't mind going back and forth a lot to save just 3 boxes more.
There is another simpler approach to this that can manage to save 25 Artifacts at the end
1. Carry all the 3 boxes till the 10th Checkpoint (20, 20, 20). Now take the 20 from the 1st box and split 10 each to the remaining 2 boxes (0, 30, 30)
2. Carry the 2 boxes till the 25th Checkpoint (15, 15) Now Empty 1 box onto another (0, 30)
3. Carry the 1 box to the end (30th) ==> 30 - 5 = 25 Boxes available at the end.