i'm given an directed weighted graph like this one

i have to write a program that given a input of arbitrary points i.e 4, 1, 3, 6, find the shortest path that passes through each vertex only once
can anyone tell me a algorithm that can solve this? Doing this in java btw, will don8 if i can understand/use your answer totally stumped atm
This post was edited by bakalolo on Apr 4 2013 02:33pm