We aim to assign a set of facilities to a set of locations.
The objective is to minimize the total cost, which is equal to the distance between locations times the flow between facilities.
Example input data:

1. facilities.csv
facility_id
1
2
3
4

2. locations.csv
location_id
1
2
3
4

3. flow.csv
facility_id_1,facility_id_2,flow
1,2,10
1,3,8
1,4,12
2,3,6
2,4,9
3,4,7

4. distance.csv
location_id_1,location_id_2,distance
1,2,4
1,3,7
1,4,3
2,3,5
2,4,6
3,4,2
