US3626377A - Matrix generator for use in solving feed formulation problems - Google Patents
Matrix generator for use in solving feed formulation problems Download PDFInfo
- Publication number
- US3626377A US3626377A US62929A US3626377DA US3626377A US 3626377 A US3626377 A US 3626377A US 62929 A US62929 A US 62929A US 3626377D A US3626377D A US 3626377DA US 3626377 A US3626377 A US 3626377A
- Authority
- US
- United States
- Prior art keywords
- matrix
- register
- ingredients
- signal
- nutrients
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H20/00—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
- G16H20/60—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to nutrition control, e.g. diets
Definitions
- Linear programming affords an important tool for economic and business planning.
- the term refers to the methods used in formulating and solving a specific class of problems whereby it is desired to attain a maximum or a minimum quantity of some objective function, as cost, utilization, speed or the like.
- a set of related linear equations are developed describing a physical situation and the attendant limitations that are involved. The equations are then solved, by various techniques, to provide the desired criteria for the objective function.
- linear programming has little connection with computer programming; however, linear programming problems may be programmed for solution on digital computers. For example, the so-called simplex method of solving linear-program problems might be accomplished by a digital computer.
- a matrix for use in the solution of linear-programming problems related to animal feed might involve an array of ingredients defining columns, with their component nutrients in orderly rows.
- a nutritionist specifies the particular nutrients (as by percentage) for a desired animal feed, e.g., beef.
- a desired animal feed e.g., beef.
- a variety of ingredients are also specified (some with limitations) for possible use in the feed.
- a matrix is developed for use in solving the linear-programming problem to attain the desired feed (specified nutrients) at the lowest practical cost.
- the system hereof provides an effective and economical system for generating the requisite ingredient-nutrient matrix.
- the matrix is developed from one column containing the specifications in a matrix register, which column controls the operational steps of the entire system.
- FIG. I is a diagram illustrating a portion of a matrix as may be generated by the system hereof;
- FIG. 2 is a block diagram illustrative of the general operation of the system hereof;
- FIG. 3 is a diagram of a signal-represented word format utilized in the system hereof.
- FIG. 4 is a block diagram of a system constructed in accordance with the present invention.
- the ingredients of a feed may constitute various feed components, providing the nutritional requirements are satisfied. That is, the nutritional requirements of a desired feed can be provided from a wide variety of possible formulations.
- the determination of the presently most economical ingredients for the desired feed may be the objective of a linear-programming problem; and as an interim matter, the generation of a linearprogramming matrix is ordinarily necessary.
- a data matrix may be provided by the system hereof as set forth in FIG. 1.
- the matrix may take various forms; however, it is generally an array of defined columns and rows.
- rows specify the nutrients l, 2 and so on for each of a plurality of potential ingredients A, B, C, D and so on, arranged in columns.
- the simplified matrix shown in FIG. 1. the potential ingredients for the feed might be: (A) molasses, (B) barley, (C) fat, and (D) com.
- the specified nutrients for the feed as present in each of the potential ingredients are then set forth in columns, e.g., (1) protein, (2) calcium, etc.
- the specification of the feed is set forth in the right-hand column under the heading Formula Requirements.”
- the right-hand column associated with specific nutrients and ingredients specifies the formula.
- the exemplary formulation is to have a minimum of 12 percent l protein, a minimum of 4 percent (2) calcium and so on.
- the next step involves generating the matrix (as explained) including the nutrient percentages set forth in the section M as indicated, for each of the potential ingredients. That operation has conventionally been performed manually, resulting in considerable efi'ort as well as a substantial potential danger for error.
- the system hereof affords a simplified, expeditious and economical means for generating the matrix M simply on the basis of the specification of the formulations requirements. It is to be noted as a generality, that in accordance with the system hereof, in stating the feed requirements (specification) it is necessary to provide a minimum and/or a maximum requirement for each potential ingredient. That is, if the solution to the problem is to consider an ingredient, the ingredient (along with a minimum, a maximum or both therefor) must be provided in the right-hand column as registered in the matrix register of the system hereof.
- the system hereof is depicted in conjunction with a total structure. Specifically, the system hereof is particularly directed to a matrix generator as represented by a block 10 which functions in conjunction with, and incorporates, an input 12 (for formula requirements) and a file 14 (for ingredient characteristics). That is, the matrix generator 10 receives the formulation requirements in a particular format from the input 12, then functions in cooperation with the ingredient characteristic file 14 to provide an output which may be directly supplied to a linear-program system 16 to solve the linear-program problem and provide the solution at an output unit 18.
- a matrix generator as represented by a block 10 which functions in conjunction with, and incorporates, an input 12 (for formula requirements) and a file 14 (for ingredient characteristics). That is, the matrix generator 10 receives the formulation requirements in a particular format from the input 12, then functions in cooperation with the ingredient characteristic file 14 to provide an output which may be directly supplied to a linear-program system 16 to solve the linear-program problem and provide the solution at an output unit 18.
- the solution to the problem which solution is provided at the output 18 (FIG. 2), is in the form of an actual feed formulation. That is, the matrix, as illustrated in FIG. 1, would be utilized to develop the selected economical, practical formula. It is to be noted that although only a few representative ingredients are illustrated, the ingredients in a formula may well extend into 's of numbers.
- the data input word 5 supplied to the system hereof define the nutrients and ingredients which are registered at the righthand side of the matrix and which specify: (l) the nutritional requirements of the formulation, and (2) the potential ingredients to be considered for use in the formulation (with limitations).
- the computer involved with solving the linear-programming problem will receive price information; however, such information is not a part of the matrix. Rather, the price information is simply provided to the linearprogramming computer to specify the price for each of the potential ingredients in the formulation.
- the input word for the system hereof as depicted in FIG. 3 consists of l5 binary bits.
- the first bit identifies the representation of the word as either a nutrient or an ingredient, i.e., a binary one" indicates an ingredient while a binary "zero" indicates a nutrient.
- the next six bits of the word identify a specific nutrient or ingredient in accordance with a preestablished code.
- these bits not only identify the nutrients and ingredients but additionally, the bits comprise an address for use in the system of FIG. 4 to obtain nutrient data for specific ingredients as described in detail below.
- the next bit eight of the word indicates whether the specified limitation is a maximum" or a minimum. Specifically, if the eighth bit is a one" the nutrient or ingredient is specified as a minimum, while on the contrary, a zero" binary bit indicates a maximum.
- the last seven bits of the binary word specify the threshold value as a percentage. That is, these bits are coded to represent the threshold maximum or minimum as the case may be, straight binary numbers or any variation thereof.
- the binary word as considered above with reference to FIG. 3 is developed in an input register 20 (upper right) as shown in FIG. 4.
- the input register 20 may receive the binary word by means of a keyboard (not shown) or from an external source as indicated by the input line 22; however, the specific source and formation of the signal-represented input code word is ancillary to the present invention.
- the input register 20 receives code words as illustrated in FIG. 3, the last 14 bits of which are registered in the two righthand columns 24 and 25 of a matrix register 26.
- the register 26 is fragmentarily shown as its size may vary widely depending upon the capacity of the system. However, in general the register must accommodate an array or matrix of similar, seven-bit numbers in rows equal to the total number of specified nutrients and ingredients, and columns sufficient to accommodate all of the potential ingredients, plus two (formula specifications).
- the storage elements in the matrix register 26 comprise individual registers which, as indicated, may be of seven binary bits capacity, all of which serve to register percentages, excepting those in the two columns 24 and 25 which register the codes for the nutrients and ingredients threshold percentages and the maximum-miminmum" bit.
- the left-hand column of the matrix register 26 contains the percentage of nutrients present in the ingredient l4. Specifically, for example, assuming that the ingredient 14 is rolled barley," the contents of the registers in the left-hand column would indicate the presence of the nutrients N1, N2, N3 and N4 in percentages.
- N1 represents protein
- N2 is fat
- N3 is fiber
- N4 is calcium
- the percentages thereof present in rolled barley would appear in the component registers 28, 29, 30, and 31, for example, as percentage values 0. l l; 0.02; 0.06; and 0.00.
- the lower portion of the matrix register 26 on completion of the matrix carries zeros in the rows designated for ll, l2, and I3 and an indication of percent in the row designated by the ingredient l4. That is, as l4 represents, "rolled barley" in the assumed example, and as rolled barley is 100 percent rolled barley, the component register 32 carries a value of I00 percent.
- Access to and from the specific component registers (seven bits) in the matrix register 26 is provided through address units.
- the somewhat distinct two columns 24 and 25 of component registers at the right side (as depicted) of the matrix register 26 invariably receive the specifications of the desired formulation and are separately accessed by a row address unit 34.
- the bits 2-l5 of the input words are received in these component registers. Specifically the bits 9-15 pass into the rightmost column 25 while bits two to eight move into the next column to the left, column 24, as represented in F IG. 4.
- the remainder of the component registers in the matrix register 26 are separately and individually accessed by a column address unit 36 and a row address unit 38 functioning in combination. Specifically, the contents of the column address unit 36 designates the column into which data signals representative of a percentage" are registered, while the row address unit 38 designates the row.
- the physical form of the matrix register 26 as well as the address units 34, 36, and 38 may vary considerably.
- the matrix register 26 may comprise a logical array of magnetic core storage while the address units 34, 36, and 38, comprise address registers therefor.
- the row address unit 34 is indicated by a dashed line 40 to control a contact 42 for addressing the righthand component registers (columns 24 and 25).
- a contact 44 is indicated to be controlled by the units 36 and 38 by means of a dashed line 46 to address the other component registers.
- timing signals that are provided from a timing unit 50.
- the timing signals provided by the unit 50 are summarized by the following chart:
- the timing signals 11 through :5 may be specified logically in view of the above as follows:
- the initial phase of operation involves loading the nutrients and ingredients into the component registers at the right side in columns 24 and 25 of the matrix register 26. This operation is performed manually (or may be under automatic control) during a timing interval defined by the high value of binary timing signal 11 provided from the timing unit 50.
- the interval of the signal :1 is initiated by the closure of a switch S1 (lower left) to provide a high signal to a specific input of the timing unit 50. Thereafter, the timing unit 50 continues to provide the signal :1 high until a switch S2 is closed (manually) thereby initiating the timing interval indicated by the signal r2.
- binary code words as illustrated in FIG. 3 are provided in the input register 20 for transfer in sequence into the two columns 24 and 25 at the right-hand side of the matrix register 26.
- the code words occupy the two right columns 24 and 25 of component registers in the matrix register 26 and are transferred into such component registers during a plurality of individual operations.
- a switch 52 (upper left) is closed to provide a qualifying signal to an AND- gate 54 to enable the contents of the register 20 to pass to the contact 42.
- the row address unit 34 receives an address number one" through an AND-gate 56 from a nutrient-ingredient counter 58 which was set to one" in the prior operation. That is, as described in detail below, the counter 58 tallies the code words registered in the matrix register 26.
- the gate 56 (supplying the current number registered in the counter 58 to the address unit 34) is qualified by the timing signal :1. Consequently, as the initial word (nutrient NI) is under consideration, and the counter 58 is set at one," and the address unit 34 is controlled to register the signalrepresented word Nl 14 bits) received through the contact 42 in the last two columns 24 and 25 of row one" (uppermost) of the matrix register 26.
- the nutrient-ingredient counter 58 is cleared by the operation-complete signal :5 and is stepped with each closure of the switch 52 through one of the AND-gates 60. or 62 and a connection gate 64.
- the gate 60 is qualified each time a nutrient" word is entered in the system while the gate 62 is qualified each time an ingredient" word is entered in the system.
- the gate 60 is qualified by the negation of the first bit of the code word in register 20 while the register 62 is qualified by the true bit.
- These gates are additionally qualified by the timing signal A and the signal resulting from the closure of the switch 52.
- the gate 62 also drives an ingredient counter 68.
- ingredients and nutrients are distinguished.
- the counters, 58 and 68 may comprise step counters as well known in the prior art. Thus, as the counter 58 advances and additional code words are provided, they are registered in the last two columns 24 and 25 in advancing rows (top to bottom) of the register 26.
- the ingredient-specification code words are similarly entered. That is, code words in accordance with FIG. 2, (indicative of potential ingredients for a formulation) are entered in the input register 20 and transferred'in sequence to the rightmost columns 24 and 25 in the matrix register 26. Specifically, the percentage limitation of the ingredients presence is specified in the second-to-right column, and the identification of the ingredient (along with an indication of minimum or maximum) is registered in the extreme right column. It is emphasized that each potential ingredient must be listed in accordance with the system thereof. Again, the row address unit 34 is incrementally driven by the nutrient-ingredient counter 58 to insert the code words in progressively advanced rows of the matrix register 26, and ingredients are counted in the counter 68.
- the switch S2 Upon the complete registration of all the signal-represented nutrient and ingredient specifications, the switch S2 is closed (manually) advancing the timing unit 50 to provide the timing signal 12 in a high state.
- the first nutrient NI (six bits) is transferred into acompare register 72 (lower right).
- the row address unit 34 (now instructed to read" by signal 12) receives signal indications for the numeral one" (indicating the first row) through an AND-gate 74 from a step register 76 (upper right).
- the step register 76 is cleared by the signal I1 and is stepped by the signal :2. Consequently, initially, the contents of the register is one" which is supplied through the AND-gate 74 and the connection gate 80 to the row address unit 34.
- the row address unit received the signal 11 to command "write” operation; however, during the instant interval. the unit 34 receives the signal :2 to command "read” operations. Accordingly, the first nutrient N1 is provided from the matrix register 26 through the contact 42 and an AND- gate 71 to the comparison register 72. This operation requires a specific interval of time, after which the timing unit 50 automatically halts the provision of signal 12 high and initiates the high interval of binary signal 13.
- the signalrepresented ingredient I4 (six bits) is transferred from the matrix register 26 through the contact 42 and an AND-gate 84 to the address register 86 in an ingredient characteristic storage unit 88.
- the row address unit 34 (in a "read” mode) is driven through a subtractor 85, and AND-gate 90 from the nutrient ingredient counter 58, which specifies the lowest (as shown) occupied row in the matrix register 26.
- the subtractor 85 also receives the contents of a register 102 which was cleared to zero" at 11 of the previous operation.
- the signal-represented ingredient 14 passes through the contact 42 and the AND-gate 84 to be received in the address register 86. That operation requires a consistent time interval after which the timing unit 50 provides the signal 13 low and the signal :4 high.
- the components of the ingredient identified are provided from an address-specified location in the storage unit 88 to a comparator 92 for comparison with the nutrient N1 which is held in the register 72.
- the code representation for protein is registered in the six-bit register 72.
- the storage unit 86 is driven by the signal 14 to provide a series of code words including the ingredient (with a distinction bit) followed by its nutrient components; for example, the code-represented data might be as follows:
- each word is represented by a seven-bit code (seventh bit one") as is the percentage of its presence. That is, the ingredient and nutrient words include six binary bits plus an identifier bit in the most significant bit location l ingredient, nutrient) while the percentage codes comprise seven bits as illustrated above.
- a high signal H appears in the conductor 94 for an interval of seven clock pulses of the storage unit 88.
- the signalrepresented percentage value of the nutrient is supplied from the storage unit 88 through an AND-gate 96 to be recorded in the first row, first column of the matrix register 26 as specified by the column address unit 36 and the row address unit 38.
- the characteristic storage unit 88 may comprise any of a variety of units as well known in the art, including a disk storage unit substantially as shown and described in US. Pat. No. 3,503,060 (Direct Access Magnetic Disk Storage Device). Accordingly, the unit 88 has a specific operating time in accordance with its inherent cycle. Thus, during the interval as required to accommodate the signal-represented percentage value (seven bits) the AND-gate 96 is qualified to transfer such percentage value into the component register of the matrix register 26 as indicated by the column address unit 36 and the row address unit 38.
- the column address unit 36 is controlled by an ingredient step register 102 which is cleared to zero" by the timing signal 11 and advanced to one" by the signal H. Accordingly, during the initial phase of operation, the step register 102 .passes a numerical representation of one" to the unit 36 to specify the first column of the matrix register 26.
- the row address unit 38 is controlled by the step register 76 (upper right) which is initially cleared (by signal ll) then advanced to one" by the signal 12, to specify the first row in the matrix register 26. Accordingly, the initial entry is in column one. row one.
- the signal H also is supplied to a delay circuit 104, the output of which is applied to the timing unit 50 to terminate the interval (4 and reestablish the interval :3.
- the delay circuit 104 also receives an input from a detector 106 as an alternate source of the signal H, which detects an end" code provided from the storage unit 88 to indicate that all the components of a specific ingredient have been supplied from the unit 88.
- the signal H is supplied through the delay circuit 104 to terminate the interval of timing signal :4 and, at the present stage, reestablish the interval :3.
- any percentage component of the nutrient N1 that is present in the ingredient l4 is entered at the location of column one and row one in the matrix register 26. if, for ex ample, the ingredient 14 is rolled barley," and the nutrient N1 is protein,” a percentage of l 1 percent will be entered. Alternatively, if the nutrient N1 were fat,” no value would be entered in the identified component register 28, because rolled barley" contains essentially no fat” and no coincidence would occur.
- the timing unit terminates the signal (4 to again provide the signal 3 at a high level.
- the step register 102 was advanced to a count of one" which number is now supplied to a subtractor along with the signal-represented contents of the nutrient-ingredient counter 58.
- the output of the subtractor 116 is the total list of nutrients and ingredients, less one which provides a number designating the row containing the ingredient [3 in the matrix register 26.
- the output from the subtractor ll6 is supplied through the AND-gate to the row address unit 34 which in turn controls the output from the matrix register 26 to provide a signal-represented ingredient 13 through the contact 42 and the AND-gate 84 to be received in the address register 86.
- a coincidence results in a registered value while the failure of a coincidence to occur simply terminates the interval of the timing signal 14. ln the event that a coincidence is detected, the percentage detected is registered in the component register located in the first row, second column of the matrix register 26. That component register is specified because the ingredient register 102 advanced by the signal H to provide the number two to the column address unit 36 while the nutrient step register 76 continues to provide the number one to the row address unit 38.
- the system proceeds to develop a series of percentage values representative of the presence of the nutrient N1 in the various ingredients 14 through ll registering such percentage values across the top row of component registers in the matrix register 26.
- a matrix is developed in the matrix register 26 specifying the nutrient components of the various ingredients.
- the format of the developed matrix is illustrated in the following chart:
- the signal Nl' from the com parator 118 is applied to the timing unit 50 to terminate the interval of the timing signal :4 and again establish the timing interval of signal 22.
- a fresh nutrient is placed in the nutrient comparison register 72.
- the step register 76 (upper right) is advanced to register the number "two" which number is placed in the row address unit 34 through the AND-gate 74 during the interval of the timing signal :2. Therefore, the row address unit 34 then specifies the nutrient N2 (located in the second column) in the matrix register 26 to be transferred through the contact 42 and the AND-gate 71 to the nutrient comparison register 72.
- the ingredient register 102 is reset by the timing signal :2 to initiate another cyclic scanning through the ingredients [4 through I1 so as to register the component nutrients of these ingredients in the second row of the matrix register 26.
- the matrix is developed row by row in the matrix register 26 and in time the ingredient I1 is again placed in the compare register 72.
- the entire matrix is generated in the component registers defined in columns and rows, each identify ingredients.
- the component registers in the lower portion of the matrix contain values of either 100 percent or 0. Specifically, for example, if an ingredient is rolled barley, it constitutes 100 percent rolled barley. On the contrary, if an ingredient is cane molasses," it constitutes absolutely no rolled barley.”
- the lower portion of the matrix is developed just as the upper portion of the matrix is developed, by a sensing of coincidence between the content of the register 72 and the codes provided from the characteristics storage unit 88; however, the ingredients are identified as such by a seventh bit that is provided to the comparator 92 from a comparator 123 which senses that the nutrients N1 through N4 rows have been completed by reason of the contents of the register 76 coinciding to that of the counter 58 less that of the counter 68.
- the six-bit codes from component registers in column 25 that represent ingredients are supplemented by an additional seventh bit from the comparator 123 to identify the code as an ingredient. Consequently, when the addressed section of the storage unit 88 provides the seven-bit code word for that ingredient a hit is detected producing the signal H high and entering the value of 100 in the appropriate component register.
- the contents of the step register 76 is stepped to exceed the contents of the nutrient-ingredient counter 58. That condition is detected by a nutrient comparator 121 which initiates the signal NN' to provide the signal from the timing unit 50.
- This signal indicates the completion of the matrix in the matrix register 26 and qualifies an AND-gate 122 (comprising a parallel gang gate) to supply the entire contents in positional economical and relatively simple in operation.
- a system for providing nutrient and ingredient data in a matrix format, for a linear-programming computer, to accomplish an objective feed formula comprising:
- a matrix register means including a plurality of component registers with row and column significance; means for registering signal-represented formula requirements, including all specific nutrients and all specific ingredients, in said matrix register as one column therein;
- said means for counting includes a first counter for counting each of said specific ingredients values and said specific nutrients values.
- a system according to claim 2 further including a second counter for counting only one of said values.
- a system according to claim 1 wherein said means for selectively registering includes means for comparing signalrepresented component nutrients of an ingredient with a specific signal-represented nutrient to register values thereof upon the occurrence of a coincidence.
- said means for selectively registering further includes means for registering a signal-represented nutrient during an interval of comparison with nutrient components of each specific signal-represented ingredient to register values in said matrix register means.
- said means for selectively registering further includes means for designating said individual component registers in said matrix register means in a predetermined order along each row in sequence.
- a system including a timing control means and further including means connected to said means for counting to control said timing control means to sequence the operation of said means for selectively registering.
- said means for counting includes a first counter for counting each of said specific ingredients values and said specific nutrients values.
- a system according to claim 8 further including a second counter for counting only one of said values.
- said means for selectively registering includes means for comparing signalrepresented component nutrients of an ingredient with a specific signal-represented nutrient to register values thereof upon the occurrence ofa coincidence.
Landscapes
- Health & Medical Sciences (AREA)
- Nutrition Science (AREA)
- Engineering & Computer Science (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
A system is disclosed for generating a matrix of data which relates to the formulation of animal feeds. The matrix is developed in a matrix register which is a logic array of component storage locations or registers for holding an organization of data relating to nutrients and ingredients. The specification of nutrients and ingredients for a desired feed is registered as two columns in the matrix register, from which the system operates to complete the entire matrix with information from an ingredient storage means which contains nutrient information on various specific ingredients.
Description
United States Patent [72] Inventor John B. Markley Tucson, Ariz. [21] Appl. No. 62,929 [22] Filed Aug. 1 l, 1970 [45] Patented Dec. 7, 1971 [73] Assignee Arizona Feeds [54] MATRIX GENERATOR FOR USE IN SOLVING FEED FORMULATION PROBLEMS 10 Claims, 4 Drawing Figs.
[52] U.S. Cl 340/1725 [51] Int. Cl ..G06i 15/06, G06f 15/36 [50] Field of Search 340/1725; 235/150.1,151.l3,151.2,151.35,156,193,184, 185, 92 CT, 92 CA, 92 GC, 92 MT, 92 CP, 92 MS, 92 ME [56] References Cited UNITED STATES PATENTS 3,027,068 3/1962 Hargens et a1 235/l5l.35 X
IVUI'R/EN F- WGRED/E/VT COUNTER COL U/HA/ 46 /o 2 ROW 6T5 P RES/S TER SIEP 3,154,670 10/1964 Gossel 235/92 3,186,596 6/1965 Badgett 235/1512 X 3,443,078 5/1969 Noranha et al 235/193 3,473,008 10/1969 Bay et a1. 235/1511 X 3,560,725 2/1971 Clayton et a1 235/93 Primary Examiner-Gareth D. Shaw Assistant Examiner-R. F. Chapuran Attorney-Nilsson, Robbins, Wills & Berliner MATRIX GENERATOR FOR USE IN SOLVING FEED FORMULATION PROBLEMS BACKGROUND OF THE INVENTION Linear programming affords an important tool for economic and business planning. The term refers to the methods used in formulating and solving a specific class of problems whereby it is desired to attain a maximum or a minimum quantity of some objective function, as cost, utilization, speed or the like. Generally, in solving these problems, a set of related linear equations are developed describing a physical situation and the attendant limitations that are involved. The equations are then solved, by various techniques, to provide the desired criteria for the objective function. In spite of the similarity of terms, linear programming has little connection with computer programming; however, linear programming problems may be programmed for solution on digital computers. For example, the so-called simplex method of solving linear-program problems might be accomplished by a digital computer.
In general, preliminary to solving a linear-programming problem, it is necessary to develop an array or matrix of data from which the linear equations are mechanically formulated. conventionally, such matrices have been developed manually, requiring considerable time and effort and involving possibilities for error. For example, a matrix for use in the solution of linear-programming problems related to animal feed might involve an array of ingredients defining columns, with their component nutrients in orderly rows.
Conventionally, a nutritionist specifies the particular nutrients (as by percentage) for a desired animal feed, e.g., beef. Traditionally a variety of ingredients are also specified (some with limitations) for possible use in the feed. From such a specification, a matrix is developed for use in solving the linear-programming problem to attain the desired feed (specified nutrients) at the lowest practical cost. In general, the system hereof provides an effective and economical system for generating the requisite ingredient-nutrient matrix. The matrix is developed from one column containing the specifications in a matrix register, which column controls the operational steps of the entire system.
In the drawings which constitute a part of this specification, an exemplary embodiment demonstrating various objectives and features hereof is set forth, specifically:
FIG. I is a diagram illustrating a portion of a matrix as may be generated by the system hereof;
FIG. 2 is a block diagram illustrative of the general operation of the system hereof;
FIG. 3 is a diagram of a signal-represented word format utilized in the system hereof; and
FIG. 4 is a block diagram of a system constructed in accordance with the present invention.
DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENT As required, a detailed illustrative embodiment of the invention is disclosed herein. The embodiment merely exemplifies the invention which may, of course, be constructed in various other forms, some of which may be radically different from the disclosed illustrative embodiment. However, specific structural and functional details disclosed herein are merely representative and in that regard provide a basis for the claims herein whichdefine the scope of the present invention.
In the growth and development of animals for human consumption, feeds are exceedingly important in relation to economy and proper development of the animal. The ingredients of a feed may constitute various feed components, providing the nutritional requirements are satisfied. That is, the nutritional requirements of a desired feed can be provided from a wide variety of possible formulations. The determination of the presently most economical ingredients for the desired feed may be the objective of a linear-programming problem; and as an interim matter, the generation of a linearprogramming matrix is ordinarily necessary.
In the course of preparing feed for cattle. for example. it has been common practice in the past for a nutritionist to specify the nutritional values of a desired feed, as well as to place limitations (minimums, maximums or both) on certain component ingredients that might be used in formulating the feed. As indicated above, many formulas could satisfy the requirements of such a specification, using substantially different ingredients. Thus, a linear-programming problem is presented. That is, linear-programming techniques can be used to select the combination of ingredients which will most economically (in accordance with current prices) fulfill the nutritional specifications; and as a result, substantial savings will result in formulating the feed.
It has been previously proposed to solve such linear-programming problems by the use of digital computers and such techniques are well known in the prior art. However, in general, preliminarily, the data must be formed into a matrix that is provided to the computer. For example, assuming a somewhat simplified situation, a data matrix may be provided by the system hereof as set forth in FIG. 1.
Of course, the matrix may take various forms; however, it is generally an array of defined columns and rows. For example, rows specify the nutrients l, 2 and so on for each of a plurality of potential ingredients A, B, C, D and so on, arranged in columns. 1n the simplified matrix shown in FIG. 1. the potential ingredients for the feed might be: (A) molasses, (B) barley, (C) fat, and (D) com. The specified nutrients for the feed as present in each of the potential ingredients are then set forth in columns, e.g., (1) protein, (2) calcium, etc. The specification of the feed is set forth in the right-hand column under the heading Formula Requirements." Considering FIG. 1 in further detail, the right-hand column associated with specific nutrients and ingredients specifies the formula. Specifically, as indicated the exemplary formulation is to have a minimum of 12 percent l protein, a minimum of 4 percent (2) calcium and so on.
As indicated above, having specified a feed, the next step involves generating the matrix (as explained) including the nutrient percentages set forth in the section M as indicated, for each of the potential ingredients. That operation has conventionally been performed manually, resulting in considerable efi'ort as well as a substantial potential danger for error. In general, the system hereof affords a simplified, expeditious and economical means for generating the matrix M simply on the basis of the specification of the formulations requirements. It is to be noted as a generality, that in accordance with the system hereof, in stating the feed requirements (specification) it is necessary to provide a minimum and/or a maximum requirement for each potential ingredient. That is, if the solution to the problem is to consider an ingredient, the ingredient (along with a minimum, a maximum or both therefor) must be provided in the right-hand column as registered in the matrix register of the system hereof.
Referring now to FIG. 2, the system hereof is depicted in conjunction with a total structure. Specifically, the system hereof is particularly directed to a matrix generator as represented by a block 10 which functions in conjunction with, and incorporates, an input 12 (for formula requirements) and a file 14 (for ingredient characteristics). That is, the matrix generator 10 receives the formulation requirements in a particular format from the input 12, then functions in cooperation with the ingredient characteristic file 14 to provide an output which may be directly supplied to a linear-program system 16 to solve the linear-program problem and provide the solution at an output unit 18.
As indicated above, previous linear-programming systems are well known in the prior art for use as the system 16 along with a satisfactory output 18. The portion of the system comprising the matrix generator 10 along with the input 12 and the ingredient characteristic file 14, are shown in considerable detail in FIG. 4 and will be considered below in relation thereto.
The solution to the problem, which solution is provided at the output 18 (FIG. 2), is in the form of an actual feed formulation. That is, the matrix, as illustrated in FIG. 1, would be utilized to develop the selected economical, practical formula. It is to be noted that although only a few representative ingredients are illustrated, the ingredients in a formula may well extend into 's of numbers.
The placement of data into the matrix generator 10 requires the formulation of the data into a particular signal-represented word format. That word format is illustrated in FIG. 3 and will now be considered in detail. Of course, it is to be understood that the format utilized as well as the specific structural details hereof have a wide range of equivalent alternatives.
The data input word 5 supplied to the system hereof define the nutrients and ingredients which are registered at the righthand side of the matrix and which specify: (l) the nutritional requirements of the formulation, and (2) the potential ingredients to be considered for use in the formulation (with limitations). In addition, the computer involved with solving the linear-programming problem will receive price information; however, such information is not a part of the matrix. Rather, the price information is simply provided to the linearprogramming computer to specify the price for each of the potential ingredients in the formulation.
The input word for the system hereof as depicted in FIG. 3 consists of l5 binary bits. The first bit identifies the representation of the word as either a nutrient or an ingredient, i.e., a binary one" indicates an ingredient while a binary "zero" indicates a nutrient.
The next six bits of the word identify a specific nutrient or ingredient in accordance with a preestablished code. In effect, these bits not only identify the nutrients and ingredients but additionally, the bits comprise an address for use in the system of FIG. 4 to obtain nutrient data for specific ingredients as described in detail below.
The next bit eight of the word indicates whether the specified limitation is a maximum" or a minimum. Specifically, if the eighth bit is a one" the nutrient or ingredient is specified as a minimum, while on the contrary, a zero" binary bit indicates a maximum.
The last seven bits of the binary word specify the threshold value as a percentage. That is, these bits are coded to represent the threshold maximum or minimum as the case may be, straight binary numbers or any variation thereof.
The binary word as considered above with reference to FIG. 3 is developed in an input register 20 (upper right) as shown in FIG. 4. The input register 20 may receive the binary word by means of a keyboard (not shown) or from an external source as indicated by the input line 22; however, the specific source and formation of the signal-represented input code word is ancillary to the present invention.
The input register 20 receives code words as illustrated in FIG. 3, the last 14 bits of which are registered in the two righthand columns 24 and 25 of a matrix register 26. The register 26 is fragmentarily shown as its size may vary widely depending upon the capacity of the system. However, in general the register must accommodate an array or matrix of similar, seven-bit numbers in rows equal to the total number of specified nutrients and ingredients, and columns sufficient to accommodate all of the potential ingredients, plus two (formula specifications). The storage elements in the matrix register 26 comprise individual registers which, as indicated, may be of seven binary bits capacity, all of which serve to register percentages, excepting those in the two columns 24 and 25 which register the codes for the nutrients and ingredients threshold percentages and the maximum-miminmum" bit.
As a preliminary consideration it is to be understood that, upon registration of the specified nutrients in the upper portion of the right side of the matrix register 26 and the specified ingredients below them, (in the lower portion of the matrix register 26) those registers control the operation of the system to develop percentage values in all of the other seven-bit component registers of the matrix register 26, to complete the data matrix as desired. When the matrix is complete, the left-hand column of the matrix register 26 contains the percentage of nutrients present in the ingredient l4. Specifically, for example, assuming that the ingredient 14 is rolled barley," the contents of the registers in the left-hand column would indicate the presence of the nutrients N1, N2, N3 and N4 in percentages. Pursuing the example further, if N1 represents protein," N2 is fat," N3 is fiber, and N4 is calcium," the percentages thereof present in rolled barley would appear in the component registers 28, 29, 30, and 31, for example, as percentage values 0. l l; 0.02; 0.06; and 0.00.
In the assumed example, the lower portion of the matrix register 26 on completion of the matrix carries zeros in the rows designated for ll, l2, and I3 and an indication of percent in the row designated by the ingredient l4. That is, as l4 represents, "rolled barley" in the assumed example, and as rolled barley is 100 percent rolled barley, the component register 32 carries a value of I00 percent.
The details of filling the component registers comprising the matrix register 26 are set forth below; however, the control operations by the formulation specifications (registered in the right-hand columns of the matrix register 26) is to be appreciated as an important aspect hereof. It is also noteworthy at this time, that the data is developed in the system of F IG. 4, element by element moving along one row at a time from column to column.
Access to and from the specific component registers (seven bits) in the matrix register 26 is provided through address units. The somewhat distinct two columns 24 and 25 of component registers at the right side (as depicted) of the matrix register 26 invariably receive the specifications of the desired formulation and are separately accessed by a row address unit 34. During unit" operations the bits 2-l5 of the input words are received in these component registers. Specifically the bits 9-15 pass into the rightmost column 25 while bits two to eight move into the next column to the left, column 24, as represented in F IG. 4.
The remainder of the component registers in the matrix register 26 are separately and individually accessed by a column address unit 36 and a row address unit 38 functioning in combination. Specifically, the contents of the column address unit 36 designates the column into which data signals representative of a percentage" are registered, while the row address unit 38 designates the row. Of course, the physical form of the matrix register 26 as well as the address units 34, 36, and 38, may vary considerably.
ln one form, the matrix register 26 may comprise a logical array of magnetic core storage while the address units 34, 36, and 38, comprise address registers therefor. As schematically depicted in FIG. 4, the row address unit 34 is indicated by a dashed line 40 to control a contact 42 for addressing the righthand component registers (columns 24 and 25). Somewhat similarly, a contact 44 is indicated to be controlled by the units 36 and 38 by means of a dashed line 46 to address the other component registers. Although this form of representation is deemed to be somewhat simpler of presentation, it is to be understood that the electronic analogy thereof (as well known in the prior art) would be utilized in conjunction with a magnetic core storage system.
The operation of the system of HO. 4 involves several distinct phases which are manifest by timing signals that are provided from a timing unit 50. The timing signals provided by the unit 50 are summarized by the following chart:
period of I2 or an address location to obtain a completion of signal representations of a phase 14. the components thereof. :4: Passage of a set Compare particular nutrient period of 13. N with components of n specified ingredient. [5: Completion of the matrix.
In addition to the timing signals set forth above, the following signals are also developed within the system of FIG. 4.
nutrients or ingredients remain untested.
The timing signals 11 through :5 may be specified logically in view of the above as follows:
In view of the above preliminary description of the system of FIG. 4, a complete understanding thereof may now best be accomplished by assuming certain initial conditions and objectives and explaining the operation of the system to accommodate such objectives while introducing other structural elements of the system as the explanation proceeds. Accordingly, assume that the nutrients of a particular desired formulation have been identified as nutrients N1 through Nn of which nutrients N1 through N4 will be here considered as exemplary. Additionally, assume that potential ingredients for a desired formulation have been identified as ingredients ll through In (l1 through l4 here). As indicated, the nutrients NI through N4 and the ingredients ll through I4 will be considered with reference to the system of FIG. 4; however, as suggested, the system would normally accommodate substantially greater numbers.
The initial phase of operation involves loading the nutrients and ingredients into the component registers at the right side in columns 24 and 25 of the matrix register 26. This operation is performed manually (or may be under automatic control) during a timing interval defined by the high value of binary timing signal 11 provided from the timing unit 50. The interval of the signal :1 is initiated by the closure of a switch S1 (lower left) to provide a high signal to a specific input of the timing unit 50. Thereafter, the timing unit 50 continues to provide the signal :1 high until a switch S2 is closed (manually) thereby initiating the timing interval indicated by the signal r2.
During the interval of signal :1, binary code words as illustrated in FIG. 3 are provided in the input register 20 for transfer in sequence into the two columns 24 and 25 at the right-hand side of the matrix register 26. The code words occupy the two right columns 24 and 25 of component registers in the matrix register 26 and are transferred into such component registers during a plurality of individual operations.
Assuming a code word in the input register 20 identifying a nutrient N1 (and a minimum percentage thereof) a switch 52 (upper left) is closed to provide a qualifying signal to an AND- gate 54 to enable the contents of the register 20 to pass to the contact 42. During such an interval, the row address unit 34 receives an address number one" through an AND-gate 56 from a nutrient-ingredient counter 58 which was set to one" in the prior operation. That is, as described in detail below, the counter 58 tallies the code words registered in the matrix register 26.
The gate 56 (supplying the current number registered in the counter 58 to the address unit 34) is qualified by the timing signal :1. Consequently, as the initial word (nutrient NI) is under consideration, and the counter 58 is set at one," and the address unit 34 is controlled to register the signalrepresented word Nl 14 bits) received through the contact 42 in the last two columns 24 and 25 of row one" (uppermost) of the matrix register 26.
The nutrient-ingredient counter 58, as indicated. is cleared by the operation-complete signal :5 and is stepped with each closure of the switch 52 through one of the AND-gates 60. or 62 and a connection gate 64. The gate 60 is qualified each time a nutrient" word is entered in the system while the gate 62 is qualified each time an ingredient" word is entered in the system. Specifically, the gate 60 is qualified by the negation of the first bit of the code word in register 20 while the register 62 is qualified by the true bit. These gates are additionally qualified by the timing signal A and the signal resulting from the closure of the switch 52. The gate 62 also drives an ingredient counter 68. Thus, ingredients and nutrients are distinguished. The counters, 58 and 68, may comprise step counters as well known in the prior art. Thus, as the counter 58 advances and additional code words are provided, they are registered in the last two columns 24 and 25 in advancing rows (top to bottom) of the register 26.
Recapitulating, individual code words representative of individual ingredient specifications are initially registered in the input register 20 then transferred, in row order, to the component registers in the last two columns 24 and 25 of the matrix register 26. Concurrently, the individual nutrients are tallied in the step counters 58 and 68.
Subsequent to entering the nutrient-specification code words, the ingredient-specification code words are similarly entered. That is, code words in accordance with FIG. 2, (indicative of potential ingredients for a formulation) are entered in the input register 20 and transferred'in sequence to the rightmost columns 24 and 25 in the matrix register 26. Specifically, the percentage limitation of the ingredients presence is specified in the second-to-right column, and the identification of the ingredient (along with an indication of minimum or maximum) is registered in the extreme right column. It is emphasized that each potential ingredient must be listed in accordance with the system thereof. Again, the row address unit 34 is incrementally driven by the nutrient-ingredient counter 58 to insert the code words in progressively advanced rows of the matrix register 26, and ingredients are counted in the counter 68.
Upon the complete registration of all the signal-represented nutrient and ingredient specifications, the switch S2 is closed (manually) advancing the timing unit 50 to provide the timing signal 12 in a high state. During the first interval, while the signal :2 is high, the first nutrient NI (six bits) is transferred into acompare register 72 (lower right). Specifically, the row address unit 34 (now instructed to read" by signal 12) receives signal indications for the numeral one" (indicating the first row) through an AND-gate 74 from a step register 76 (upper right). The step register 76 is cleared by the signal I1 and is stepped by the signal :2. Consequently, initially, the contents of the register is one" which is supplied through the AND-gate 74 and the connection gate 80 to the row address unit 34.
Previously, the row address unit received the signal 11 to command "write" operation; however, during the instant interval. the unit 34 receives the signal :2 to command "read" operations. Accordingly, the first nutrient N1 is provided from the matrix register 26 through the contact 42 and an AND- gate 71 to the comparison register 72. This operation requires a specific interval of time, after which the timing unit 50 automatically halts the provision of signal 12 high and initiates the high interval of binary signal 13.
During the interval when the signal 13 is high, the signalrepresented ingredient I4 (six bits) is transferred from the matrix register 26 through the contact 42 and an AND-gate 84 to the address register 86 in an ingredient characteristic storage unit 88. Specifically. during the interval 13, the row address unit 34 (in a "read" mode) is driven through a subtractor 85, and AND-gate 90 from the nutrient ingredient counter 58, which specifies the lowest (as shown) occupied row in the matrix register 26. The subtractor 85 also receives the contents of a register 102 which was cleared to zero" at 11 of the previous operation.
Accordingly, the signal-represented ingredient 14 passes through the contact 42 and the AND-gate 84 to be received in the address register 86. That operation requires a consistent time interval after which the timing unit 50 provides the signal 13 low and the signal :4 high.
During the interval defined by the timing signal 14, the components of the ingredient identified (currently 14) are provided from an address-specified location in the storage unit 88 to a comparator 92 for comparison with the nutrient N1 which is held in the register 72. Specifically, for example, if the nutrient under consideration is protein, then the code representation for protein is registered in the six-bit register 72. During the interval of the signal 14 the storage unit 86 is driven by the signal 14 to provide a series of code words including the ingredient (with a distinction bit) followed by its nutrient components; for example, the code-represented data might be as follows:
Components Percent Representative signals Specifically each word is represented by a seven-bit code (seventh bit one") as is the percentage of its presence. That is, the ingredient and nutrient words include six binary bits plus an identifier bit in the most significant bit location l ingredient, nutrient) while the percentage codes comprise seven bits as illustrated above.
Upon the occurrence of the comparator 92 detecting a coincidence between the six bits of a nutrient code from the unit 88 and the nutrient code in the register 72, a high signal H appears in the conductor 94 for an interval of seven clock pulses of the storage unit 88. During that time the signalrepresented percentage value of the nutrient is supplied from the storage unit 88 through an AND-gate 96 to be recorded in the first row, first column of the matrix register 26 as specified by the column address unit 36 and the row address unit 38.
The characteristic storage unit 88 may comprise any of a variety of units as well known in the art, including a disk storage unit substantially as shown and described in US. Pat. No. 3,503,060 (Direct Access Magnetic Disk Storage Device). Accordingly, the unit 88 has a specific operating time in accordance with its inherent cycle. Thus, during the interval as required to accommodate the signal-represented percentage value (seven bits) the AND-gate 96 is qualified to transfer such percentage value into the component register of the matrix register 26 as indicated by the column address unit 36 and the row address unit 38.
The column address unit 36 is controlled by an ingredient step register 102 which is cleared to zero" by the timing signal 11 and advanced to one" by the signal H. Accordingly, during the initial phase of operation, the step register 102 .passes a numerical representation of one" to the unit 36 to specify the first column of the matrix register 26.
The row address unit 38 is controlled by the step register 76 (upper right) which is initially cleared (by signal ll) then advanced to one" by the signal 12, to specify the first row in the matrix register 26. Accordingly, the initial entry is in column one. row one.
if the comparator 92 detects a similarity, the signal H also is supplied to a delay circuit 104, the output of which is applied to the timing unit 50 to terminate the interval (4 and reestablish the interval :3. The delay circuit 104 also receives an input from a detector 106 as an alternate source of the signal H, which detects an end" code provided from the storage unit 88 to indicate that all the components of a specific ingredient have been supplied from the unit 88. Thus, either upon the occurrence of a favorable comparison (hit) or a completion of the file with no comparison, the signal H is supplied through the delay circuit 104 to terminate the interval of timing signal :4 and, at the present stage, reestablish the interval :3.
Recapitulating, during the first interval defined by the timing signal t4, any percentage component of the nutrient N1 that is present in the ingredient l4 is entered at the location of column one and row one in the matrix register 26. if, for ex ample, the ingredient 14 is rolled barley," and the nutrient N1 is protein," a percentage of l 1 percent will be entered. Alternatively, if the nutrient N1 were fat," no value would be entered in the identified component register 28, because rolled barley" contains essentially no fat" and no coincidence would occur.
During the second interval of the timing signal 13, the next ingredient 13 in reverse sequence is transferred into the address register 86. That is, as indicated, after the first operation is complete, the timing unit terminates the signal (4 to again provide the signal 3 at a high level. However, during the interval of the timing signal 14, the step register 102 was advanced to a count of one" which number is now supplied to a subtractor along with the signal-represented contents of the nutrient-ingredient counter 58. As a consequence, the output of the subtractor 116 is the total list of nutrients and ingredients, less one which provides a number designating the row containing the ingredient [3 in the matrix register 26. Specifically, during the interval 13, the output from the subtractor ll6 is supplied through the AND-gate to the row address unit 34 which in turn controls the output from the matrix register 26 to provide a signal-represented ingredient 13 through the contact 42 and the AND-gate 84 to be received in the address register 86.
This transfer occurs during the preestablished interval of !3, after which the time signal I3 is automatically terminated to initiate the interval of the timing signal 14. During the interval of t4, another comparison is performed in search of components of the nutrient N 1 in the ingredient 13 as addressed by the ingredient-representative signal of ingredient [3.
As previously explained, a coincidence results in a registered value while the failure of a coincidence to occur simply terminates the interval of the timing signal 14. ln the event that a coincidence is detected, the percentage detected is registered in the component register located in the first row, second column of the matrix register 26. That component register is specified because the ingredient register 102 advanced by the signal H to provide the number two to the column address unit 36 while the nutrient step register 76 continues to provide the number one to the row address unit 38.
In this manner, the system proceeds to develop a series of percentage values representative of the presence of the nutrient N1 in the various ingredients 14 through ll registering such percentage values across the top row of component registers in the matrix register 26. As the operation progresses, it may be seen that a matrix is developed in the matrix register 26 specifying the nutrient components of the various ingredients. Specifically, the format of the developed matrix is illustrated in the following chart:
60 05 02 N2 00 09 42 12 N3 0 l 4] l6 0 l N4 00 0O 00 100 ll 00 00 I00 00 i2 00 l0() ()0 00 i3 100 00 0O 00 I4 When the first row (or following rows) of the matrix is completed. the contents of the ingredient register 102 is stepped to equal the contents of the ingredient counter 68 (e.g., a count of four). Upon such an occurrence, a signal N1 is formed by the comparator 118 indicating that each of the ingredients l4 through ll have been considered and the first row of the matrix is complete. The signal Nl' from the com parator 118 is applied to the timing unit 50 to terminate the interval of the timing signal :4 and again establish the timing interval of signal 22. As indicated below, during the interval of 12, a fresh nutrient is placed in the nutrient comparison register 72. On the occurrence of the signal 12, the step register 76 (upper right) is advanced to register the number "two" which number is placed in the row address unit 34 through the AND-gate 74 during the interval of the timing signal :2. Therefore, the row address unit 34 then specifies the nutrient N2 (located in the second column) in the matrix register 26 to be transferred through the contact 42 and the AND-gate 71 to the nutrient comparison register 72.
Concurrently with the above, the ingredient register 102 is reset by the timing signal :2 to initiate another cyclic scanning through the ingredients [4 through I1 so as to register the component nutrients of these ingredients in the second row of the matrix register 26.
As the operation of the system continues, the matrix is developed row by row in the matrix register 26 and in time the ingredient I1 is again placed in the compare register 72. Thus, in accordance herewith, the entire matrix is generated in the component registers defined in columns and rows, each identify ingredients.
Referring to the above chart and to FIG. 1, it is to be noted that the component registers in the lower portion of the matrix contain values of either 100 percent or 0. Specifically, for example, if an ingredient is rolled barley, it constitutes 100 percent rolled barley. On the contrary, if an ingredient is cane molasses," it constitutes absolutely no rolled barley." The lower portion of the matrix is developed just as the upper portion of the matrix is developed, by a sensing of coincidence between the content of the register 72 and the codes provided from the characteristics storage unit 88; however, the ingredients are identified as such by a seventh bit that is provided to the comparator 92 from a comparator 123 which senses that the nutrients N1 through N4 rows have been completed by reason of the contents of the register 76 coinciding to that of the counter 58 less that of the counter 68. That is, the six-bit codes from component registers in column 25 that represent ingredients, are supplemented by an additional seventh bit from the comparator 123 to identify the code as an ingredient. Consequently, when the addressed section of the storage unit 88 provides the seven-bit code word for that ingredient a hit is detected producing the signal H high and entering the value of 100 in the appropriate component register.
When the last row of the matrix register 26 is complete, the contents of the step register 76 is stepped to exceed the contents of the nutrient-ingredient counter 58. That condition is detected by a nutrient comparator 121 which initiates the signal NN' to provide the signal from the timing unit 50. This signal indicates the completion of the matrix in the matrix register 26 and qualifies an AND-gate 122 (comprising a parallel gang gate) to supply the entire contents in positional economical and relatively simple in operation.
Of course, the system hereof may be variously utilized to formulate ingredient-nutrient matrices and various alternative structures may be employed. Accordingly, the scope hereof is to be determined in accordance with the following claims.
What is claimed is:
l. A system for providing nutrient and ingredient data in a matrix format, for a linear-programming computer, to accomplish an objective feed formula comprising:
a matrix register means including a plurality of component registers with row and column significance; means for registering signal-represented formula requirements, including all specific nutrients and all specific ingredients, in said matrix register as one column therein;
means for counting said ingredients and said nutrients registered in said matrix register, to specify the columns and rows of said matrix; storage means for registering a plurality of ingredients that may be specified, along with the component nutrients thereof;
means for selectively registering, as other columns of said matrix, in said matrix register means, specified nutrients of said ingredients along with indications of said ingredients; and
means for reading said matrix out of said matrix register means with column and row significance.
2. A system according to claim 1 wherein said means for counting includes a first counter for counting each of said specific ingredients values and said specific nutrients values.
3. A system according to claim 2 further including a second counter for counting only one of said values.
4. A system according to claim 1 wherein said means for selectively registering includes means for comparing signalrepresented component nutrients of an ingredient with a specific signal-represented nutrient to register values thereof upon the occurrence of a coincidence.
5. A system according to claim 4, wherein said means for selectively registering further includes means for registering a signal-represented nutrient during an interval of comparison with nutrient components of each specific signal-represented ingredient to register values in said matrix register means.
6. A system according to claim 5 wherein said means for selectively registering further includes means for designating said individual component registers in said matrix register means in a predetermined order along each row in sequence.
7. A system according to claim 1, including a timing control means and further including means connected to said means for counting to control said timing control means to sequence the operation of said means for selectively registering.
8. A system according to claim 7 wherein said means for counting includes a first counter for counting each of said specific ingredients values and said specific nutrients values.
9. A system according to claim 8 further including a second counter for counting only one of said values.
10. A system according to claim 9 wherein said means for selectively registering includes means for comparing signalrepresented component nutrients of an ingredient with a specific signal-represented nutrient to register values thereof upon the occurrence ofa coincidence.
Claims (10)
1. A system for providing nutrient and ingredient data in a matrix format, for a linear-programming computer, to accomplish an objective feed formula comprising: a matrix register means including a plurality of component registers with row and column significance; means for registering signal-represented formula requirements, including all specific nutrients and all specific ingredients, in said matrix register as one column therein; means for counting said ingredients and said nutrients registered in said matrix register, to specify the columns and rows of said matrix; storage means for registering a plurality of ingredients that may be specified, along with the component nutrients thereof; means for selectively registering, as other columns of said matrix, in said matrix register means, specified nutrients of said ingredients along with indications of said ingredients; and means for reading said matrix out of said matrix register means with column and row significance.
2. A system according to claim 1 wherein said means for counting includes a first counter for counting each of said specific ingredients values and said specific nutrients values.
3. A system according to claim 2 further including a second counter for counting only one of said values.
4. A system according to claim 1 wherein said means for selectively registering includes means for comparing signal-represented component nutrients of an ingredient with a specific signal-represented nutrient to register values thereof upon the occurrence of a coincidence.
5. A system according to claim 4, wherein said means for selectively registering further includes means for registering a signal-represented nutrient during an interval of comparison with nutrient components of each specific signal-represented ingredient to register values in said matrix register means.
6. A system according to claim 5 wherein said means for selectively registering further includes means for designating said individual component registers in said matrix register means in a predetermined order along each row in sequence.
7. A system according to claim 1, including a timing control means and further including means connected to said means for counting to control said timing control means to sequence the operation of said means for selectively registering.
8. A system according to claim 7 wherein said means for counting includes a first counter for counting each of said specific ingredients values and said specific nutrients values.
9. A system according to claim 8 further including a second counter for counting only one of said values.
10. A system according to claim 9 wherein said means for selectively registering includes means for comparing signal-represented component nutrients of an ingredient with a specific signal-represented nutrient to register values thereof upon the occurrence of a coincidence.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6292970A | 1970-08-11 | 1970-08-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
US3626377A true US3626377A (en) | 1971-12-07 |
Family
ID=22045783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US62929A Expired - Lifetime US3626377A (en) | 1970-08-11 | 1970-08-11 | Matrix generator for use in solving feed formulation problems |
Country Status (1)
Country | Link |
---|---|
US (1) | US3626377A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3824559A (en) * | 1971-08-18 | 1974-07-16 | Ferranti Ltd | Data processing apparatus for weighting input information signals |
US5704350A (en) * | 1994-03-25 | 1998-01-06 | Nutritec Corporation | Nutritional microcomputer and method |
US5803906A (en) * | 1987-08-12 | 1998-09-08 | Micro Chemical, Inc. | Method and system for providing animal health histories and tracking inventory of related drug usage |
US6220743B1 (en) * | 1996-04-05 | 2001-04-24 | The Dow Chemical Co. | Processes and materials selection knowledge-based system |
US6358546B1 (en) | 1999-01-15 | 2002-03-19 | Ralston Purina Company | Methods for customizing pet food |
US6592517B2 (en) | 1987-08-12 | 2003-07-15 | Micro Beef Technologies, Ltd. | Method and system for providing animal health histories and tracking inventory of related drug usage |
US20030195758A1 (en) * | 2002-04-12 | 2003-10-16 | Cargill, Inc. | System for animal feed market analysis |
US20030195792A1 (en) * | 2002-04-12 | 2003-10-16 | Cargill, Inc. | Method of animal feed market analysis |
WO2003087999A2 (en) * | 2002-04-12 | 2003-10-23 | Can Technologies, Inc. | System and method for animal feed market analysis |
US20090099883A1 (en) * | 2007-10-15 | 2009-04-16 | Oracle International Corporation | Process manufacturing with least cost formulation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3027068A (en) * | 1959-11-13 | 1962-03-27 | Fuji Tsushinki Seizo Kk | Card reading and punching device for data processing machines |
US3154670A (en) * | 1961-02-02 | 1964-10-27 | Philips Corp | Digital system for the control of components of a mixture |
US3186596A (en) * | 1962-01-25 | 1965-06-01 | Industrial Nucleonics Corp | Concrete batch blending control system |
US3443078A (en) * | 1965-09-16 | 1969-05-06 | Electronic Associates | Analogue computers for least-cost optimization |
US3473008A (en) * | 1964-06-12 | 1969-10-14 | Leeds & Northrup Co | System for feed blending control |
US3560725A (en) * | 1968-05-16 | 1971-02-02 | Firestone Tire & Rubber Co | Blend optimizer comprising an assembly of variable factor potentiometers |
-
1970
- 1970-08-11 US US62929A patent/US3626377A/en not_active Expired - Lifetime
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3027068A (en) * | 1959-11-13 | 1962-03-27 | Fuji Tsushinki Seizo Kk | Card reading and punching device for data processing machines |
US3154670A (en) * | 1961-02-02 | 1964-10-27 | Philips Corp | Digital system for the control of components of a mixture |
US3186596A (en) * | 1962-01-25 | 1965-06-01 | Industrial Nucleonics Corp | Concrete batch blending control system |
US3473008A (en) * | 1964-06-12 | 1969-10-14 | Leeds & Northrup Co | System for feed blending control |
US3443078A (en) * | 1965-09-16 | 1969-05-06 | Electronic Associates | Analogue computers for least-cost optimization |
US3560725A (en) * | 1968-05-16 | 1971-02-02 | Firestone Tire & Rubber Co | Blend optimizer comprising an assembly of variable factor potentiometers |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3824559A (en) * | 1971-08-18 | 1974-07-16 | Ferranti Ltd | Data processing apparatus for weighting input information signals |
US6547726B2 (en) | 1987-08-12 | 2003-04-15 | Micro Beef Technologies, Ltd. | Method and system for providing animal health histories and tracking inventory of related drug usage |
US5803906A (en) * | 1987-08-12 | 1998-09-08 | Micro Chemical, Inc. | Method and system for providing animal health histories and tracking inventory of related drug usage |
US6592517B2 (en) | 1987-08-12 | 2003-07-15 | Micro Beef Technologies, Ltd. | Method and system for providing animal health histories and tracking inventory of related drug usage |
US5704350A (en) * | 1994-03-25 | 1998-01-06 | Nutritec Corporation | Nutritional microcomputer and method |
US6220743B1 (en) * | 1996-04-05 | 2001-04-24 | The Dow Chemical Co. | Processes and materials selection knowledge-based system |
US6358546B1 (en) | 1999-01-15 | 2002-03-19 | Ralston Purina Company | Methods for customizing pet food |
US20030195758A1 (en) * | 2002-04-12 | 2003-10-16 | Cargill, Inc. | System for animal feed market analysis |
US20030195792A1 (en) * | 2002-04-12 | 2003-10-16 | Cargill, Inc. | Method of animal feed market analysis |
WO2003087999A2 (en) * | 2002-04-12 | 2003-10-23 | Can Technologies, Inc. | System and method for animal feed market analysis |
WO2003087999A3 (en) * | 2002-04-12 | 2003-12-31 | Can Technologies Inc | System and method for animal feed market analysis |
US20090099883A1 (en) * | 2007-10-15 | 2009-04-16 | Oracle International Corporation | Process manufacturing with least cost formulation |
US8234139B2 (en) * | 2007-10-15 | 2012-07-31 | Oracle International Corporation | Process manufacturing with least cost formulation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US2968027A (en) | Data processing system memory controls | |
US3218611A (en) | Data transfer control device | |
US3533076A (en) | Electronic accounting apparatus | |
US3626377A (en) | Matrix generator for use in solving feed formulation problems | |
GB799764A (en) | Improvements in apparatus for selecting data from a record tape | |
US3444523A (en) | Apparatus for sorting of recorded digital data | |
US3559188A (en) | Supervisory system for time-shared numerical control system | |
US3328765A (en) | Memory protection system | |
GB850322A (en) | Improvements in buffer devices for data processing systems | |
US3699535A (en) | Memory look-ahead connection arrangement for writing into an unoccupied address and prevention of reading out from an empty address | |
US3609665A (en) | Apparatus for exchanging information between a high-speed memory and a low-speed memory | |
US3733593A (en) | Capture combination system | |
US3327294A (en) | Flag storage system | |
US2974867A (en) | Electronic digital computer | |
US3299254A (en) | Test scoring machine | |
GB1396024A (en) | Numerical control system | |
US3277447A (en) | Electronic digital computers | |
US3289174A (en) | Memory sector selection circuit | |
US3214736A (en) | Magnetic tape scan with field selection | |
US3000556A (en) | Data conversion system | |
US3417375A (en) | Circuitry for rotating fields of data in a digital computer | |
US3149309A (en) | Information storage and search system | |
US3183489A (en) | Data transfer device | |
US3774166A (en) | Short-range data processing transfers | |
GB788080A (en) | Electrical apparatus for transferring data between a record card and a recirculatingregister |