referring to fig1 a diagram of the architecture of the cellular network assignment processor 10 in accordance with the present invention is shown . in the preferred embodiment , the cellular network assignment processor ( cap ) is adapted to solve constrained assignment problems , such as deghosting for angle - only information from three sensors . the cap processor 10 contains an array of processing cells 12 . each of the processing cells 12 is located at a particular address , and contains a cost register which stores the cost value of the assignment problem . information may be transmitted to and from the cells 12 through address lines 14 . each cell is also capable of comparing its own cost value with other cells to which it is connected to determine if it is a minimum or a maximum of the connected cost values . in addition , the cells 12 may contain a refractory period register which stores a given refractory period and counts down when that period is set for a given period of time . also , the cells 12 contain a solution - flag register which signifies that the cell 12 is chosen for a correct solution . it will be appreciated that implementation of these functions in each cell 12 can be performed with electrical circuitry comprising about 200 gates . an interconnect register 16 is connected to the address lines 14 and also is used to determine which of these cells 12 have identified themselves as being a minimum or a maximum . the interconnect register 16 implements the actual interconnection between the cells . also a cap control unit 20 instructs the cells to perform their various functions as will be described below . to begin the processing , a host cpu 22 and an interface unit 24 receive the cost information in the assignment problem and transmit this information to the cap control unit 20 , which in turn transmits the appropriate cost value to the corresponding cell 12 . in deghosting angle - only information from 3 sensors , there will be a three dimensional cube of cells . in fig1 the cells 12 are shown in two dimensions to simplify the drawing . it will be appreciated that the three address lines 14 connecting each cell permit a three dimensional cube of cells to be represented . rows of cells on a first , or x - axis in a first plane in the cube will correspond to all possible sensor angles for a first sensor . cell locations on the y - axis , perpendicular to the x - axis , correspond to all the possible sensor angles for a second sensor . likewise , locations for the z - axis , perpendicular to both the x and y - axis , represent all possible sensor angles for a third sensor . thus , a cell location or address may be defined by a coordinate system in which each coordinate represents a particular input parameter . referring now to fig2 the information to be stored in each cell 12 , represents triple intersects of three sensors . that is , when a sensor 26 detects a target 28 , a line is plotted from the sensor 26 location to the target 28 location . every point where the lines from the 3 sensors 26 all intersect is called a triple intersect . note , however , that some of these intersects represent real targets 28 and thus are valid , while some are &# 34 ; accidental &# 34 ; triple intersects and are invalid or &# 34 ; ghosts &# 34 ; 30 . the assignment problem is to eliminate the ghosts 30 or deghost the data , so that only actual targets 28 are detected . as will be appreciated , the host cpu 22 in fig1 can be connected to the sensors 26 and can detect the triple intersects and transmit the angular data from each sensor 26 that corresponds to each triple intersect . in addition , the host cpu 22 will also calculate the area of the triangles found in each triple intersect . this triangle 32 is formed because of measurement errors in the sensor data . even for valid targets , the triple intersect will not be point but will be instead a small triangular area formed by the three lines . the host cpu 22 will call a triple intersect those intersects , having a triangle with an area below a given criteria . the host cpu 22 will then transmit the digital data representing this area for each triple intersect to the cell 12 associated with those three angles for the three sensors . it is the area of this error triangle 32 that is the &# 34 ; cost &# 34 ; in the assignment problem . the cap processor 10 minimizes total cost by minimizing the area of the triangles 32 in a given solution . since triangles 32 corresponding to ghosts 30 will tend to be larger than those corresponding to real targets 28 , the cap processor 10 eliminates ghosts 30 by choosing solutions having smaller triangles 32 . the assumption that real targets 28 will have smaller triangles 32 than ghosts 30 is generally valid for problems having up to about 50 targets . as the density increases , with greater targets , the number of ghosts 30 becomes extremely large . for example , there may be tens of thousands of ghosts . at this point , the probability is increased that some ghosts may have smaller triangles than targets and performance could begin to degrade . in summary , the host cpu 22 receives the angular data from the sensors 26 , determines where triple intersects occur , and sends the area of the error triangle 32 of the triple intersect to the cell 12 associated with that set of angles from the three sensors . the cells 12 then , by their location or coordinates in the cap processor 10 , represent a mapping of a set of three sensor 26 angles , and each cell 12 stores the area of the error triangle 32 for that particular intersect . referring now to fig3 a , 3b and 3c , there is shown a flow chart of the steps performed by the cap processor 10 in finding an optimal solution to an assignment problem . it should be noted that costs may be defined so that the goal of the processing is to maximize or minimize cost . in the following discussions , the goal of the processing will be to maximize total cost . in the first step ( step 34 ), the host computer 22 is given a number of input parameters including the number of the row , or start row that is to initialize the process . it should be noted that each row in each of the three dimensions in the cube of cells 12 correspond to a particular angle for a particular sensor 26 . the total number of rows for each sensor 26 corresponds to the total number of real targets 28 . the host cpu 22 counts the number of rows in the current problem . also an arbitrary number of cycles is fed to the host cpu 22 . then , the cost data is fed into each cell 12 by the host cpu so that the cost data is located at a cell 12 at an address which corresponds to the location of that cost in the assignment space of the assignment problem . for example , in the 3 sensor deghosting problem the cost will comprise the area of an error triangle 32 for a particular triple intersect , and will be located at an address which represents the angle of a sensor 26 for that triple intersect . cells which are stored with costs are then interconnected by the interconnect register 16 , as follows . a cell are connected to all other cells 12 to which it has any potential conflicts . thus , the cell representing the triple intersect at address ( a , b , c ) will be connected to all other cells containing cost data having addresses of either ( a , x , x ), ( x , b , x ) or ( x , x , c ). as a result , if any single row contains two or more triple intersects , the group cells representing those intersects will be connected to each other by the interconnect register 16 . in other words , groups of cells 12 in particular rows are connected to other cells with they are in conflict . only one of the cells 12 in a particular row represents a true target 28 and the others represent ghosts 30 . next , the maximum cost in each row is determined . ( step 36 ) this may be the only cost in a particular row or it may be the maximum of whatever number of costs are in the particular row . where there are more than one cost in a row , only one is a valid target and the rest are ghosts . also , in this step ( step 36 ) a solution flag is set for the maximum cost . it should be noted , however , that some other way of assigning the initial flags , could be used , such as a random assignment of one cost per row . this is merely an initializing , or a first proposed solution , to create a starting point from which the cap processor 10 will move toward better and better solutions . a row counter and a cycle counter are also set to zero . these counters exist in software within the cap controller 20 . in the next step , ( step 38 ) the cap controller 10 finds the row that was defined as the start row in ( step 34 ). the cell in that start row whose flag is set is then located ( step 40 ). this is currently the chosen cell . the cap controller 20 next compares the chosen cell to all cells 12 that are connected to it ( step 42 ). the cap controller 20 next determines if there is a conflict between the associated location address ( ala ) of the selected cell and the ala of any cells 12 connected to it and whose flag is set ( step 44 ). by virtue of being connected , connected cells 12 have at least one of the three rows the same as the chosen cells , so they are in conflict . step 44 looks to see if any of the connected cells have a flag that is set . since the cells with flags represent potential solutions , the question is , are there any conflicts in this proposed solution . when a conflict is found in step 44 the row counter in the cap controller 20 is reset to zero . ( step 46 ), and the cycle counter is incremented by one . ( step 48 ) the cap controller 20 then determines if the maximum number of cycles has been reached . ( step 50 ) if it has , the invalid done flag is set and the ala of the chosen cell is transmitted to the host cpu 22 . ( step 52 ) if instead the maximum number of cycles has not been reached as determined in step 50 , the chosen cell will instead find the minimum cost value of those connected cells whose flags are set and not in the current row . ( step 54 ) the cap controller 20 will next look at the row containing the minimum cost value cell ( mcv ) found in step 54 . this row is now the new current row . ( step 56 ) next , every cell &# 39 ; s refractory period is decremented . ( step 58 ) the purpose of the refractory period is to avoid going back to the previous solution . this allows other solutions an opportunity to participate and thereby avoids oscillation . the refractory mechanism disables a particular solution for a period of time . next , the flag of the minimum cost value cell ( mcv ) which had a conflict is reset . ( step 60 ) resetting disconnects the cell . the refractory period then begins . ( step 60 ) the cap controller 20 then looks within the row for a refractory period which is equal to zero . ( step 62 ) if there are none , the refractory period of all cells in current row are decremented , ( step 64 ) and step 62 is repeated until there is a refractory period that is equal to zero . the maximum cost value in that row whose refractory period is zero is then selected , ( step 66 ) and the solution flag of that cell is set . ( step 68 ) this now becomes the chosen cell . the processor then proceeds back to step 42 and the connected cells are compared to the new chosen cell to determine if there are any conflicts with that cell . ( step 42 ) if there are still conflicts steps 44 - 68 are repeated . if there are no conflicts , the cap processor 10 proceeds to step 70 where the row counter is incremented by 1 . ( step 70 ) the row counter is then tested to see if the row counter has reached its maximum . ( step 72 ) if it has , then the cap processor 10 will have operated on all rows and a valid cell will have been found for each row . then the solution flag is set and the ala of the chosen cell is transmitted to the host cpu 22 as a valid solution ( step 74 ). if instead the row counter has not reached its maximum , then the cap processor 10 proceeds to the next row ( step 76 ), and steps 40 - 72 are repeated for the next row . in summary , once the cap processor 10 has operated on each row a potential solution will have been found . if the done flag has been set for a cell in each row and the ala of those cells are all independent ( none in conflict with one another ), a valid solution will have been found , and will be given to the host cpu . at this point the host cpu 22 can stop the process and the solution found may be obtained . alternatively , the host cpu 22 may instruct the cap controller 20 to initiate the process again . due to the randomness of refractory periods the cap controller 10 could converge to a different solution the next time . thus the host cpu 22 may keep a running history of the best solutions and only the best solution may be utilized . in addition , the host cpu 22 may contain an interrupt function which permits the current solution to be accessed at any particular time . this interrupt feature is often a requirement for real - time systems where the time the processor is given to arrive at a solution may vary . the complexity of the problem to be solved will determine the number of times the number of final solutions to be found . it should be noted that beyond solving the deghosting problem for angle - only data from three sensors , the present invention may be adapted to solve other assignment problems such as the traveling salesman problem , optimal plot - to - track correlation processing , optimal weapons allocation , computarized tonography and others . it will be appreciated that the basic components of the cap processor 10 may be implemented with conventional electrical circuits such as programmable logic devices . also , optical devices may be used for some of the functions . from the foregoing description it can be appreciated that the present invention provides a cellular network assignment processor 10 capable of solving assignment problems in real - time , at speeds of 3 - 4 orders - of - magnitude faster than conventional solutions . those skilled in the art can appreciate that other advantages can be obtained from the use of this invention and that modification can be made without departing from the true spirit of the invention after studying the specification , drawings and following claims .