Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Log inSign up
Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Blog
Job Board
Q3AS

© 2026 Aqora Quantum S.A.S.

TermsPrivacyLegal Notice

Intelligent medical expert system: addressing philosophical and logistical deficiencies of the rule-based medical expert system

Christopher A. Hughes

Published Jan 1, 1990• 1 citation
OpenAlex

Abstract

Quadratic programming is a fundamental problem in constrained optimization. One of the simplest quadratic programs has only simple bounds. In this thesis, we present several algorithms for the numerical solution of quadratic programs with simple bounds along with numerical results. All of our algorithms are designed for or applicable to the case where the Hessian matrix is large and sparse. Direct active set methods traditionally have not been used for large sparse problems because their storage requirements and data structure manipulations were thought to be prohibitive and because typical dense active set methods require a large number of iterations if the initial active set is very different from that at the solution. We show how a standard direct active set method for solving definite and indefinite quadratic programs with simple bounds can be efficiently implemented for large sparse problems. We show that all of the necessary factorizations can be carried out in a static data structure that can be set up before the numeric computations begin and requires only as much space as one Cholesky factorization of the Hessian of the quadratic. To allow us to add and delete several constraints from the active set at each iteration, we use projection techniques and a new search direction for the indefinite case. We also propose a heuristic method for finding a starting point that reduces the number of iterations required in practice. Iterative methods are attractive for large sparse quadratic programs because they require less data structure manipulation and hence are considerably easier to implement. The numerical results available for existing iterative methods indicate that they have linear rates of convergence. To avoid difficulties we experienced because of the feasibility requirement of interior point methods, we show how to reformulate a convex quadratic program with simple bounds as an unconstrained piecewise quadratic function with the same optimality conditions. We present an iterative method for solving this new problem that is superlinearly convergent and is suitable for sparse problems.

Related papers

Résolution de programmes quadratiques en nombres entiers

Amélie Lambert

Let $(QP)$ be an integer quadratic program that consists in minimizing a quadratic function subject to linear constraints. A such problem belongs to the class of $\mathcal{NP}\textrm{-Hard}$ problems. Standard solvers that use a Branch and Bound algorithm can efficiently solve $(QP)$ in the specific case where its objective function is convex. Thus, to solve $(QP)$, we choose to reformulate it into an equivalent problem with a convex objective function. Two reformulations are possible: either we reformulate $(QP)$ into a linear program, or we reformulate it into a convex quadratic program. \par In the first part of this dissertation, we present several linearizations of $(QP)$, i.e. reformulations into an equivalent program with a linear objective function. Many linearization methods for the quadratic binary programs are known. A natural approach when considering $(QP)$ is therefore to reformulate it into a quadratic binary program. This can be done by the binary decomposition of each integer variable and then the linearization of each new product of two binary variables. However, this method, that we denote by \texttt{BBL (Binary Binary Linearization)}, leads to a linear program with a large number of variables and constraints. We then present a new approach, \texttt{BIL (Binary Integer Linearization)}, that consists in reformulating $(QP)$ into a particular quadratic integer program where each quadratic term is the product of an integer variable by a binary variable. As in the \texttt{BBL} approach, the binary variables come from the binary decomposition of the initial integer variables. Then, we linearize the obtained program by replacing each quadratic term by a new real variable and a set of inequalities. As the number of quadratic terms is lower than in the \texttt{BBL} approach, the number of additional variables is reduced. Hence, the obtained integer linear program is significantly smaller in the \texttt{BIL} approach. Moreover, contrary to what one might think, the \texttt{BIL} approach provides a better bound obtained by continuous relaxation than the \texttt{BBL} approach. Each reformulation leads to an integer linear program that is equivalent to $(QP)$ and that we improve by adding valid inequalities. \par In a second part, we present several quadratic convex reformulations of $(QP)$, i.e. we reformulate $(QP)$ into an equivalent program, with a quadratic convex objective function. We first introduce a simple approach to convexify $(QP)$ that consists in expressing linearly the squares of integer variables using their unary decompositions, and then to convexify with the smallest eigenvalue of the Hessian matrix of $(QP)$. We call this approach \texttt{NC (Naive Convexification)}. Then, we introduce a new convex reformulation scheme that perturbs the objective function of $(QP)$ with the linear expression of the products of integer variables, and the equality constraints of $(QP)$. Then, we show that we can compute, within this scheme, an optimal reformulation of $(QP)$ in terms of bound obtained by continuous relaxation : the \texttt{IQCR (Integer Quadratic Convex Reformulation)} approach. This reformulation is based on the optimal dual solution of a semi-definite relaxation of $(QP)$. Moreover, we show that the method \texttt{IQCR} is easily adaptable to mixed-integer programming. This adaptation, that we call \texttt{IQCRs}, also allows us to integrate the inequality constraints of $(QP)$ into the perturbation of the objective function of our convex reformulation scheme. Then, we present an interesting restriction of the method \texttt{IQCR}, called \texttt{CQCR (Compact Quadratic Convex Reformulation)}. The difference between this last approach and \texttt{IQCR} is that \texttt{CQCR} only uses the linear expression of the integer variable squares to perturb the objective function, while \texttt{IQCR} uses all the products. The interest is that \texttt{CQCR} produces a reformulated problem with a reduced size in comparison with the \texttt{IQCR} approach, what could be profitable experimentally. Finally, we apply these $3$ methods \texttt{NC}, \texttt{CQCR} and \texttt{IQCR} to binary quadratic programming. We show that \texttt{NC} and \texttt{CQCR} are equivalent to existing binary convex reformulations. An interesting result is that \texttt{IQCR} is an improvement of existing convexifications for binary quadratic programming.\par In a third part, we design a specific Branch and Bound algorithm based on a projection property of the \texttt{IQCR} approach.\par Finally, we compare the four obtained linearizations and the three obtained quadratic convex reformulations from the computational point of view. For integer programming, computational experiences are carried out with two classes of instances of $(QP)$, the first having one equality constraint, and the other having one inequality constraint. The results show that most of the considered instances with up to $40$ variables can be solved in one hour of CPU time by the \texttt{IQCR} and \texttt{CQCR} approaches. We then test \texttt{IQCR} on binary quadratic programming. The results corroborate that our approach \texttt{IQCR} improves existing convexifications.

•Nov 26, 2009•1 citation

Globally solving Non-Convex Quadratic Programs via Linear Integer Programming techniques

Wei Xia, Juan C. Vera, Luis F. Zuluaga

Quadratic programming (QP) is a well-studied fundamental NP-hard optimization problem which optimizes a quadratic objective over a set of linear constraints. In this paper, we reformulate QPs as a mixed-integer linear problem (MILP). This is done via the reformulation of QP as a linear complementary problem, and the use of binary variables and big-M constraints, to model the complementary constraints. To obtain such reformulation, we show how to impose bounds on the dual variables without eliminating all the (globally) optimal primal solutions; using some fundamental results on the solution of perturbed linear systems. Reformulating non-convex QPs as MILPs provides an advantageous way to obtain global solutions as it allows the use of current state-of-the-art MILP solvers. To illustrate this, we compare the performance of our solution approach, labeled quadprogIP, with the current benchmark global QP solver quadprogBB, as well as with BARON, one of the leading non-linear programming (NLP) solvers, and CPLEX's non-convex QP solver, on a large variety of QP test instances. In practice, quadprogIP is shown to typically outperform by orders of magnitude quadprogBB, BARON, and CPLEX on standard QPs. For general QPs, quadprogIP outperforms quadprogBB, outperforms BARON in most instances, while CPLEX performs the best on these instances. For box-constrained QPs, quadprogIP has a comparable performance to quadprogBB and BARON in small- to medium-scale instances, but is outperformed by these solvers on large-scale instances; while CPLEX performs the best on box-constrained QP instances. Also, unlike quadprogBB, the solution approach proposed here is able to solve QP instances whose dual feasible set is unbounded. The MATLAB code, called quadprogIP, and the instances used to perform these numerical experiments are publicly available at https://github.com/xiawei918/quadprogIP.

arXiv:1511.02423•Nov 8, 2015•9 citations

Algorithms for unconstrained quadratic 0-1 programming and related problems on contemporary computer architectures

Gregory P. Rodgers

Unconstrained quadratic zero-one programming belongs to the class of NP-complete problems. It is therefore considered computationally intractable. Much research has been done in trying to find subsets of unconstrained quadratic 0-1 programs that can be solved in polynomial time. However, for the general problem, nonpolynomial methods must be used, resulting in limitations on the size of problems that can be solved. Branch and bound is a computational method that implicitly enumerates all possible solutions. Research on branch and bound algorithms is vast. Due to the computational complexity of the algorithm, efficient implementations are necessary in order to solve even moderate size problems. It is natural to expect that any implementation of a branch and bound algorithm may consume large amounts of computer resources due to the nature of the algorithm. Therefore, it is desirable to exploit contemporary high performance computers. In this thesis, efficiencies in the implementation of new 0-1 branch and bound algorithms on contemporary computer architectures are studied. Though not primarily designed for combinatorial problems, it is shown that many contemporary architectures, including distributed and shared memory multiprocessors, are capable of increasing the scope of solvable discrete programming problems. An application of unconstrained quadratic 0-1 programming is the maximum clique problem. It is shown that the variable selection rule in the proposed algorithm is equivalent to a nongreedy vertex selection rule for the maximum clique problem. This rule enhances the use of preprocessing rules that are applied to all branch and bound subproblems. By using this rule and by exploiting efficient data structures, maximum clique problems are solved for graphs of up to 1,000 vertices and 150,000 edges.

•Jan 3, 1990•4 citations

A Feasible Active Set Method with Reoptimization for Convex Quadratic Mixed-Integer Programming

Christoph Buchheim, Marianna De Santis, Stefano Lucidi +2 more

We propose a feasible active set method for convex quadratic programming problems with nonnegativity constraints. This method is specifically designed to be embedded into a branch-and-bound algorithm for convex quadratic mixed- integer programming problems. The branch-and-bound algorithm generalizes the approach for unconstrained convex quadratic integer programming proposed by Buchheim, Caprara, and Lodi [Math. Program., 135 (2012), pp. 369--395] to the presence of linear constraints. The main feature of the latter approach consists of a sophisticated preprocessing phase, leading to a fast enumeration of the branch-and-bound nodes. Moreover, the feasible active set method takes advantage of this preprocessing phase and is well suited for reoptimization. Experimental results for randomly generated instances show that the new approach significantly outperforms the MIQP solver of \tt CPLEX 12.6 for instances with a small number of constraints.

arXiv:1512.02369•SIAM Journal on Optimization•Jan 1, 2016•21 citations

Globally Solving Nonconvex Quadratic Programs via Linear Integer Programming Techniques

Wei Xia, Juan C. Vera, Luis F. Zuluaga

We reformulate a (indefinite) quadratic program (QP) as a mixed-integer linear programming (MILP) problem by first reformulating a QP as a linear complementary problem, and then using binary variables and big-M constraints to model its complementary constraints. To obtain such reformulation, we use fundamental results on the solution of perturbed linear systems to impose bounds on the QP’s dual variables without eliminating any of its (globally) optimal primal solutions. Reformulating a nonconvex QP as a MILP problem allows the use of current state-of-the-art MILP solvers to find its global optimal solution. To illustrate this, we compare the performance of this MILP-based solution approach, labeled quadprogIP, with quadprogBB, BARON, and CPLEX. In practice, quadprogIP is shown to typically outperform by orders of magnitude quadprogBB, BARON, and CPLEX on standard QPs. Also, unlike quadprogBB, quadprogIP is able to solve QP instances in which the dual feasible set is unbounded. The MATLAB code quadprogIP and the instances used to perform the reported numerical experiments are publicly available at https://github.com/xiawei918/quadprogIP .

INFORMS journal on computing•Jul 19, 2019•47 citations

Enhancing convexification techniques for solving nonconvex quadratic programming problems

Xiaofei Qi

At the intersection of combinatorial and nonlinear optimization, quadratic programming (QP) plays an important role in practice and optimization theory.With wide-spread real-world applications including, but not limited to, engineering design, game theory, and economics, quadratic programming has many valuable contributions and has attracted considerable interest over the past few decades.As a more general formulation, quadratically constrained quadratic programming (QCQP) problems arise naturally from a lot of applications such as facility location, production planning, economic equilibria and Euclidean distance geometry, etc.Most global optimization approaches for nonconvex QCQPs are based on constructing a convex or linear relaxation of the problem, and embedding it within an exhaustive search mechanism, where a lower bound is calculated as the value of the objective function of this relaxation (for a minimization problem) at each iteration of the search tree.The two principle elements affecting the overall effectiveness of such exhaustive search methods are the tightness of the underlying relaxation and the efficiency of calculating the lower bound.Besides, the performance of a branch-and-bound algorithm also relies on the procedure used to select a branching node and branching variable, which leads to good quality feasible solutions or equivalently an upper bound.vii LIST OF TABLES 5.5 Computational results of 0-1 QPs with n = 40 . . . . . . . . . . . .110 5.6 Computational results of 0-1 QPs with n = 50 . . . . . . . . . . . .

•Jan 1, 2017•0 citations
Quadratic programming is a fundamental problem in constrained optimization. One of the simplest quadratic programs has only simple bounds. In this thesis, we present several algorithms for the numerical solution of quadratic programs with simple bounds along with numerical results. All of our algorithms are designed for or applicable to the case where the Hessian matrix is large and sparse.
Direct active set methods traditionally have not been used for large sparse problems because their storage requirements and data structure manipulations were thought to be prohibitive and because typical dense active set methods require a large number of iterations if the initial active set is very different from that at the solution. We show how a standard direct active set method for solving definite and indefinite quadratic programs with simple bounds can be efficiently implemented for large sparse problems. We show that all of the necessary factorizations can be carried out in a static data structure that can be set up before the numeric computations begin and requires only as much space as one Cholesky factorization of the Hessian of the quadratic. To allow us to add and delete several constraints from the active set at each iteration, we use projection techniques and a new search direction for the indefinite case. We also propose a heuristic method for finding a starting point that reduces the number of iterations required in practice.
Iterative methods are attractive for large sparse quadratic programs because they require less data structure manipulation and hence are considerably easier to implement. The numerical results available for existing iterative methods indicate that they have linear rates of convergence. To avoid difficulties we experienced because of the feasibility requirement of interior point methods, we show how to reformulate a convex quadratic program with simple bounds as an unconstrained piecewise quadratic function with the same optimality conditions. We present an iterative method for solving this new problem that is superlinearly convergent and is suitable for sparse problems.
Let (QP)(QP)(QP) be an integer quadratic program that consists in minimizing a quadratic function subject to linear constraints. A such problem belongs to the class of NP-Hard\mathcal{NP}\textrm{-Hard}NP-Hard problems. Standard solvers that use a Branch and Bound algorithm can efficiently solve (QP)(QP)(QP) in the specific case where its objective function is convex. Thus, to solve (QP)(QP)(QP), we choose to reformulate it into an equivalent problem with a convex objective function. Two reformulations are possible: either we reformulate (QP)(QP)(QP) into a linear program, or we reformulate it into a convex quadratic program. \par In the first part of this dissertation, we present several linearizations of (QP)(QP)(QP), i.e. reformulations into an equivalent program with a linear objective function. Many linearization methods for the quadratic binary programs are known. A natural approach when considering (QP)(QP)(QP) is therefore to reformulate it into a quadratic binary program. This can be done by the binary decomposition of each integer variable and then the linearization of each new product of two binary variables. However, this method, that we denote by \texttt{BBL (Binary Binary Linearization)}, leads to a linear program with a large number of variables and constraints. We then present a new approach, \texttt{BIL (Binary Integer Linearization)}, that consists in reformulating (QP)(QP)(QP) into a particular quadratic integer program where each quadratic term is the product of an integer variable by a binary variable. As in the \texttt{BBL} approach, the binary variables come from the binary decomposition of the initial integer variables. Then, we linearize the obtained program by replacing each quadratic term by a new real variable and a set of inequalities. As the number of quadratic terms is lower than in the \texttt{BBL} approach, the number of additional variables is reduced. Hence, the obtained integer linear program is significantly smaller in the \texttt{BIL} approach. Moreover, contrary to what one might think, the \texttt{BIL} approach provides a better bound obtained by continuous relaxation than the \texttt{BBL} approach. Each reformulation leads to an integer linear program that is equivalent to (QP)(QP)(QP) and that we improve by adding valid inequalities. \par In a second part, we present several quadratic convex reformulations of (QP)(QP)(QP), i.e. we reformulate (QP)(QP)(QP) into an equivalent program, with a quadratic convex objective function. We first introduce a simple approach to convexify (QP)(QP)(QP) that consists in expressing linearly the squares of integer variables using their unary decompositions, and then to convexify with the smallest eigenvalue of the Hessian matrix of (QP)(QP)(QP). We call this approach \texttt{NC (Naive Convexification)}. Then, we introduce a new convex reformulation scheme that perturbs the objective function of (QP)(QP)(QP) with the linear expression of the products of integer variables, and the equality constraints of (QP)(QP)(QP). Then, we show that we can compute, within this scheme, an optimal reformulation of (QP)(QP)(QP) in terms of bound obtained by continuous relaxation : the \texttt{IQCR (Integer Quadratic Convex Reformulation)} approach. This reformulation is based on the optimal dual solution of a semi-definite relaxation of (QP)(QP)(QP). Moreover, we show that the method \texttt{IQCR} is easily adaptable to mixed-integer programming. This adaptation, that we call \texttt{IQCRs}, also allows us to integrate the inequality constraints of (QP)(QP)(QP) into the perturbation of the objective function of our convex reformulation scheme. Then, we present an interesting restriction of the method \texttt{IQCR}, called \texttt{CQCR (Compact Quadratic Convex Reformulation)}. The difference between this last approach and \texttt{IQCR} is that \texttt{CQCR} only uses the linear expression of the integer variable squares to perturb the objective function, while \texttt{IQCR} uses all the products. The interest is that \texttt{CQCR} produces a reformulated problem with a reduced size in comparison with the \texttt{IQCR} approach, what could be profitable experimentally. Finally, we apply these 333 methods \texttt{NC}, \texttt{CQCR} and \texttt{IQCR} to binary quadratic programming. We show that \texttt{NC} and \texttt{CQCR} are equivalent to existing binary convex reformulations. An interesting result is that \texttt{IQCR} is an improvement of existing convexifications for binary quadratic programming.\par In a third part, we design a specific Branch and Bound algorithm based on a projection property of the \texttt{IQCR} approach.\par Finally, we compare the four obtained linearizations and the three obtained quadratic convex reformulations from the computational point of view. For integer programming, computational experiences are carried out with two classes of instances of (QP)(QP)(QP), the first having one equality constraint, and the other having one inequality constraint. The results show that most of the considered instances with up to 404040 variables can be solved in one hour of CPU time by the \texttt{IQCR} and \texttt{CQCR} approaches. We then test \texttt{IQCR} on binary quadratic programming. The results corroborate that our approach \texttt{IQCR} improves existing convexifications.
Quadratic programming (QP) is a well-studied fundamental NP-hard optimization problem which optimizes a quadratic objective over a set of linear constraints. In this paper, we reformulate QPs as a mixed-integer linear problem (MILP). This is done via the reformulation of QP as a linear complementary problem, and the use of binary variables and big-M constraints, to model the complementary constraints. To obtain such reformulation, we show how to impose bounds on the dual variables without eliminating all the (globally) optimal primal solutions; using some fundamental results on the solution of perturbed linear systems. Reformulating non-convex QPs as MILPs provides an advantageous way to obtain global solutions as it allows the use of current state-of-the-art MILP solvers. To illustrate this, we compare the performance of our solution approach, labeled quadprogIP, with the current benchmark global QP solver quadprogBB, as well as with BARON, one of the leading non-linear programming (NLP) solvers, and CPLEX's non-convex QP solver, on a large variety of QP test instances. In practice, quadprogIP is shown to typically outperform by orders of magnitude quadprogBB, BARON, and CPLEX on standard QPs. For general QPs, quadprogIP outperforms quadprogBB, outperforms BARON in most instances, while CPLEX performs the best on these instances. For box-constrained QPs, quadprogIP has a comparable performance to quadprogBB and BARON in small- to medium-scale instances, but is outperformed by these solvers on large-scale instances; while CPLEX performs the best on box-constrained QP instances. Also, unlike quadprogBB, the solution approach proposed here is able to solve QP instances whose dual feasible set is unbounded. The MATLAB code, called quadprogIP, and the instances used to perform these numerical experiments are publicly available at https://github.com/xiawei918/quadprogIP.
Unconstrained quadratic zero-one programming belongs to the class of NP-complete problems. It is therefore considered computationally intractable. Much research has been done in trying to find subsets of unconstrained quadratic 0-1 programs that can be solved in polynomial time. However, for the general problem, nonpolynomial methods must be used, resulting in limitations on the size of problems that can be solved. Branch and bound is a computational method that implicitly enumerates all possible solutions. Research on branch and bound algorithms is vast. Due to the computational complexity of the algorithm, efficient implementations are necessary in order to solve even moderate size problems. It is natural to expect that any implementation of a branch and bound algorithm may consume large amounts of computer resources due to the nature of the algorithm. Therefore, it is desirable to exploit contemporary high performance computers. In this thesis, efficiencies in the implementation of new 0-1 branch and bound algorithms on contemporary computer architectures are studied. Though not primarily designed for combinatorial problems, it is shown that many contemporary architectures, including distributed and shared memory multiprocessors, are capable of increasing the scope of solvable discrete programming problems. An application of unconstrained quadratic 0-1 programming is the maximum clique problem. It is shown that the variable selection rule in the proposed algorithm is equivalent to a nongreedy vertex selection rule for the maximum clique problem. This rule enhances the use of preprocessing rules that are applied to all branch and bound subproblems. By using this rule and by exploiting efficient data structures, maximum clique problems are solved for graphs of up to 1,000 vertices and 150,000 edges.
We propose a feasible active set method for convex quadratic programming problems with nonnegativity constraints. This method is specifically designed to be embedded into a branch-and-bound algorithm for convex quadratic mixed- integer programming problems. The branch-and-bound algorithm generalizes the approach for unconstrained convex quadratic integer programming proposed by Buchheim, Caprara, and Lodi [Math. Program., 135 (2012), pp. 369--395] to the presence of linear constraints. The main feature of the latter approach consists of a sophisticated preprocessing phase, leading to a fast enumeration of the branch-and-bound nodes. Moreover, the feasible active set method takes advantage of this preprocessing phase and is well suited for reoptimization. Experimental results for randomly generated instances show that the new approach significantly outperforms the MIQP solver of \tt CPLEX 12.6 for instances with a small number of constraints.
We reformulate a (indefinite) quadratic program (QP) as a mixed-integer linear programming (MILP) problem by first reformulating a QP as a linear complementary problem, and then using binary variables and big-M constraints to model its complementary constraints. To obtain such reformulation, we use fundamental results on the solution of perturbed linear systems to impose bounds on the QP’s dual variables without eliminating any of its (globally) optimal primal solutions. Reformulating a nonconvex QP as a MILP problem allows the use of current state-of-the-art MILP solvers to find its global optimal solution. To illustrate this, we compare the performance of this MILP-based solution approach, labeled quadprogIP, with quadprogBB, BARON, and CPLEX. In practice, quadprogIP is shown to typically outperform by orders of magnitude quadprogBB, BARON, and CPLEX on standard QPs. Also, unlike quadprogBB, quadprogIP is able to solve QP instances in which the dual feasible set is unbounded. The MATLAB code quadprogIP and the instances used to perform the reported numerical experiments are publicly available at https://github.com/xiawei918/quadprogIP .
At the intersection of combinatorial and nonlinear optimization, quadratic programming (QP) plays an important role in practice and optimization theory.With wide-spread real-world applications including, but not limited to, engineering design, game theory, and economics, quadratic programming has many valuable contributions and has attracted considerable interest over the past few decades.As a more general formulation, quadratically constrained quadratic programming (QCQP) problems arise naturally from a lot of applications such as facility location, production planning, economic equilibria and Euclidean distance geometry, etc.Most global optimization approaches for nonconvex QCQPs are based on constructing a convex or linear relaxation of the problem, and embedding it within an exhaustive search mechanism, where a lower bound is calculated as the value of the objective function of this relaxation (for a minimization problem) at each iteration of the search tree.The two principle elements affecting the overall effectiveness of such exhaustive search methods are the tightness of the underlying relaxation and the efficiency of calculating the lower bound.Besides, the performance of a branch-and-bound algorithm also relies on the procedure used to select a branching node and branching variable, which leads to good quality feasible solutions or equivalently an upper bound.vii LIST OF TABLES 5.5 Computational results of 0-1 QPs with n = 40 . . . . . . . . . . . .110 5.6 Computational results of 0-1 QPs with n = 50 . . . . . . . . . . . .