Example #1
0
        private void SubmitButtonClick(object sender, RoutedEventArgs e)
        {
            LPParser parser = new LPParser();

            if (parser.SetObjectiveFunction(ObjectiveFunctionEntry.Text))
            {
                bool constraintsValid = true;
                foreach (string constraint in ConstraintEntry.Text.Split('\n'))
                {
                    constraintsValid &= parser.AddConstraint(constraint);
                }

                if (constraintsValid)
                {
                    LPSolution solution = new Simplex(parser.LinearProgram).Solve();
                    ResultsLabel.Content = $"Final Tableau:\n{ solution.FinalTableau.ToString() }\n\nResults:\n{ string.Join(", ", solution.Results.ToList()) }\nMaximum = { solution.Maximum }";
                }
                else
                {
                    ResultsLabel.Content = "Syntax error in constraint.";
                }
            }
            else
            {
                ResultsLabel.Content = "Syntax error in objective function.";
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            LinearProgram[] linearProgrammes = new LinearProgram[6];

            LPParser parser = new LPParser();

            parser.SetObjectiveFunction("8x + 10y + 7z");
            parser.AddConstraint("x + 3y + 2z < 10");
            parser.AddConstraint("x + 5y + z < 8");
            linearProgrammes[0] = parser.LinearProgram;

            parser = new LPParser();
            parser.SetObjectiveFunction("x + 2y - z");
            parser.AddConstraint("2x + y + z < 14");
            parser.AddConstraint("4x + 2y + 3z < 28");
            parser.AddConstraint("2x + 5y + 5z < 30");
            linearProgrammes[1] = parser.LinearProgram;

            parser = new LPParser();
            parser.SetObjectiveFunction("3x + 4y");
            parser.AddConstraint("x + y < 4");
            parser.AddConstraint("2x + y < 5");
            linearProgrammes[2] = parser.LinearProgram;

            parser = new LPParser();
            parser.SetObjectiveFunction("-2x + y");
            parser.AddConstraint("x + 2y < 6");
            parser.AddConstraint("3x + 2y < 12");
            linearProgrammes[3] = parser.LinearProgram;

            parser = new LPParser();
            parser.SetObjectiveFunction("2x + 3y");
            parser.AddConstraint("x + y < 2000");
            parser.AddConstraint("8x + 14y < 20000");
            linearProgrammes[4] = parser.LinearProgram;

            parser = new LPParser();
            parser.SetObjectiveFunction("x + 0.8y");
            parser.AddConstraint("x + y < 1000");
            parser.AddConstraint("2x + y < 1500");
            parser.AddConstraint("3x + 2y < 2400");
            linearProgrammes[5] = parser.LinearProgram;

            for (int i = 0; i < linearProgrammes.Length; i++)
            {
                Console.WriteLine("----------------------------------");
                Console.WriteLine($"LP { i + 1 }");
                linearProgrammes[i].Output();
                Console.WriteLine();
                Console.WriteLine("Solution:");
                new Simplex(linearProgrammes[i]).Solve().Output();
            }
            Console.WriteLine("----------------------------------");
            Console.ReadKey();
        }