A core subproblem for TAC agents is the allocation problem: finding the most profitable allocation of goods to clients, , given a set of owned goods and prices for all other goods. The allocation problem corresponds to finding in Equation 3. We denote the value of (i.e., the score one would attain with ) as . The general allocation problem is NP-complete, as it is equivalent to the set-packing problem [Garey JohnsonGarey Johnson1979]. However it can be solved tractably in TAC via integer linear programming [Stone, Littman, Singh, KearnsStone et al.2001].
The solution to the integer linear program is a value-maximizing allocation of owned resources to clients along with a list of resources that need to be purchased. Using the linear programming package ``LPsolve'', ATTac-2001 is usually able to find the globally optimal solution in under 0.01 seconds on a 650 MHz Pentium II. However, since integer linear programming is an NP-complete problem, some inputs can lead to a great deal of search over the integrality constraints, and therefore significantly longer solution times. When only is needed (as opposed to itself), the upper bound produced by LPsolve prior to the search over the integrality constraints, known as the LP relaxation, can be used as an estimate. The LP relaxation can always be generated very quickly.
Note that this is not by any means the only possible formulation of the allocation problem. boyan01 boyan01 studied a fast, heuristic search variant and found that it performed extremely well on a collection of large, random allocation problems. JAIR-tac00 JAIR-tac00 used a randomized greedy strategy as a fallback for the cases in which the linear program took too long to solve.