PROCESSOR FOR DYNAMIC PROGRAMMING

Abstract: Parallel/pipeline processor designed to quite rapidly solve optimization problems with dynamic programming. The state variables (Si) and optimum costs (Qi) associated with a transition are presented simultaneously to a plurality of parallel comparators (19) at the base of a tree of comparators. Such values are presented in a serpentine memory arrangement (11, 12) which sequentially advances the values between the base comparators (19) to enable the comparator tree to compute optimum transitions for successive state space cells in a pipeline fashion.

Description: PROCESSOR FOR.DYNAMIC PROGRAMMING The present invention relates to processors and, more particularly, to a processor having a parallel pipeline architecture designe especially to solve dynamic programming problems rapidly. Dynamic programming provides a sequential decision- making approach for solving optimization problems. For example, the minimum fuel path of an aircraft between two locations often can be determined by using dynamic programming. In basic terms, dynamic programming con¬ verts a comparison of the many overall choices to select the optimum choice into a sequential comparison of much simpler intermediate optimization problems. In the air¬ craft example, the space (typically called a "state space") through which the aircraft can travel is divided into a multiple number of space volumes or cells. The optimum transitions from one cell to each of the adja- cent ones closer to the end point is then calculated. The optimum transition may be dependent, for example, on the altitude and velocity of the aircraft. The candidate optimum transitions of the aircraft from each and every one of the cells within which it can exist in the state space between the starting and end points are compared, and these optimum transitions are utilized to calculate the overall optimum path between the two points. Dynamic programming typically is carried out in reverse, i.e., by starting the αiwpi calculations at the cell containing the end point and performing the calculations in reverse therefrom. While the above example is based on the path of an aircraft between two points, dynamic programming is applicable to many other types of optimization problems in. which a state space (not necessarily representative of physical space or volume) can be divided into cells. Manufacturing process control problems which can be characterized by a sequential solution of simpler inter mediate optimization problems are also subject to dynamic programming solution. More details and specifi explanations of dynamic programming can be found in the books entitled . " Applied Dynamic Programming by R.E. Bellman and S.E. Dreyfus, Princeton University Press (1962) and State Increment Dynamic Programming by R.E. Larson, American Elsevier Publishing Company, Inc., (1968) New York. While dynamic programming is a powerful tool for solving optimization problems, it has not found any significant usage in real-time applications in which solutions are required or desired relatively rapidly. For example, before the present invention, dynamic pro¬ gramming could not, as a practical matter, be used to determine the optimum path for a moving aircraft in real-time. The difficulty is that conventional digital computers on which such programs are solved are limited to serial solutions. It will be recognized that to solve a dynamic programming problem, it is necessary to serially make numerous computations, each one of which is dependent upon the results obtained in earlier comparisons. In any real-time situation, even with ver fast processing speeds, it often takes more than a minute to obtain a solution. Again considering an air¬ craft, if an optimum pa.th to some location from an aircraft's present position was chosen by a dynamic programming solution using conventional techniques, by the time the solution was obtained, the aircraft would have so materially changed its position the solution would be relatively meaningless. Although parallel algorithms for dynamic program- ming problems have been described in the past (see the paper entitled "Parallel Processing Algorithms for the Optimal Control of Non-Linear Dynamic Systems" by R.E. Larson and E. Tse, I.E.E.E. Transactions oil Computers , Volume C-22, No. 8, August 1973, pages 777-786), suffi- ciently adequate methods of organizing the data and passing it between computational elements have not been provided prior to the instant invention to permit the design of a parallel dynamic programming device. That is, the intermediate solutions required for optimum transitions from adjacent cells often require the same information. The resulting necessity for interprocessor communication in any conventional arrangement has added more complexity and time to dynamic programming device designs to warrant their use. Summary of the Invention The present invention provides a processor especial¬ ly designed to solve dynamic programs in a minimum of time and without the necessity of complex interprocessor communication. " It accomplishes this by providing separ- ate computation means to simultaneously make the comparisons necessary to determine the optimum one of the numerous transitions which can be made to or from one cell to any allowable one adjacent thereto. In this connection, it includes a memory arrangement which simultaneously presents to a plurality of computation means, the data associated with various pairs of candi¬ date transitions to or from a cell being investigated. As a particularly salient feature of the instant inven¬ tion, the computation means are so related to one another, and the memory means is so designed, that com- putations for the candidate transitions to or from cells OirtPI * <fy. WIPO which are adjacent to one another can be made simulta¬ neously without contention for data by the different computation means. In a very basic sense, the process of the invention can be referred to as' a parallel/pipe line computer architecture. The invention includes other features and advan¬ tages which will be described or will become apparent from the following more detailed description of a preferred embodiment. Brief Description of the Drawing With reference to the accompanying four sheets of drawing: FIGs. 1(a)-1(c) provide a simple example of dynam programming to facilitate an understanding of the present invention; FIG. 2 is a representation of a state space and the manner in which it is scanned by a preferred embodiment of the invention; FIGs. 3 and 4 are block diagrams illustrating a memory arrangement for presenting data to the computa¬ tion architecture of FIG. 5; FIG. 5 is a block diagram of a preferred embodime of the computer architecture of the invention, designe to solve a two-state, aircraft path dynamic program; a FIG. 6 is a schematic logic diagram illustrating in more detail the design of a comparator circuit for the initial comparison of a pair of transitions from a cell in a state space. Detailed Description of a Preferred Embodiment For an understanding of the present invention and a true appreciation of the advance in the state of the art it represents, a fundamental understanding of dynamic programming is believed to be necessary. As mentioned previously, dynamic programming is an approa for solving optimization (maximization or minimization problems. In other words, dynamic programming convert the simultaneous determinations of an entire optimization into a plurality of sequential solutions of vastly simpler intermediate optimization problems. The result¬ ing overall solution is precisely the same solution which would be obtained if one exhaustively checked all possible transition combinations, and is obtained without actually performing such a computationally prohibitive search. A dynamic programming problem is characterized by the fact that the decision made at one time affects the decisions made later in the process, and is not just a decision unto its own. In explicit dynamic programming, the overall problem is divided into "stages" of a "state space". (The term "dimension" or "dimensions" is sometimes used as an alternative to the term "state space". However, neither dynamic programming nor the instant invention is in any way limited to problems in which the state space represents geometric dimensions, and for this reason the term "state space" will be used herein to avoid possible confusion.) The state space is itself divided into a plurality of adjacent "cells". Generally, in a dynamic programming problem the goal is to advance from a state space cell in one stage to a state space cell in another stage until the cell in the stage and state space representative of the final solution is reached. The issue with respect to each transition from one stage to another is into which state space cell of the new stage should the transition be made in order to achieve the optimum transition. It should be noted that while the problem described herein solved by the instant invention requires an advancement from one cell in the state space to an adjacent cell at the next stage, from the conceptual standpoint dynamic programming is not so limited. That is, some problems may permit transition to any cell in the next stage. O PI . WIPO The instant invention is equally applicable to the solution of such other problems. The basic features characteristic of most problem suitable for solution by dynamic programming are as follows: 1. the overall problem can be divided into stages, with a policy decision required at each stage; 2. each stage has a number of states (state space cells) associated therewith; 3. the effect of the policy decision at eac stage is to transform the current state into a state associated with the next stage (possibly according to a probability distribution) ; 4. given the current state, the optimum policy decisions for the remaining stages is inde pendent of the policy adopted in previous stages; 5. the solution procedure begins by finding the optimum policy for each state at either the beginning or last stage; 6. a recursive relationship is available which identifies the optimum policy for each stat space with a specified number of stages remaining, given the optimum policy for each state with the specified number of stages remaining, less one; a 7. using this recursive relationship, the solution procedure moves from stage to stage unti the optimum overall decision is made. The equations of any dynamic system undergoing dynamic programming can be linear or non-linear and time-varying. The criteria on which the optimization based can be quite arbitrary. Constraints of a wide variety are permitted. Random effects of a very gener nature can be rigorously taken into account, by using the same analytic formulation. In addition, the vari¬ ables representing a state space are almost always chosen to provide an absolute optimum in each state space, rather than a local optimum. Moreover, most dynamic program solutions specify the optimum transition at each state of the system for every stage; thus, a dynamic programming solution can be implemented as a feedback (closed-loop) controller, in which the state of the system is constantly measured and the corresponding optimum control is applied. FIGs. 1(a) through 1(c) are included to illustrate graphically dynamic programming applied to a simple, one- state optimization problem. Let it be assumed that we are interested in knowing the flight path of an aircraft to a specified landing field location which will use the minimum amount of fuel. The aircraft of concern is cap- able of changing altitude but is incapable of turning either left or right, i.e., the aircraft will start out and stay in a single geometric plane containing the starting location and the landing field. Let it further- be assumed that the "state space" in which the aircraft is to end its flight is known, but there are a plurality of different airfields or "cells" from which the aircraft could start. Thus, "reverse" dynamic programming is a more suitable tool for solving the optimization problem, than "forward" dynamic programming. The grid pattern illustrated in FIGs. 1(a) through 1(c) represents a typical state space for such an air¬ craft problem. As illustrated, there are eight stages, each one of which is made up of five state cells. In this particular problem, the stages correspond to inter- vals along the ground track, and the states correspond to the altitude of the aircraft. The "cost" of flying in any particular state space cell is proportional to the amount of fuel needed to fly at the altitude repre¬ sented thereby. The numbers inserted in each of the state space cells of FIG. 1(a) represent such cost. Transitions of the aircraft are limited to movement QMPi ~ ΪPO"~ thereof from the cell in the stage in- which it finds itself to a cell of the succeeding stage adjacent to the cell within which it is in. As will be recognized this will require the aircraft to either gain altitude diagonally, remain at the same altitude, or lose alti¬ tude diagonally. Thus, there is also a cost in fuel required for the transition itself. Let us assume tha each of these transition costs can be represented by the unit 1 for a loss of altitude, the"unit 1.5 for staying at the same altitude, and the unit 2.5 for a gain of altitude. The total cost for a transition to a new cell in an adjacent stage is the sum of the cost of flying in such cell and the cost of making the tran sition thereto. This total cost will be identified herein by the letter "S". While the total cost in this particular problem includes an actual physical transition of the aircraft from one state space cell to another, the term "transi tion" as used herein is meant not only to encompass data associated with such an actual transition but als data defining one or more other variables associated with a state space cell being checked. Let it be assumed that the landing field is in th first state cell of the last stage, i.e., stage 8. Th only state 1 in such stage is "allowable". And, the only states in stage 7 which are allowable are those two states adjacent to state 1 in stage 8, i.e., state 1 and 2 of stage 7. The first step is to calculate for each of the allowable states (or cells) at stage 7, the cost of a transition to state 1 of stage 8. FIG. 1(b) provides the results. The numerals in the first two cells of stage 7 indicate the total cost in fuel associated wit a transition through such states and a transition to t end, stage 8, state 1. The arrows represent the opti transition paths. Since there is only one allowable path from each of the two states in stage 7 to the end state in stage 8, the arrows in this particular situation represent the only path. The numerals "8" and "9.5" in the two states 1 and 2 (stage 7) represent, respectively, the total overall cost associated with the transition from the cells within which they are found, to the last stage. Notice that this overall cost to the last state in the last stage has replaced the cost set forth in FIG. 1(a) associated with each cell. This overall cost to the end is referred to herein as "Q". Continue calculation for each stage in the reverse direction, at each stage calculating, for every allow¬ able state, the best state in which to go in the succeeding stage. Note that this single stage optimiza- tion is "globally optimum" in the sense that the best path and total cost for each state from the next stage to the end has already been calculated. FIG. 1(c) presents the total cost to the end ("Q") for all allowable states at all stages. Note that there are transition ties, i.e., transitions from one stage to the next succeeding state can be optimally made to more than one state space cell. Such transitions are indica¬ ted by more than one arrow extending from a cell in one stage into cells of the next succeeding stage. In actual practice, rouήd-off errors will typically cause two equal paths to be slightly different, resolving such potential conflicts. The overall optimum path is indicated by the minimum total cost set forth in a cell of stage 1. This minimum is "23" in state 5 of stage 1, and the optimum path is indicated by the arrows extending from such state to state 1 of stage 8. It should be noted that although in the above example the various costs were added to arrive at an actual cost, and thus the "cost function" is the sum of the cost at each stage, in some problems, the cost function may be the product of the costs at each stage. Such calculations are often simplified in dynamic pro¬ gramming by employing as costs the logarithms of the actual values involved, so that addition can be substi- tuted for the multiplication. There are, however, othe functions on the cost besides addition and multiplica¬ tion, which could be optimized, and the instant inventi is not function limited. Whereas the above simple example of dynamic progra ming is based on a one-state (or one dimension) problem most practical problems require dynamic programming of plurality of state dimensions. The preferred embodimen of the invention will be described with an architecture for solving a two-state problem involving aircraft flight. However, it will be recognized by those skille in the art that the principles on which the architectur is based are applicable to solving optimization problem with dynamic programming utilizing any number of states The architecture need only be expanded to handle addi- tioπal states, or retracted to handle a single state. FIG. 2 graphically illustrates a two-state aircraf optimization problem and how the architecture of the instant invention is related thereto. This two-state problem is like the aircraft problem used earlier, ex- cept that the aircraft can fly either to the left or right, i.e., state space cells in adjacent planes are allowable. In this connection, note that the stage axi extends perpendicular to the page of the drawing, where as the two state axes are respectively horizontal and vertical lines in such plane. The sequential stages can be thought of as sequential planes parallel to the plane containing the sheet of the drawing, with succeed ing stages in the direction of aircraft travel being successively farther away from the viewer. To determin the optimum transition from any specified state space cell at a given stage to the next stage using reverse dynamic programming, transitions to all adjacent cells in the next stage (in front of the drawing sheet) must be checked. This is with the assumption that the problem is one in which only transitions to adjacent cells are allowed. Turning to FIG. 2, it is a checking of the cells surrounding the center state space cell that will be used to describe the instant invention. Only transitions from the center cell to such cells in the stage illustrated, referred to by the numerals 1 through 8, will be allowed. Transitions from the center cell of the stage illustrated to the center cell being checked of the next succeeding stage are considered trivial and are not allowed in the problem for which the preferred embodiment of the invention was designed. Each of the allowable state space cells in the illustrated stage has at least two variables associated therewith, a "Q" variable representing the optimum transi¬ tion to the end of the problem and an "S" variable repre- senting the cost associated with the state space cell itself. It is to be remembered that such cost variable "S" may itself be a function of a plurality of cost variables, such as the cost of moving into the state and the cost of moving through the same, as in the example described previously. The present invention enables the transitions from the center cell in the stage illustrated, to the surround¬ ing cells being checked in the next stage, to be deter¬ mined simultaneously. To this end, the invention includes means to present simultaneously data associated with transitions from the state cell being checked to each of the allowable state cells illustrated in FIG. 2. That is, the serpentine memories 11 and 12 as represented in FIGs. 3 and 4 by the dotted line boxes present respectively the "Q" and "S" values for the allowable state space cells in a serial fashion. These values are obtained from main ' BU REΛT OirtPI P "Q" and "S" memories 13 and 14, respectively, which memories retain all of the calculated Q's and given S's. A lthough these memories are represented in the drawing b two separate blocks, it will be recognized that most probably they would be provided as separate space allocations in a single memory. Each serial memory word location in the serpentine memories of FIGs. 3 and 4 is tied to the two-state representation of FIG. 2. For example, the box labeled "Q Q " n the serpentine memory of FIG. 3 represents the location of the Q value for the state space indicated by "8" in FIG. 2. Similarly, the location in serpentine memory 12 of the word representing the "S" value for state space 8 in FIG. 2 is represented by the box "Sg" in FIG. 4. The other word locations in the two memories are likewise labeled. Each of the serpentine memories 11 and 12 also include shift registers at appropriate locations as will be discussed, to separate the data flowing through the serpentine memories in connection with a particularly salient feature of the instant invention to be described. FIG. 5 schematically illustrates the computational architecture of the present invention. The word loca¬ tions in the serpentine memories for each of the "Q" and "S" values associated with the allowable state spaces surrounding the cell being checked is represented at the left in the figure. It will be noted that all of the word locations illustrated above the box 16 labeled "center cell" are of cells from which diagonal transi- tions to the state space cell being checked are required whereas all of the word locations represented below the box 16 are those for cells requiring horizontal or verti cal transitions to the cell being checked. The purpose for this segregation will be described hereinafter. The "Q" and "S" values of each allowable state spac cell adjacent the state space cell being checked are combined to provide a total optimum for such cell. This addition is represented in FIG. 5 by adder blocks 17. In the particular dynamic problem for which this preferred embodiment was designed, the time required to traverse each state space cell diagonally is greater than the time required to traverse each cell horizontally or vertically; thus there is a corresponding additional fuel cost associated with a diagonal transition. Such addi¬ tional cost must be taken into account in computing the optimum transition. It is taken into account, insofar as the cells of the stage illustrated in FIG. 2 are con¬ cerned, by multiplying the logarithm of the "S" value of each of the state space cells which would require a diagonal transition from the cell being checked, by the ratio of the diagonal transit time to the direct transit time. This multiplication is represented in FIG. 5 by the blocks 18 positioned between the outputs of each of the serpentine memory locations representing diagonal transitions, and its associated adder 17. The respective outputs of each pair of adders 17 is compared to determine which of the two transitions repre¬ sented thereby is the optimum one. In this connection, . such outputs are connected to the inputs of an associated comparator 19. The compare decisions made at this time should take into account whether or not the state cell being checked is at an edge of the state space, and whether or not each of the adjacent cells of the next state are allowable. FIG. 6 illustrates suitable com¬ parator circuitry for each of the comparators 19. The words of data emanating from the associated adders 17 respectively appear on the lines 21 and 22. Each of such words are made up of a plurality of bits defining not only the absolute value of the combined term, but also the optimum transition directed for the "Q" value of the cell represented thereby. The bits defining these words are presented serially on the lines 21 and 22, 'BUREAU OΛ1PI and an exclusive OR gate 23 samples corresponding bits on the lines 21 and 22 defining the absolute values of the combined terms. The logic made up of exclusive OR gate 23 and AND gate 24 will indicate any discrepancy between such bits. That is, the output of the exclusiv OR gate 23 appearing on line 26 will have one voltage state when the bits are the same, and another state whe such bits are different. This output is compared by AN gate 24 to the bit appearing on line 22, for example, t determine which line should be selected. If there is a discrepancy, the output of AND gate 24 will be stored i a latch 27, which latch is strobed by the output of the exclusive OR gate 23. It is the last bit discrepancy which indicates finally which of the words appearing on lines 21 and 22 is to be selected. This is because the last bit of eac word is the most significant bit. The state indicated by latch 27 is fed to and stored within a latch 28, upo a word clock 29 indicating that the ends of the words appearing, respectively, on lines 21 and 22 have been reache . "Override" structure is included in the comparator 19 to assure.that improper optimums are not obtained either because a transition to one of the cells is not allowable in the problem or because the cell being checked is adjacent an edge of the state space. More particularly, the state of latch 28 is fed to one input of an AND gate 31. The other input of the AND gate 31 is controlled by a memory index for the cell being checked. This is represented in the drawing by constan comparator box 32. This box will place an output on either of its two output lines 33 and 34 depending upon whether or not the cell being checked is at an edge space. Its output on line 33 will normally allow the state stored in latch 28 to be passed through the AND gate 31 to an OR gate 36. However, when the cell being checked is adjacent to an edge of the cell space, or one of the cells represented by the words on line 21 and 22 is not allowable, the logic formed by the combination of the AND gate 31 and the OR gate 36 will force the compar- ator to choose only the allowable cell state. In this connection, the output of gate 36 is fed to the control input of a multiplexer 37. The words appearing serially on the lines 21 and 22 are fed, through delays 38 designed to take into account the time delay involved in the selection process, to opposite data input terminals of the multiplexer 37. The word representing the optimum will be the only word which will be passed by the multi¬ plexer 37 to its output as represented at 39 (FIGs. 5 and 6) . It will be recognized from the above that each pair of adders 17 (and their attendant multipliers where applicable) along with their associated comparator 19, acts, in effect, as computation means to compare data representative of transitions to or from each one of a pair of states to determine the optimum one of such pair. Such computation means are enclosed individually in dotted line boxes indicated by the reference numeral 40. It should be noted that while in this embodiment the data which defines the direction associated with the Q value of each cell accompanies the absolute value of the Q through the various computations, it can instead, if desired, be generated by the various computations required to select the optimum transition. The.output of each pair of computations means 40 is fed to further computation means enclosed by the dotted line box 41. Each computation means 41 includes a comparator 19 (the same as the earlier described com¬ parators 19), and selects which of the transitions represented by its two inputs is the optimum one, and passes the data representing the same to its output on It will be noted that the outputs on the two lines 42 will represent the respective direct and diagonal optimum transitions. As mentioned previously, there is an additional transition cost associated with a diagona transition. While this additional cost was taken into account insofar as the stage from which a transition to the cell being checked is to occur, the additional cost for traversing the cell being checked has not yet been taken into account. It will be noted, though, that thi additional cost will be the same for all of the diagona transactions and need not be taken into account until just s before the optimum diagonal transition is compared with the optimum direct transition. To this end, the preferred embodiment being described includes means to adjust the value of such optimum transitions. More par ticularly, the "S" value of the cell being checked, the center cell 16, is added or multiplie ' d by a constant and then added, as appropriate, to the direct and di¬ agonal optimum transitions prior to the same being compared. The result is delayed, of course, as repre¬ sented by the blocks 43 and 44, to assure that the valu will reach the adder 46 which combines the terms, at t same time as the output of the comparator 41 which ultimately selected the optimum direct transition. The constant which is multiplied by the "S" value of the center cell is the ratio of the diagonal transi time to the direct transit time. " This multiplication i represented in FIG. 5 by multiplier 47 positioned between delay 43 and the adder 48. The optimum direct and the optimum diagonal transi tions are compared to one another for selection of the overall optimum transition. This is represented by the output of the adders 46 and 48 being fed to comparator 29. Comparator 49 can include the same logic as the comparators 19. The overall optimum transition will then appear on the output line 51 of comparator 49. Th overall optimum transition will be in the .form of a new "Q" value for the cell being checked, as well as data representing the direction of the transition to the cell which must be taken to achieve the optimum transition, i.e., the data will also indicate from which cell in the stage illustrated in FIG. 2 the transition must be made in order to achieve the optimum "Q" value which is so represented. It should be noted that there may be other constant factors which need not pass through the full comparator tree prior to being taken into account. For example, it may be in an aircraft problem that several different air¬ craft speeds could be used in making transitions. The optimum transition could be selected neglecting the speed factor, and then the speed factor taken into account to select the ultimate optimum transition. The data defining the optimum transition for the cell being checked will be fed into the Q memory 13 to replace the earlier Q value for the cell. This rewriting of the data in the Q memory, though, has to be delayed until such time as the old Q value for the cell is no longer needed in the checking of those cells adjacent the center cell being checked. This delay is provided by a delay buffer 52. It will be appreciated by the above that the inven¬ tion provides parallel processing in the sense that all of the transitions for the cell being checked are com¬ pared simultaneously. That is, all of the computation means 40 operate simultaneously on data supplied thereto via the serpentine memories. This data defines the tran¬ sitions from the cell being checked to all of the cells of the next stage. As a particularly salient feature of the instant invention, it not only provides parallel processing for the center cell being checked, but enables those cells adjacent to such center cell to also be checked contemporaneously therewith. In this connection, it w be noted that while all of the computation means 40 wi provide their computations simultaneously, once they h completed their comparison cycles such computation mea are no longer required to determine the optimum transi tion for the cell being checked. It is therefore comp hended within the instant invention that simultaneousl with the comparisons by the computation means 41 of th results provided by the associated computation means 4 the computation means 40 are used to compare transitio in the determination of the optimum transition for anot cell. This simultaneous usage of the successive compu tation means for the determination of the optimum transitions to adjacent cells is continued for the ful length of the computation "tree". The contemporaneous checking for the optimum tran tions to a plurality of cells is made quite simple and efficient by the combination of the serpentine memorie with the computation architecture discussed above. In this connection, reference is made to FIG. 2 which ill trates the manner in which the cells whose transitions to the state space illustrated preferably are succes¬ sively checked, i.e., the manner in which the state space is scanned. This scanning is represented in the figure by the dotted line arrows and, as can be seen, is similar to raster scanning in the sense that such scanning occurs column by column with retrace lines be tween such columns. Each of the serpentine memories i arranged to coincide with such scanning. That is, as can be seen by referring to FIGs. 3 and 4, the order o the address locations for the Q and S values coincides with the order in which the cells adjacent to the cell being checked are encountered during the scanning. Th the Q and S values for the cells labeled "l 1 , "2" and "3" are at the ends of the respective serpentine memo¬ ries. Each of the memories further includes a shift register delay 53 positioned between the address locations for the respective cells labeled "3" and labeled "4". For the particular state space illustrated in FIG. 2, the shift register delay should be four cells long and contain the respective Q and S values for the four cells of the state space which are scanned between the time the cells labeled "3" and "4" are encountered. The address locations for the Q and the S values of the cen¬ ter cell are positioned in the serpentine memories between the locations for the corresponding values of the cells labeled "4" and "5". It should be noted that only the S value of the center cell is required in connection with the optimization computations, and it is only such value which is tapped by the computation arrange- ment illustrated in FIG. 5. Another shift register delay 54 is disposed between the address locations in the respective serpentine memo¬ ries for the Q and S values for the cells labeled "5" and "6". The purpose of such shift register is the same as that of the shift register 53, i.e., to provide the appropriate scanning space between the cells labeled "5" and "6". The serpentine memories are strobed to sequentially advance the value of each of the. locations into the next location upon completion of each comparison cycle. The result is that the apparatus is automatically adjusted to begin checking for the optimum transitions to the cell immediately adjacent (in the case of FIG. 2, imme¬ diately below) the cell undergoing checking. Thus, as soon as the computation means 40 are finished with their comparisons, they are automatically readied to accept values to be compared for the next cell to be checked. It will therefore be seen that the combination of the serial serpentine memories with the computation architec- ture described provides in a simple manner an arrangement for not only providing the initial .comparisons in parallel OiHPI via the computation means 40, but also determining the optimum transition of adjacent cells in a,pipeline fashion. An optimum transition for a cell will emanate from the comparator 49 at each word clock and be fed to the delay buffer 52. The optimum transitions are returned to the Q memory 13 as previously mentioned, fo storing for later use. This later use, which typically takes the form of a display or control, is represented in FIG. 5 by box 56. It will be seen from the above that since the processor of the invention is a parallel/pipeline devic it is capable of solving dynamic programming problems much more rapidly than serial computers. Because of su capability, the processor is usable to control in near real-time, processes and other functions which can be optimized using dynamic programming. It is also usable to solve certain types of detection and tracking proble in near real-time which heretofore have been incapable solution by dynamic programming. Depending upon the pa ticular problem to be solved, solutions can be obtained wit-h the instant invention as much as one hundred times as fast as one can be obtained using conventional seria computation techniques. And as the dynamic programming problem becomes more complex, i.e., includes more and more state variables, the speed-up becomes even more dramatic. While the invention has been described in connecti with a preferred embodiment, it will be appreciated by those skilled in the art that various changes and modif cations can be made. In this connection, the preferred embodiment has been described and designed especially f a two-state variable problem. It will be recognized, however, that it is easily within the skill of the art expand the architecture to accommodate problems having more than two-state variables. Moreover, the various computation means could be in the form of programmable microprocessors or the like, especially in a general purpose parallel/pipeline processor. And while the pre¬ ferred embodiment has been described in connection with explicit dynamic programming, the invention is equally applicable to solving implicit dynamic programming problems. In view of these changes and modifications, it is intended that the coverage afforded applicant be limited only by the claims and their equivalent language. OMPI v W1P0

Claims: CLAIMS : 1. In a processor for solving dynamic progr ming problems, the combination comprising: A. first computation means compare data represen tative of candidate transitions to or from each one of first plurality of states of a stage of a dynamic pro¬ gramming problem, to determine the optimum one of sai first plurality of state transitions; B. second computation means to compare data representative of candidate transitions to or from eac one of a second plurality of states of said stage of dynamic programming problem, to determine the optimum one of said second plurality of state transitions; and C. third computation means to compare data repre sentative of the optimum ones of said state transition of said first and second pluralities, simultaneously comparison by said first and second computation means data respectively representative of transitions to or from states of third and fourth pluralities of states a successive stage of said dynamic programming proble to determine the optimum one of said state transitions of said third and fourth pluralities. 2. A processor according to claim 1 wherein said data representative of transitions to or from eac state is based on a plurality of variables, one of whi is representative of transitions to or from at least o other state. 3. A processor according to claim 2 wherei each of said variables representative of a candidate transition to or from another state is representative a candidate future transition to another state. * 4. A processor according to claim 2 wherein said data representative of transitions to or. from each of said states of said first and second pluralities of states is representative of a plurality of different variables associated with transitions to each of said states, with the data representative of each of said variables being the value of the logarithm of the actual variable value; and said first and second computation means each further includes an adder for combining log- arithmic values of the variables associated with each transition prior to comparison of the same with similar data associated with a transition to or from another state. 5. A processor according to claim 1 further including means to present simultaneously to said first and second computation means said data respectively associated with said transitions to or from said first and second pluralities of states for simultaneous determination of said optimum transitions of said first and second pluralities. 6. A processor according to claim 5 wherein said means to present said data simultaneously to said first and second computation means comprises a serial memory storing said data in a serial fashion adapted to present simultaneously to said first and second-compu¬ tations means, data stored at a plurality of serially related locations therein. 7. A processor according to claim 6 wherein said serial memory is adapted to sequentially advance said data between said serially related locations as said first, second and third computation means makes said comparisons, whereby data representative of dif¬ ferent transitions is presented for comparison to said first and second computation means upon completion by said first and second computation means of a compariso cycle on data representative of transitions to or from each of said first and second pluralities of states. 8. A processor according to claim 7 further including means to adjust the value of said optimum tr sitions determined by said third computation means. 9. A processor according to claim 7 further including: A. fourth computation means to compare data repr sentative of candidate transitions to or from each one of a fifth plurality of states provided by said stage said dynamic programming problem to determine the optim one of said fifth plurality of state transitions; B. fifth computation means to compare data repre sentative of canadate transitions to or from each one a sixth plurality of states provided by said stage of said dynamic programming problem, to determine the optimum one of said sixth plurality of state transitio C. sixth computation means to compare data repre sentativ •»e of the optimum ones of said state transition of said fifth and sixth pluralities, simultaneously wi comparison by said fourth and fifth computation means data respectively representative of candidate transiti to or from seventh and eighth pluralities of states pr vided by said successive stage of said dynamic programmin problem, to determine the optimum one of said state transitions of said seventh and eighth pluralities; an D. means to adjust the values of said optimum transitions determined by said third and sixth computa tion means by one or more factors representative of variables which are constant for all of the transition computed to arrive at the respective -optimum transitio provided by said third and sixth computation means. 10. In a processor for solving dynamic programs, the combination comprising: A. first computation means to compare data repre¬ sentative of candidate transitions to or from each one of a first plurality of states provided by a .dynamic programming problem, to determine the optimum one of said first plurality of state transitions; B. second computation means to compare data repre¬ sentative of candidate transitions to or from each one of a second plurality of states provided by said dynamic programming problem, to determine the optimum one of said second plurality of state transitions; and C. a serial memory to store and present simultaneously to said first and second computation means from serially related locations, said data respectively associated with said transitions to or from said first and second plural¬ ities of states, for simultaneous determination of said optimum transitions of said first and second pluralities; which serial memory is adapted to sequentially advance data between said serially related locations as said first and second computation means makes said compari¬ sons, whereby data representative of different transitions is presented for comparison to said first and second computation means upon completion by said first and second computation means of a comparison cycle on data representative of candidate transitions to or from each of said first and second pluralities of states.

Inventors: MARSH J, STEADMAN H
Applicants: SYSTEMS CONTROL INC
Application year: 1979
Main classification: G06F15
IPC codes: G06F15, G06F17, G06Q10, G09B9