I have a set of origin points and a set of destination points. Destinations are divided in 3 types: A, B, and C. The amount of occurences of each type varies. For each origin, I need the shortest path along one occurence of each type, i.e. the shortest path along an A, a B, and a C. The real-world problem is: give me for every house the shortest path that connects a baker, a bookshop, and a drugstore. It does not matter which baker/bookshop/drugstore, I just need my shoppings.
I'd try Closest Facility, but I'm not sure if it will differentiate between the business types (I deal with Fire Stations and have not had to separate the different types of apparatus within Network Analysis) so you might have to run CF three times - once for each type of business. Set the businesses as facilities, the homes an incidents, and solve for one facility, "to the facility."
This is a combinatorial problem so there is no one "solve" that will give you the answer. But you can use closest facility many times to generate the alternatives and then pick the shortest route.
For example, start from your location, find the closest baker. Then from the closest baker find the closest bookstore and from the closest bookstore, the closet drug store. Then repeat from the the closest baker, find the closest drug store and from the closest drugstore find the closest bookstore.
Repeat by starting from your location to find the closest bookstore and then the closest drug store.
You can either sum up the distances between all pairs of combinations to find the shortest OR you could create a route layer and load the various sequences with the same Routename and solve and then pick the shortest route from all of them.
This will work quickly as long as you have a few "different" types of locations to visit.