Identifying quadratic programming solutions
By identifying and optimizing the effective constraint set, the updated solution to the quadratic programming problem is obtained and its accuracy is quantified. This solves the problem that the Goldfarb-Idnani algorithm may yield non-optimal solutions and unknown errors, thus improving the decision reliability of the control system.
Patent Information
- Application Number
- CN202480026417.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-18
- Filing Date
- 2024-04-19
- Publication Date
- 2025-11-18
AI Technical Summary
Existing quadratic programming algorithms, such as the Goldfarb-Idnani algorithm, may yield non-optimal solutions and fail to quantify errors when solving quadratic programming problems, making it difficult for control systems to make deterministic decisions based on these solutions.
By receiving the initial solution to the quadratic optimization problem, identifying the set of valid constraints, optimizing only the objective subject to valid constraints, obtaining the updated solution, and quantifying the accuracy and precision of the solution.
This improves the accuracy and precision of solutions to quadratic programming problems, ensuring that control systems can make operations based on more reliable decisions, such as trajectory planning and obstacle avoidance for autonomous vehicles.
Smart Images

Figure CN120981802A_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to U.S. Provisional Application No. 63 / 497,922, filed April 24, 2023, and U.S. Application No. 18 / 639,845, filed April 18, 2024, which are incorporated herein by reference in their entirety and for all purposes. Background Technology
[0003] 1. Field of Invention
[0004] This invention relates generally to the field of optimization, and more specifically to identifying solutions to quadratic programming problems.
[0005] 2. Relevant Technical Descriptions
[0006] Optimization problems (such as quadratic programming problems) can be solved by various control systems (such as control systems for autonomous vehicles, drones, and aircraft). Obtaining solutions to such optimization problems can be computationally intensive. Furthermore, for certain categories of optimization problems, there may be errors associated with the obtained solutions. Summary of the Invention
[0007] According to this disclosure, an example method for solving a quadratic programming optimization problem includes: receiving a first quadratic optimization problem comprising an objective and a set of inequality constraints by one or more processors; obtaining an initial solution to the first quadratic optimization problem subject to the set of inequality constraints by the one or more processors; identifying a subset of the set of inequality constraints as effective constraints relative to the optimal solution by the one or more processors; obtaining an updated solution to the first quadratic optimization problem by the one or more processors by solving a second quadratic optimization problem corresponding to the objective subject to the effective constraints; and determining the accuracy and precision associated with the updated solution by the one or more processors.
[0008] According to this disclosure, an example apparatus for solving a quadratic optimization problem includes one or more memories and one or more processing units communicatively coupled to the one or more memories. The one or more processing units may be configured to: receive a first quadratic optimization problem including an objective and a set of inequality constraints; obtain an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; identify a subset of the set of inequality constraints as effective constraints relative to the optimal solution; obtain an updated solution to the first quadratic optimization problem by solving a second quadratic optimization problem corresponding to the objective subject to the effective constraints; and determine the accuracy and precision associated with the updated solution.
[0009] According to the present disclosure, an example device for solving a quadratic optimization problem includes means for receiving a first quadratic optimization problem comprising an objective and a set of inequality constraints; means for obtaining an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; means for identifying a subset of the set of inequality constraints that are active constraints with respect to an optimal solution; means for obtaining an updated solution to the first quadratic optimization problem by solving a second quadratic optimization problem corresponding to optimizing the objective subject to the active constraints; and means for determining an accuracy and precision associated with the updated solution.
[0010] According to the present disclosure, a non-transitory computer-readable medium storing instructions for solving a quadratic programming optimization problem can store instructions comprising code for receiving a first quadratic optimization problem comprising an objective and a set of inequality constraints; obtaining an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; identifying a subset of the set of inequality constraints that are active constraints with respect to an optimal solution; obtaining an updated solution to the first quadratic optimization problem by solving a second quadratic optimization problem corresponding to optimizing the objective subject to the active constraints; and determining an accuracy and precision associated with the updated solution. BRIEF DESCRIPTION OF DRAWINGS
[0011] Figure 1 is a plot of an example quadratic optimization problem according to one embodiment.
[0012] Figure 2 is a block diagram of a system comprising a control system and an optimization engine according to one embodiment.
[0013] Figure 3 is a flowchart of an example method for determining a solution to a quadratic programming problem and determining a precision associated with a given solution according to one embodiment.
[0014] Figure 4 is a flowchart of an example method for determining a solution to a quadratic programming problem according to one embodiment.
[0015] Figure 5 is a flowchart of an example method for determining an accuracy and precision associated with a solution to a quadratic programming problem according to one embodiment.
[0016] Figure 6 is a block diagram of an embodiment of a computing device that can be utilized in embodiments as described herein.
[0017] Like reference symbols in the various drawings indicate like elements according to some example implementations. DETAILED DESCRIPTION
[0018] Figure 1A graph representing an example quadratic optimization or quadratic programming problem is plotted. As used herein, a "quadratic optimization" or "quadratic programming" problem (which may be used interchangeably) refers to optimizing a quadratic function of N variables subject to linear constraints. The linear constraints can be equality and / or inequality. Figure 1 Candidate solutions to a quadratic function (i.e., an unconstrained quadratic optimization problem) are illustrated, where possible solutions are depicted by contour curves 102a, 102b, and 102c. It should be understood that contour curves 102a, 102b, and 102c depict candidate solutions to a quadratic function without any constraints. In instances where the quadratic function is to be minimized or maximized, the function may be referred to as the objective. It should be noted that although in Figure 1 The paper describes three possible solutions, but there may be an infinite number of possible solutions.
[0019] exist Figure 1 The diagram also shows a feasible region 104. Feasible region 104 indicates the region satisfying the set of constraints. The feasible region can be defined by any suitable number of constraints (e.g., zero, one, two, three, ten, twenty, one hundred, etc.). In general, the objective of the quadratic programming problem is to optimize (e.g., minimize or maximize) a constrained quadratic function (described by curves 102a, 102b, and 102c). It should be noted that of curves 102a, 102b, and 102c, only curve 102c includes a point (e.g., point 106) on or within the feasible region 104. Therefore, point 106 can be considered a solution to the quadratic programming problem because point 106 is a solution to the quadratic function and is within the feasible region 104.
[0020] Given a set of constraints and a solution to an unconstrained quadratic optimization problem, constraints in the constraint set are considered "valid constraints" if the evaluation of a constraint at the solution is 0. Conversely, if the evaluation of a constraint at the solution is greater than 0, the constraint is satisfied, but it is not considered a valid constraint. It should be noted that if the evaluation of a constraint at the solution is less than 0, the constraint is considered unsatisfied, and therefore, the solution to the unconstrained quadratic optimization problem is not a proper solution to the constrained quadratic optimization problem subject to the given set of constraints.
[0021] Reference Figure 1 The constraint associated with line 108 can be considered a valid constraint for solution 106, since solution 106 lies exactly on line 108. Conversely, the constraint associated with line 110 can be considered a satisfied but invalid constraint for solution 106, since solution 106 is above the line but not on it.
[0022] Existing quadratic programming algorithms can identify solutions that nominally optimize quadratic functions subject to linear constraints. For example, the Goldfarb-Idnani algorithm uses an iterative approach to identify solutions that satisfy the constraints. The Goldfarb-Idnani algorithm uses an iterative sequence of matrix operations to refine the identified solutions from previous iterations. Because the Goldfarb-Idnani algorithm uses iterative matrix operations, each successive matrix operation can compound errors from previous errors. Therefore, the solution identified at the end of the Goldfarb-Idnani algorithm may not actually be optimal, and there may exist one or more solutions that are better than the one identified by the Goldfarb-Idnani algorithm. Furthermore, due to the compounding of errors introduced at each successive iteration, substantial errors may exist in the identified solutions, and the degree of error is not quantified by the Goldfarb-Idnani algorithm.
[0023] Various control systems can utilize solutions to quadratic programming problems, such as those used by autonomous vehicles (e.g., cars, airplanes, etc.) and / or unmanned aerial vehicle (UAV) systems (e.g., aerial UAVs, seaplanes, etc.). Solutions to such quadratic programming problems can be used for trajectory planning of autonomous vehicles, acceleration and / or deceleration control, and object avoidance (e.g., pedestrians, other vehicles, road construction objects, etc.). Quadratic programming problems can be solved multiple times per second, and the associated control systems can utilize the solutions to control systems or machines, such as autonomous vehicles or UAV systems. For example, based on a quadratic programming solution, the control system of an autonomous car or truck can actuate the brakes, causing the car or truck to turn to avoid an object. However, because conventional techniques for solving quadratic programming problems may yield suboptimal solutions, and because the identified solutions have unquantified associated errors, it is difficult for control systems to characterize the determinism of decisions based on solutions to quadratic programming problems determined using conventional techniques. For example, control systems can use conventional techniques to obtain solutions to quadratic programming problems where the solution indicates, for example, a predicted or estimated distance to a road object to be avoided. However, the errors associated with the identified solutions are unknown. If the level of error or the accuracy of the solution is known, the control system will be able to make decisions at least in part based on the error. For example, if the error associated with the distance to a road object to be avoided is 5 millimeters, the control system of an autonomous car or truck may be able to instruct one or more actions to be performed with high confidence. Conversely, if the error is 20 feet, the control system may avoid instructing various actions due to the low confidence of the solution.
[0024] This paper discloses systems, methods, media, and techniques for identifying solutions to quadratic programming problems and quantifying the accuracy or precision level associated with the identified solutions. Specifically, a solution can be identified by first obtaining an initial solution to the quadratic programming problem and determining the set of valid constraints associated with the initial solution. As used herein, an "initial solution" refers to a solution to a quadratic optimization problem obtained through a complete execution of a given quadratic optimization algorithm, wherein the initial solution is subject to a set of constraints. For example, the Goldfarb-Idnani algorithm can be used to identify the initial solution. The updated solution can then be determined by optimizing only the quadratic function or objective subject to valid constraints. By reducing the complexity of the optimization problem, the updated solution can be identified quickly. Furthermore, it is guaranteed that the updated solution is at least as good as the initial solution. It should be noted that in some instances, there may be a relationship between the accuracy of the updated solution and the number of valid constraints. For example, fewer valid constraints may lead to better accuracy of the updated solution compared to scenarios with more valid constraints. Additionally, the error or precision level associated with the updated solution can be determined. The accuracy or precision level can be determined based on the error associated with each matrix operation performed to obtain the updated solution.
[0025] Figure 2 This is a block diagram of an example system 200 according to some exemplary embodiments. System 200 may be part of an autonomous vehicle, such as an autonomous car, truck, drone, aircraft, etc. System 200 may include a control system 202, which may be configured to identify an optimization problem to be solved, determine a set of actions or operations to be taken based on the determined solution to the optimization problem, send instructions to other components of system 200 (e.g., braking system, acceleration system, steering system, etc.) based on the determined set of operations, and so on. In some embodiments, control system 202 may be configured to communicate with optimization engine 204. In some embodiments, control system 202, optimization engine 204, or both may be implemented by one or more of processing unit 610 and / or DSP 620. For example, as Figure 2 As illustrated, control system 202 can send data indicating the quadratic programming objective and associated constraints to be optimized. Optimization engine 204 can be configured to determine the final solution to the quadratic programming problem and send that solution and associated accuracy to control system 202. For example, in some implementations, optimization engine 204 can be implemented in... Figure 3 and / or Figure 4 The diagrams shown below, in conjunction with these figures, illustrate any methods for determining solutions and their implementation in [the context of the diagrams]. Figure 3 and / or Figure 5Any method shown in the figures and described below in conjunction with these figures is used to determine the accuracy or precision associated with a solution. In response to receiving a solution and the associated level of precision, the control system 202 may make one or more decisions based on the combination of the solution and the level of precision. One or more decisions may include modifying the current operating mode of the autonomous vehicle associated with system 200, maintaining the current operating mode of the autonomous vehicle associated with system 200, obtaining additional data for making additional decisions, etc.
[0026] In some implementations, the solution to the quadratic programming problem can be obtained by first acquiring an initial solution subject to a set of linear inequalities. A conventional quadratic programming algorithm (such as the Goldfarb-Idnani algorithm) can be used to obtain the initial solution. In conjunction with determining the initial solution, a conventional quadratic programming algorithm (e.g., the Goldfarb-Idnani algorithm) can also be used to determine the effective constraints associated with the initial solution. The solution to the quadratic programming problem can then be determined by solving a second quadratic programming problem, which corresponds to optimizing the initial objective subject only to effective constraints. The accuracy or precision associated with the solution can be determined based on the error bounds associated with each matrix operation used to determine the solution to the second quadratic programming problem.
[0027] Figure 3 This is a flowchart of process 300 for determining the solution and accuracy of a quadratic programming problem, based on some implementation schemes. The components of the frame used to implement process 300 include one or more components of a computing device, such as the processing unit of an autonomous vehicle or other control system, server equipment, etc. In some specific implementations, the frame of process 300 may be implemented by a control system and an optimization engine, as in... Figure 2 The figure is shown in the diagram and described above in conjunction with it. Figure 6 Examples of such computing devices and their components are shown in the figure and described below in conjunction with the figure.
[0028] Process 300 may begin at 302 by receiving a first- or second-order optimization problem comprising an objective and a set of inequality constraints. Functional components for executing block 302 may include processing units, such as processing unit 610, as shown in... Figure 6 The diagram is shown below and described in conjunction with it. A quadratic optimization problem can be to minimize or maximize a quadratic function subject to inequality constraints. For example, a quadratic optimization problem can be expressed as:
[0029] ,
[0030]
[0031] In the equations given above, x and a are vectors of length n (where n can be one, two, ten, one hundred, etc.), G is an n×n symmetric positive definite matrix, C is a matrix of dimension n×m, and b is a vector of length m (where m can be one, two, ten, one hundred, etc.). The index n represents the dimension of the quadratic optimization problem, and the index m represents the number of linear constraints.
[0032] At 304, process 300 can obtain an initial solution to the first-to-second-order optimization problem subject to a set of inequality constraints. Functional components for executing block 304 may include processing units, such as processing unit 610, as shown in... Figure 6 The figure is shown and described below in conjunction with the diagram. In some specific implementations, a conventional quadratic programming algorithm (such as the Goldfarb-Idnani algorithm) can be used to obtain the initial solution.
[0033] At 306, process 300 may identify a subset of inequality constraints as effective constraints relative to the optimal solution. Components for the functionality of execution block 306 may include processing units, such as processing unit 610, as shown in... Figure 6 The figure is shown and described below in conjunction with it. As described above, effective constraints can be those constraints whose values lie on the effective constraints when the quadratic function is evaluated at the initial solution. In some implementations, the index of the vector b corresponding to the effective constraint can be represented in vector A. It should be noted that in the instance where the Goldfarb-Idnani algorithm is used at block 304 to obtain the initial solution, the Goldfarb-Idnani algorithm can generate a "solution pair" or "S pair" that includes the initial solution x and vector A as the final output. It should be noted that vector A represents a vector indicating the index of the effective constraint.
[0034] At 308, process 300 can obtain an updated solution to the quadratic optimization problem by solving a second quadratic optimization problem corresponding to the objective subject to effective constraints (e.g., as received at block 302). Components for performing the functionality of block 302 may include processing units, such as processing unit 610, as shown in... Figure 6 The figure is shown and described below in conjunction with it. For example, in some implementations, the updated solution can be obtained by solving the following quadratic optimization problem:
[0035]
[0036]
[0037] In the equations given above, Let C represent the constraint on the effective constraint index specified by vector A, and b AThis represents the restriction on the index of vector b in vector A. It should be noted that since the second quadratic optimization problem is limited to the effective constraints, it has equality constraints. Furthermore, it should be noted that obtaining an updated solution by solving the second quadratic optimization problem essentially corresponds to recalculating the solution under the effective constraint set. Because reducing the constraint set simplifies the problem, the second quadratic optimization problem can be better tuned than the initial quadratic optimization problem solved at box 304 and therefore yields an updated solution with less error than the initial solution. It should be noted that in Figure 4 The figure below illustrates and describes in more detail the techniques used to determine the updated solution by solving the second quadratic optimization problem.
[0038] It should be noted that in some implementations, a smaller bit-width computation than that used to determine the updated solution (e.g., obtained at box 308) can be used to obtain the initial solution (obtained at box 304) and a subset of valid constraints (e.g., obtained at box 306). For example, in some implementations, 32-bit computation can be used to obtain the initial solution and a subset of valid constraints, while 64-bit computation can be used to obtain the updated solution. Using different bit-width computations to determine the initial solution and a subset of valid constraints allows for greater overall speed in identifying the set of valid constraints (e.g., where lower precision may be required), while also allowing for improved accuracy of the updated solution.
[0039] At 310, process 300 may determine the accuracy and / or precision associated with the updated solution. Components for performing the functionality of block 310 may include processing units, such as processing unit 610, as shown in... Figure 6 The figure is shown and described below in conjunction with it. Generally, as used herein, "accuracy" can refer to the distance predicted or estimated (e.g., an updated solution) relative to an unknown ground reality. For example, in an instance where the updated solution is a distance from a target, accuracy can also be expressed in distance units. As used herein, "precision" can refer to the number of digits used to represent a number. In some embodiments, process 300 may determine accuracy and / or precision based on error bounds associated with one or more matrix operations used to determine the updated solution. In some embodiments, accuracy and / or precision may additionally be determined based on characteristics of the computing device used to determine the updated solution, such as the address width of the computing device (e.g., whether the computing device is a 32-bit computing device, a 64-bit computing device, etc.). For example, in some embodiments, precision may be estimated based on the bit width associated with the binary format of a particular computing device. Continuing with this example, the accuracy of a given solution may be estimated based on precision. Figure 5 The figure below illustrates and describes in more detail the techniques used to determine accuracy and / or precision.
[0040] It should be noted that in some implementations, variable change (COV) regularization (sometimes called "pre-conditioning") can be performed relative to the original proposed quadratic optimization problem. Specifically, because the original system of equations may include variables with values spanning a wide range of magnitudes, it may be associated with an ill-conditioned or poorly-regulated matrix G, which can lead to large errors. Matrix G can be linearly scaled using a diagonal matrix, and x can be rewritten according to the new variable y. The scaling matrix D can be a diagonal matrix whose values correspond to the square roots of the Hessian matrix. Variable change can produce a completely equivalent system but with different matrix conditioning properties, which in turn can produce more accurate results in the optimal solution. After performing COV regularization on the original proposed quadratic optimization problem (e.g., by...), Figure 3 The process 300 described above, illustrated in conjunction with the figure, involves variable changes performed between blocks 302 and 304. This allows for the solution of a quadratic optimization problem using the changed variables, as described above, for example, using... Figure 3 Boxes 304-308, shown in the figure above and described in conjunction with it, can be reversed after obtaining an updated solution using a quadratic optimization problem with the changed variables (e.g., at box 308).
[0041] In some implementations, COV regularization may be performed in response to determining that the originally proposed quadratic optimization problem satisfies a specific criterion. For example, in some implementations, the condition number of the matrix G of the originally proposed quadratic optimization problem may be compared with a threshold, and COV regularization may be performed in response to the condition number exceeding the threshold. It should be noted that in some implementations, the threshold may be specified for use (e.g., by the customer).
[0042] As an example, consider the initial quadratic optimization problem represented by the following:
[0043]
[0044]
[0045] It should be noted that the equations given above correspond to the above combination. Figure 3 The initial quadratic optimization problem described in box 302.
[0046] COV regularization can be performed by transforming variable x into variable y using the following:
[0047]
[0048] Generally, matrix D can be an invertible matrix constructed based on matrix G and / or the properties of matrix G. In some implementations, D can be an element having functions as Hessian functions. The diagonal matrix of D. Note that the elements of D are real numbers and well-defined because the operands are positive. After the variables change, the initial quadratic optimization problem is equivalent to:
[0049]
[0050]
[0051] In some implementations, D may be an element A diagonal matrix.
[0052] In some implementations, D may be an element A diagonal matrix.
[0053] It should be noted that the techniques described above can be used to solve the quadratic optimization problem given by the variable y above, for example, by obtaining an initial solution to the quadratic optimization problem (e.g., using the Goldfarb-Idnani algorithm), and then finding an updated solution to the quadratic optimization problem by optimizing the objective subject to an effective set of constraints (e.g., as described above in combination with...). Figure 3 (As described in boxes 304-308).
[0054] After obtaining the updated solution, the variable changes can be reversed to obtain a solution to the original quadratic optimization problem. Specifically, the variable changes can be reversed using the following:
[0055]
[0056] In the equation given above, y This corresponds to the updated solution to the optimization problem when using variable changes for solving, and x This represents the updated solution using the original variables. Note that in the equations given above, matrix D corresponds to the invertible matrix D described above used to perform the variable transformation.
[0057] Figure 4 This is a flowchart of a process 400 for determining a solution to a quadratic programming problem, based on some implementation schemes. The components of the frame used to implement process 400 include one or more components of a computing device, such as the processing unit of an autonomous vehicle or other control system, server equipment, etc. In some specific implementations, the frame of process 400 may be implemented by a control system and an optimization engine, as in... Figure 2 The figure is shown in the diagram and described above in conjunction with it. Figure 6 Examples of such computing devices and their components are shown in the figure and described below in conjunction with the figure.
[0058] Process 400 may begin at 402 by receiving an initial solution to the quadratic optimization problem and an index of the valid constraints associated with the initial solution. Functional components for executing block 402 may include processing units, such as processing unit 610, as shown in... Figure 6 The diagram is shown and described below in conjunction with the figure. As described above, the index of the effective constraints can be represented by vector A. It should be noted that because the initial solution is not used to compute the updated solution, in some specific implementations, process 400 may receive only the index of the effective constraints and not the initial solution.
[0059] At 404, process 400 may construct a second unconstrained quadratic optimization problem based on the index of the effective constraints. Functional components for executing block 404 may include processing units, such as processing unit 610, as shown in... Figure 6 The diagram is shown below and described in conjunction with it. For example, as described above, the second quadratic optimization problem can correspond to optimizing a quadratic function subject only to effective constraints. As a more specific example, the second quadratic optimization problem can correspond to:
[0060]
[0061]
[0062] The above quadratic optimization problem can have Having form Any solution x, where y is any real-valued vector. In some implementations, x A It can be taken as any solution, and The scope spans The null space. As used in this article, Let represent a matrix whose columns correspond to the normals of the effective constraints under optimality. In other words, the constraints have the form , where x Let represent the optimal solution. Therefore, the second unconstrained quadratic optimization problem can be expressed as:
[0063]
[0064] At 406, process 400 may solve an unconstrained quadratic optimization problem to determine an updated solution to the quadratic optimization problem. Components for the functionality of execution block 406 may include processing units, such as processing unit 610, as shown in... Figure 6 The figure is shown and described below in conjunction with the diagram. For example, y can be determined by the following formula. To solve the unconstrained quadratic optimization problem:
[0065]
[0066] The solution has been updated (represented as x in this paper). It can be determined by the following:
[0067]
[0068] It should be noted that in order to solve the equations given above, a series of matrix operations are performed to obtain x. Error bounds associated with a series of matrix operations can be used to determine the accuracy and / or precision associated with the updated solution, as in... Figure 5 The figure is shown in the diagram and described below in conjunction with it.
[0069] Figure 5 This is a flowchart of a process 500 for determining the accuracy and / or precision associated with a solution to a quadratic programming problem, according to some implementation schemes. Components of the frame used to implement process 500 include one or more components of a computing device, such as the processing unit of an autonomous vehicle or other control system, server equipment, etc. In some specific implementations, the frame of process 500 may be implemented by a control system and an optimization engine, as in... Figure 2 The figure is shown in the diagram and described above in conjunction with it. Figure 6 Examples of such computing devices and their components are shown in the figure and described below in conjunction with the figure.
[0070] Process 500 may begin at block 502 by receiving a second unconstrained quadratic optimization problem based on an index of the valid constraints associated with the first quadratic optimization problem. Components for performing the functionality of block 502 may include processing units, such as processing unit 610, as shown in [the original text]. Figure 6 The above is shown and described in conjunction with the figure below. (As shown above...) Figure 4 The second-order optimization problem described in box 404 can be represented as follows:
[0071]
[0072] At 504, process 500 can determine the error associated with each term of the closed-form solution to the second unconstrained quadratic optimization problem. Components for implementing the functionality of block 504 may include processing units, such as processing unit 610, as shown in... Figure 6 The above is shown and described in conjunction with the figure below. (As shown above...) Figure 4 The closed-form solution to the second unconstrained quadratic optimization problem, as described in box 406, can be determined by the following:
[0073]
[0074] The error associated with each term can be an error associated with each matrix operation in the above equations. Matrix operations can include adding and / or multiplying matrices and / or vectors, calculating the inverse of a matrix, etc. For example, there might be a first error associated with multiplying two elements in the above equations, a second error associated with calculating the inverse of a matrix, etc. Each error can be determined based on a property associated with the matrix involved in the matrix operation. For example, the error can be based on the condition number (which in turn depends on the singular values of the matrix), the dimension of the matrix (e.g., the dimension of the G matrix, the dimension of the matrix associated with the set of valid constraints, etc.), etc. Additionally or alternatively, the error can be based on the matrix norm associated with the valid constraint matrix. For example, the error can be based on a ratio of the matrix norm, typically denoted as θ herein. In some specific implementations, θ can be determined by:
[0075]
[0076] At 506, process 500 may aggregate the errors associated with each term of the second unconstrained quadratic optimization problem to determine the error amplification factor associated with the second quadratic optimization problem. Components for performing the functionality of block 506 may include processing units, such as processing unit 610, as shown in... Figure 6 The figure is shown and described below in conjunction with it. In some embodiments, the error amplification factor can be determined by summing the errors associated with each term. In some embodiments, the error amplification factor can be determined when evaluating a closed-form solution by aggregating the errors associated with each term in the order in which the corresponding matrix operations are performed, thereby taking the propagation of errors into account when evaluating a closed-form solution.
[0077] At 508, process 500 may determine the total error based on the error amplification factor and parameters associated with the computational apparatus for solving the second unconstrained quadratic optimization problem. Components for the functionality of execution block 508 may include processing units, such as processing unit 610, as shown in... Figure 6 The figure is shown and described below in conjunction with it. For example, in some implementations, parameters associated with a computing device may include the address width used by the computing device, such as whether the computing device includes a 32-bit processor, a 64-bit processor, etc. In some implementations, the total error may be determined by scaling an error amplification factor based on a metric (sometimes called "machine ε") characterizing the numerical limitations of the computing device.
[0078] At 510, process 500 can determine the accuracy and / or precision associated with the solution to the second unconstrained quadratic optimization problem based on the total error. Components for implementing the functionality of block 510 may include processing units, such as processing unit 610, as shown in... Figure 6The figure is shown and described below in conjunction with the diagram. For example, accuracy and / or precision can convert the total error to a range in units associated with the updated solution. As an example, in an instance where the updated solution is a distance measurement (e.g., in meters), precision can specify a confidence range in distance units (e.g., meters) associated with the updated solution. Examples of precision include + / -5 meters, + / -5 millimeters, etc.
[0079] Figure 6 Examples are shown above in this article (e.g., together with) Figure 2 , Figure 3 , Figure 4 An embodiment of computing device 605 that is utilized as described in and / or 5). For example, computing device 605 may perform... Figure 3 , Figure 4 and / or Figure 5 The functions of one or more of the methods shown in any of the above. It should be noted that... Figure 6 This is intended only to provide generalized examples of various components, any or all of which may be utilized as appropriate. It can be noted that in some instances, Figure 6 The illustrated components can be localized as a single physical device and / or distributed among various networked devices that may be located in different geographical locations. Furthermore, as previously noted, the functionality of the computing device discussed in the previously described embodiments can be determined by… Figure 6 It is performed by one or more of the hardware and / or software components executable in the example.
[0080] Computing device 605 is shown as including hardware elements electrically coupled (or otherwise communicated via bus 605). The hardware elements may include processing unit 610, which may include, but is not limited to, one or more general-purpose processors, one or more special-purpose processors (such as digital signal processor (DSP) chips, graphics accelerator processors, application-specific integrated circuits (ASICs), etc.), and / or other processing structures or components. Figure 6 As shown, depending on the desired functionality, some implementations may have a separate DSP 620. Wireless communication-based location determination and / or other determinations may be provided in the processing unit 610 and / or the wireless communication interface 630 (discussed below). The computing device 605 may also include: one or more input devices 670, which may include, but are not limited to, one or more keyboards, touchscreens, touchpads, microphones, buttons, dials, switches, etc.; and one or more output devices 615, which may include, but are not limited to, one or more displays (e.g., touchscreens), light-emitting diodes (LEDs), speakers, etc.
[0081] The computing device 605 may also include a wireless communication interface 630, which may include, but is not limited to, a modem, a network interface card (NIC), an infrared communication device, a wireless communication device, and / or a chipset (such as a Bluetooth® device, an IEEE 802.11 device, an IEEE 802.15.4 device, a Wi-Fi device, a WiMAX device, a WAN device, and / or various cellular devices), enabling the computing device 605 to communicate with other devices as described in the above embodiments. The wireless communication interface 630 may permit the communication (e.g., sending and receiving) of data and signaling with the TRP of the network, as described herein, for example, via an eNB, gNB, ng-eNB, access point, various base stations and / or other access node types and / or other network components, a computer system, and / or any other electronic device communicatively coupled to the TRP. Communication may be performed via one or more wireless communication antennas 632 that transmit and / or receive wireless signals 634. According to some embodiments, the wireless communication antennas 632 may include a plurality of discrete antennas, an antenna array, or any combination thereof. Antenna 632 may be able to transmit and receive wireless signals using beams (e.g., Tx beams and Rx beams). Beamforming may be performed using digital and / or analog beamforming techniques with appropriate digital and / or analog circuitry. Wireless communication interface 630 may include such circuitry.
[0082] Depending on the desired functionality, the wireless communication interface 630 may include separate receivers and transmitters, or any combination of transceivers, transmitters, and / or receivers, to communicate with base stations (e.g., ng-eNBs and gNBs) and other terrestrial transceivers (such as wireless devices and access points). The computing device 605 may communicate with various data networks, including a variety of network types. For example, a wireless wide area network (WWAN) may be a CDMA network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal Frequency Division Multiple Access (OFDMA) network, a Single Carrier Frequency Division Multiple Access (SC-FDMA) network, a WiMAX (IEEE 802.16) network, and so on. A CDMA network may implement one or more RATs, such as CDMA2000, WCDMA, etc. CDMA2000 includes the IS-95, IS-2000, and / or IS-856 standards. A TDMA network may implement GSM, Digital Advanced Mobile Phone Systems (D-AMPS), or some other RAT. OFDMA networks can utilize LTE, Advanced LTE, 5G NR, and more. 5G NR, LTE, Advanced LTE, GSM, and WCDMA are described in documents from 3GPP. Cdma2000® is described in documents from an organization called "3rd Generation Partnership Project X3" (3GPP2). 3GPP and 3GPP2 documents are publicly available. Wireless Local Area Networks (WLANs) can also be IEEE 802.11x networks, while Wireless Personal Area Networks (WPANs) can be Bluetooth networks, IEEE 802.15x, or some other type of network. The technologies described herein can also be used in any combination of WWANs, WLANs, and / or WPANs.
[0083] The computing device 605 may also include a sensor 640. The sensor 640 may include, but is not limited to, one or more inertial sensors and / or other sensors (e.g., accelerometers, gyroscopes, cameras, radar devices, lidar devices, magnetometers, altimeters, microphones, proximity sensors, light sensors, barometers, etc.), some of which may be used to obtain positioning-related measurements and / or other information.
[0084] Implementations of computing device 605 may also include a Global Navigation Satellite System (GNSS) receiver 680 capable of receiving signals 684 from one or more GNSS satellites using antenna 682 (which may be identical to antenna 632). Positioning based on GNSS signal measurements may be used to supplement and / or incorporate the techniques described herein. GNSS receiver 680 may use conventional techniques to extract the positioning of computing device 605 from GNSS satellites of GNSS systems such as Global Positioning System (GPS), Galileo, GLONASS, Quasi-Zenith Satellite System (QZSS) over Japan, Indian Regional Navigation Satellite System (IRNSS) over India, BeiDou Navigation Satellite System (BDS) over China, etc. In addition, the GNSS receiver 680 can be used with various augmentation systems, such as satellite-based augmentation systems (SBAS), which can be associated with or otherwise enabled to be used with one or more global and / or regional navigation satellite systems, such as the Wide Area Augmentation System (WAAS), the European Geostationary Navigation Coverage Service (EGNOS), the Multifunctional Satellite Augmentation System (MSAS), and the Geographic Augmentation Navigation System (GAGAN).
[0085] It can be pointed out that, although in Figure 6 The GNSS receiver 680 is illustrated as various components, but embodiments are not limited thereto. As used herein, the term "GNSS receiver" may include hardware and / or software components configured to acquire GNSS measurements (measurements from GNSS satellites). Thus, in some embodiments, the GNSS receiver may include a measurement engine executed (as software) by a processing unit within one or more processing units such as processing unit 610, DSP 620, and / or wireless communication interface 630 (e.g., in a modem). The GNSS receiver may also optionally include a positioning engine that can use GNSS measurements from the measurement engine to determine the GNSS receiver's location using an extended Kalman filter (EKF), weighted least squares (WLS), a hatch filter, or a particle filter, etc. The positioning engine may also be executed by one or more processing units such as processing unit 610 or DSP 620.
[0086] The computing device 605 may also include a memory 660 and / or communicate with that memory. The memory 660 may include, but is not limited to, local and / or network-accessible storage devices, disk drives, drive arrays, optical storage devices, solid-state storage devices such as random access memory (RAM) and / or read-only memory (ROM), which may be programmable, flash-updatable, etc. Such storage devices can be configured to implement any suitable data storage, including but not limited to various file systems, database structures, etc.
[0087] The memory 660 of the computing device 605 may also include software elements ( Figure 6 (Not shown in the text) These software elements include operating systems, device drivers, executable libraries, and / or other code, such as one or more applications, which may include computer programs provided by various embodiments, and / or may be designed to implement and / or configure methods and / or systems provided by other embodiments as described herein. By way of example only, one or more procedures described with respect to the methods discussed above may be implemented as code and / or instructions in memory 660, which may be executed by computing device 605 (and / or processing unit 610 or DSP 620 within computing device 605). In one aspect, such code and / or instructions may then be used to configure and / or adapt a general-purpose computer (or other device) to perform one or more operations according to the described methods.
[0088] It will be apparent to those skilled in the art that basic variations can be made to suit specific requirements. For example, custom hardware may be used, and / or specific elements may be implemented in hardware, software (including portable software such as applets), or both. Furthermore, connections to other computing devices, such as network input / output devices, may be employed.
[0089] Referring to the accompanying drawings, components that may include memory may include non-transitory machine-readable media. As used herein, the terms "machine-readable media" and "computer-readable media" refer to any storage medium that participates in providing data that enables a machine to operate in a particular manner. In the embodiments provided above, various machine-readable media may relate to providing instructions / code to a processing unit and / or other devices for execution. Additionally or alternatively, machine-readable media may be used to store and / or carry such instructions / code. In many specific embodiments, computer-readable media are physical and / or tangible storage media. Such media can take many forms, including but not limited to non-volatile and volatile media. Common forms of computer-readable media include, for example: magnetic and / or optical media, any other physical media with a hole pattern, RAM, programmable ROM (PROM), erasable PROM (EPROM), FLASH-EPROM, any other memory chip or memory cartridge, or any other medium from which a computer can read instructions and / or code.
[0090] The methods, systems, and apparatus discussed herein are examples. Various embodiments may omit, substitute, or add various processes or components as appropriate. For example, features described for some embodiments may be combined in various other embodiments. Different aspects and elements of embodiments may be combined in a similar manner. The various components in the accompanying drawings provided herein may be embodied in hardware and / or software. Furthermore, technology evolves, and therefore many elements are examples that do not limit the scope of this disclosure to those particular examples.
[0091] It has been proven convenient to sometimes refer to such signals as bits, information, values, elements, symbols, characters, variables, items, numbers, numerical symbols, etc., primarily for common use. However, it should be understood that all such terms or similar terms should be associated with appropriate physical quantities and are merely convenient labels. Unless otherwise specifically stated, it is as apparent from the above discussion that throughout this specification, discussions using terms such as “processing,” “calculating,” “determining,” “identifying,” “ascertaining,” “identifying,” “associating,” “measuring,” and “executing” refer to the actions or processes of a specific device such as a dedicated computer or similar dedicated electronic computing device. Therefore, in the context of this specification, a dedicated computer or similar dedicated electronic computing device is capable of manipulating or transforming signals, generally referred to as physical, electronic, electrical, or magnetic quantities in the memory, registers, or other information storage devices, transmitting devices, or display devices of the dedicated computer or similar dedicated electronic computing device.
[0092] As used herein, the terms “and” and “or” may include a variety of meanings, which are also contemplated, at least in part, depending on the context in which such terms are used. Generally, “or,” when used in relation to a list such as A, B, or C, is intended to mean A, B, and C (in the inclusive sense) and A, B, or C (in the exclusive sense). Furthermore, as used herein, the term “one or more” can be used to describe any feature, structure, or characteristic in the singular form, or to describe some combination of features, structures, or characteristics. However, it should be noted that this is merely an illustrative example, and the claimed subject matter is not limited to this example. Additionally, the term “at least one of…” when used in relation to a list such as A, B, or C can be interpreted as meaning any combination of A, B, and / or C, such as A, AB, AA, AAB, AABBCCC, etc.
[0093] Several implementations have been described, and various modifications, alternative constructions, and equivalents may be used without departing from the scope of this disclosure. For example, the above elements may be components of a larger system, where other rules may take precedence over the application of various implementations or otherwise modify the application of various implementations. Furthermore, multiple steps may be performed before, during, or after considering the above elements. Accordingly, the above description does not limit the scope of this disclosure.
[0094] Given this description, different implementations may include different combinations of features. Specific implementation examples are described in the following numbered clauses:
[0095] Clause 1: A method for solving a quadratic programming optimization problem, the method comprising: receiving, by one or more processors, a first quadratic optimization problem including an objective and a set of inequality constraints; obtaining, by the one or more processors, an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; identifying, by the one or more processors, a subset of the set of inequality constraints as valid constraints relative to the optimal solution; obtaining, by the one or more processors, an updated solution to the first quadratic optimization problem by solving a second quadratic optimization problem corresponding to the objective subject to the valid constraints; and determining, by the one or more processors, an accuracy and precision associated with the updated solution.
[0096] Clause 2: The method according to Clause 1, wherein the initial solution to the first quadratic optimization problem is obtained using the Goldfarb-Idnani algorithm, and wherein the initial solution and the effective constraints are identified based on the final solution pair generated by the Goldfarb-Idnani algorithm.
[0097] Clause 3: The method according to any one of Clauses 1 or 2, wherein the second quadratic optimization problem is an unconstrained quadratic optimization problem.
[0098] Clause 4: The method according to any one of Clauses 1 to 3, wherein obtaining the updated solution comprises using a series of matrix operations to determine the closed-form solution of the second quadratic optimization problem.
[0099] Clause 5: The method according to Clause 4, wherein determining the precision includes aggregating the uncertainties associated with each of the series of matrix operations in the order corresponding to the series of matrix operations.
[0100] Clause 6: The method according to Clause 5, wherein the uncertainty associated with a given matrix operation is based on the properties of one or more matrices associated with the given matrix operation.
[0101] Clause 7: The method according to any one of Clauses 5 or 6, wherein determining the accuracy and precision further comprises applying an error amplification factor to the aggregated uncertainty, wherein the error amplification factor is determined based on characteristics associated with the one or more processors.
[0102] Clause 8: The method according to any one of Clauses 1 to 7 further includes providing the updated solution and the accuracy and precision associated with the updated solution to the control system, wherein the control system is configured to make at least one decision based on the accuracy and precision associated with the updated solution.
[0103] Clause 9: The control system described in Clause 8 is associated with at least one of: 1) an autonomous transportation system; or 2) an unmanned aerial vehicle system.
[0104] Clause 10: The method according to Clause 9, wherein the updated solution corresponds to a measurement including at least one of the following: distance measurement; velocity measurement; acceleration measurement; jerk measurement; or any combination thereof, and wherein the accuracy and precision indicate the error limits on the measurement.
[0105] Clause 11: The method according to any one of Clauses 1 to 10, the method further comprising: performing variable change regularization on the first quadratic optimization problem before obtaining the initial solution; and reversing the variable change after obtaining the updated solution.
[0106] Clause 12: The method according to Clause 11, wherein the variable change regularization is performed in response to determining that the number of conditions associated with the matrix of the target exceeds a threshold.
[0107] Clause 13: An apparatus for solving a quadratic programming optimization problem, the apparatus comprising: one or more memories; and one or more processing units communicatively coupled to the one or more memories, the one or more processing units being configured to: receive a first quadratic optimization problem including an objective and a set of inequality constraints; obtain an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; identify a subset of the set of inequality constraints as valid constraints relative to the optimal solution; obtain an updated solution to the first quadratic optimization problem by solving a second quadratic optimization problem corresponding to the objective subject to the valid constraints; and determine the accuracy and precision associated with the updated solution.
[0108] Clause 14: The apparatus according to Clause 13, wherein the initial solution to the first quadratic optimization problem is obtained using the Goldfarb-Idnani algorithm, and wherein the initial solution and the effective constraints are identified based on the final solution pair generated by the Goldfarb-Idnani algorithm.
[0109] Clause 15: The device according to any one of Clauses 13 or 14, wherein the second quadratic optimization problem is an unconstrained quadratic optimization problem.
[0110] Clause 16: The device according to any one of Clauses 13 to 15, wherein obtaining the updated solution comprises using a series of matrix operations to determine a closed-form solution to the second quadratic optimization problem.
[0111] Clause 17: The device according to Clause 16, wherein determining the precision includes aggregating the uncertainty associated with each of the series of matrix operations in order corresponding to the sequence of matrix operations.
[0112] Clause 18: The device according to Clause 17, wherein the uncertainty associated with a given matrix operation is based on the properties of one or more matrices associated with the given matrix operation.
[0113] Clause 19: The device according to any one of Clauses 17 or 18, wherein determining the accuracy and precision further includes applying an error amplification factor to the aggregated uncertainty, wherein the error amplification factor is determined based on characteristics associated with the one or more processors.
[0114] Clause 20: The apparatus according to any one of Clauses 13 to 19, wherein the one or more processing units are further configured to provide the updated solution and the accuracy and precision associated with the updated solution to the control system, wherein the control system is configured to make at least one decision based on the accuracy and precision associated with the updated solution.
[0115] Clause 21: The device pursuant to Clause 20, wherein the control system is associated with at least one of: 1) an autonomous transportation system; or 2) an unmanned aerial vehicle system.
[0116] Clause 22: The device according to Clause 21, wherein the updated solution corresponds to a measurement including at least one of the following: distance measurement; velocity measurement; acceleration measurement; jerk measurement; or any combination thereof, and wherein the accuracy and precision indicate an error limit on the measurement.
[0117] Clause 23: An apparatus for solving a quadratic programming optimization problem, the apparatus comprising: components for receiving a first quadratic optimization problem including an objective and a set of inequality constraints; components for obtaining an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; components for identifying a subset of the set of inequality constraints as effective constraints relative to the optimal solution; components for obtaining an updated solution to the first quadratic optimization problem by solving a second quadratic optimization problem corresponding to the objective subject to the effective constraints; and components for determining the accuracy and precision associated with the updated solution.
[0118] Clause 24: The apparatus according to Clause 23, wherein the initial solution to the first quadratic optimization problem is obtained using the Goldfarb-Idnani algorithm, and wherein the initial solution and the effective constraints are identified based on the final solution pair generated by the Goldfarb-Idnani algorithm.
[0119] Clause 25: The device according to any one of Clauses 23 or 24, wherein the second quadratic optimization problem is an unconstrained quadratic optimization problem.
[0120] Clause 26: The apparatus according to any one of Clauses 23 to 25, wherein the component for obtaining the updated solution includes a component for determining a closed-form solution to the second quadratic optimization problem using a series of matrix operations.
[0121] Clause 27: The apparatus according to any one of Clauses 23 to 26, the method further includes components for providing the updated solution and the accuracy and precision associated with the updated solution to a control system, wherein the control system is configured to make at least one decision based on the accuracy and precision associated with the updated solution.
[0122] Clause 28: The device pursuant to Clause 27, wherein the control system is associated with at least one of: 1) an autonomous transportation system; or 2) an unmanned aerial vehicle system.
[0123] Clause 29: The device according to Clause 28, wherein the updated solution corresponds to a measurement including at least one of the following: distance measurement; velocity measurement; acceleration measurement; jerk measurement; or any combination thereof, and wherein the accuracy and precision indicate an error limit on the measurement.
[0124] Clause 30: A non-transitory computer-readable medium storing instructions for solving a quadratic programming optimization problem, the instructions comprising code for: receiving a first quadratic optimization problem comprising an objective and a set of inequality constraints; obtaining an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; identifying a subset of the set of inequality constraints as valid constraints relative to the optimal solution; obtaining an updated solution to the first quadratic optimization problem by solving a second quadratic optimization problem corresponding to the objective subject to the valid constraints; and determining an accuracy and precision associated with the updated solution.
[0125] Clause 31: A non-transitory computer-readable medium pursuant to Clause 30, wherein the initial solution to the first quadratic optimization problem is obtained using the Goldfarb-Idnani algorithm, and wherein the initial solution and the effective constraints are identified based on a pair of final solutions generated by the Goldfarb-Idnani algorithm.
[0126] Clause 32: A non-transitory computer-readable medium according to any one of Clauses 30 or 31, wherein the second quadratic optimization problem is an unconstrained quadratic optimization problem.
Claims
1. A method for solving a quadratic programming optimization problem, the method comprising: The first and second quadratic optimization problems, which include the objective and a set of inequality constraints, are received by one or more processors. The one or more processors obtain an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; A subset of the set of inequality constraints identified by the one or more processors as valid constraints relative to the optimal solution; The one or more processors obtain an updated solution to the first quadratic optimization problem by solving and optimizing a second quadratic optimization problem corresponding to the objective subject to the effective constraints. as well as The accuracy and precision associated with the updated solution are determined by the one or more processors.
2. The method of claim 1, wherein the initial solution to the first quadratic optimization problem is obtained using the Goldfarb-Idnani algorithm, and wherein the initial solution and the effective constraints are identified based on the final solution pair generated by the Goldfarb-Idnani algorithm.
3. The method according to claim 1, wherein the second quadratic optimization problem is an unconstrained quadratic optimization problem.
4. The method of claim 1, wherein obtaining the updated solution comprises using a series of matrix operations to determine a closed-form solution to the second quadratic optimization problem.
5. The method of claim 4, wherein determining the precision includes aggregating the uncertainties associated with each of the matrix operations in the series of matrix operations in order corresponding to the sequence of matrix operations.
6. The method of claim 5, wherein the uncertainty associated with a given matrix operation is based on the properties of one or more matrices associated with the given matrix operation.
7. The method of claim 5, wherein determining the accuracy and precision further comprises applying an error amplification factor to the aggregated uncertainty, wherein the error amplification factor is determined based on characteristics associated with the one or more processors.
8. The method of claim 1, further comprising providing the updated solution and the accuracy and precision associated with the updated solution to a control system, wherein the control system is configured to make at least one decision based on the accuracy and precision associated with the updated solution.
9. The method of claim 8, wherein the control system is associated with at least one of: 1) an autonomous transportation system; or 2) an unmanned aerial vehicle system.
10. The method of claim 9, wherein the updated solution corresponds to a measurement including at least one of: distance measurement; velocity measurement; acceleration measurement; jerk measurement; or any combination thereof, and wherein the accuracy and precision indicate error limits on the measurement.
11. The method according to claim 1, further comprising: Before obtaining the initial solution, perform variable change regularization on the first quadratic optimization problem; as well as After obtaining the updated solution, the variable changes are reversed.
12. The method of claim 11, wherein the variable change regularization is performed in response to determining that the number of conditions associated with the matrix of the target exceeds a threshold.
13. An apparatus for solving a quadratic programming optimization problem, the apparatus comprising: One or more memory units; and One or more processing units, the one or more processing units being communicatively coupled to the one or more memories, the one or more processing units being configured to: Accept first and second quadratic optimization problems that include an objective and a set of inequality constraints; Obtain an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; Identify a subset of the set of inequality constraints that are valid constraints relative to the optimal solution; The updated solution to the first quadratic optimization problem is obtained by solving and optimizing the second quadratic optimization problem corresponding to the objective subject to the effective constraints; as well as Determine the accuracy and precision associated with the updated solution.
14. The apparatus of claim 13, wherein the initial solution to the first quadratic optimization problem is obtained using the Goldfarb-Idnani algorithm, and wherein the initial solution and the effective constraints are identified based on the final solution pair generated by the Goldfarb-Idnani algorithm.
15. The device according to claim 13, wherein the second quadratic optimization problem is an unconstrained quadratic optimization problem.
16. The apparatus of claim 13, wherein obtaining the updated solution comprises using a series of matrix operations to determine a closed-form solution to the second quadratic optimization problem.
17. The apparatus of claim 13, wherein the one or more processing units are further configured to provide the updated solution and the accuracy and precision associated with the updated solution to the control system, wherein the control system is configured to make at least one decision based on the accuracy and precision associated with the updated solution.
18. The device of claim 17, wherein the control system is associated with at least one of: 1) an autonomous transportation system; or 2) an unmanned aerial vehicle system.
19. The device of claim 18, wherein the updated solution corresponds to a measurement including at least one of: distance measurement; velocity measurement; acceleration measurement; jerk measurement; or any combination thereof, and wherein the accuracy and precision indicate error limits on the measurement.
20. An apparatus for solving a quadratic programming optimization problem, the apparatus comprising: The component used to receive first and second quadratic optimization problems that include an objective and a set of inequality constraints; A component for obtaining an initial solution to the first quadratic optimization problem subject to the set of inequality constraints; A component used to identify a subset of the set of inequality constraints that are valid constraints relative to the optimal solution; A component for obtaining an updated solution to the first quadratic optimization problem by solving and optimizing a second quadratic optimization problem corresponding to the objective subject to the effective constraints; and Components used to determine the accuracy and precision associated with the updated solution.