From the way you have phrased your question one can derive a couple of strong assumptions which simplify the problem tremendously and make it feasable:

- We do not look for an agent being able to play the game but only an evaluation of settlement options (no other agents to be considered)
- The evaluation of settlement options is static (i.e. does not change over time) and is independent of other settlements

From that two simple ideas come to my mind:

**1. the ML approach**
Look at historical game data and see which settlement options led to a win. So basically look at tuples of (X,y) with X being something like (W8, C2, O6) meaning that the settlement give access to wood with an 8, clay with a 2 and ore with a 6. And y indicating a win or loss.
To make it a bit dynamic you could differentiate between initial settlements (being placed at the beginning) and the ones during the game. So for each of these two categories you would derive basically a score for the possible settlements.

If you can compute all the possible combinations you will not even need ML since you can simply run the math once and then look it up. Might be doable in this case as the assumptions mentioned above simplify the problem a lot (compared to fully "solving" the game). Thinking through the possible combinations for a given settlement location (selecting 3 fields with A possible resources and B possible numbers) will quickly give you an idea about that.

**2. The classy symbolic approach**
What comes to my mind right away is linear programming as it offers a convenient way to model the strategic aspects you have mentioned. You could develop a target function to maximize using scores for different resources and numbers (e.g. you could give clay higher importance than wool). Besides that constraints can capture additional aspects of game strategies like "always make sure to have access to clay" or "do not settle where the 3 resources are the same" etc.

My very first idea to model this is using decision variables like X_(i,j) with X being 0 or 1, i representing the resources out of {clay, wood, ..., desert} (side note: do not forget the water and different ports here) and j modelling the numbers out of {2,...12}. The constraints would need to model the fact that you need to select 3 of those X_(i,j) for every settlement.

If you want to calculate this for a given game you would need to feed the model the possible settlement options based on the layout of that specific game. Then run the optimization and it gives you the best settlement option (i.e. the 3 feasable X_(i,j) maximizing your goal function).

Qua definition you need to bring in game knowledge for this approach. And probably talking to someone who is really good at the game would help to understand what matters.

1Could you be a little clearer on your definition of "best"? There are a few choices, but ones suitable for analysis usually focus on a precisely-defined measure. If your measure is "most likely to win the game ultimately" then that is a hard problem and there are lots of dependencies - critical is how the agent you are deciding for and the other players intend to play the game. Often an assumption of optimal play throughout is used, but is hard to define for games with greater than 2 players. – Neil Slater – 2019-10-23T08:30:05.400

The "The Settlers of Catan" game can be formalized in a simulation, for example with SmartSettlers. The next step is to inject domain knowledge in an abstract game. The advantage is, that this helps to reduce the game tree and explores possible macro actions. Then, a Monte-Carlo Tree Search gets started to find the optimal policy. – Manuel Rodriguez – 2019-10-23T09:10:07.210