# How can I approximate a function that determines the priority of objects?

I am facing the following supervised learning problem:

An object is fully characterized by its position in $$R^n$$. There are $$m$$ objects. There are fully observable (i.e. their positions are always known).

At each time step $$t$$, exactly one of these objects is activated. Activation is fully observable, i.e. the index $$a_t$$ ($$a_t \in [1,m]$$) of the object activated at time $$t$$ is known.

We know that, under the hood, activation works this way: there is a priority function $$f$$ ($$f: R^n \to R$$ ), which computes, for each time step, the priority score of each object. The object for which the priority score was the highest is activated.

The goal is to find (the approximation of) one of the possible priority functions that would match a given data-set. A data-set is of size $$(m*n+1)*t$$ ($$m$$ positions of dimension $$n$$, plus the index of the activated object, over $$t$$ time steps).

As an example, if it turns out there is a hidden fixed beacon, and at each time step $$t$$ the object the closest to the beacon is activated, then a possible function would be $$f(o_{it})=1/d_{it}$$, where $$d_{it}$$ is the distance between the beacon and the object $$o_i$$ at time $$t$$.

(If several objects have the same highest priority score, then only one of them is activated, selected randomly).

The function found by the algorithm may be parametric and encoded by a neural network, if this is applicable.

Is there a method for finding one such function ?