Esempio n. 1
0
        public string GetReport()
        {
            eqCount = Xb.M;
            string s = GetSimplexTablePart();

            try
            {
                s += "<P>Значение целевой функции ";
                s += "F = " + GetFuncValue().ToString() + "</P>";

                s += "<P>Базисное решение";
                s += GetBasisDecision() + "</P>";

                s += "<P>Базисные переменные: ";
                for (int i = 0; i < eqCount; i++)
                {
                    s += "x<SUB>" + basInd[i].ToString() + "</SUB> ";
                }
                s += "</P>";

                s += "<P>Матрица C<SUB>b</SUB>";
                s += Cb.ToHtml() + "</P>";

                s += "<P>Матрица B<SUP>-1</SUP>";
                s += Binv.ToHtml() + "</P>";

                s += "<P>Матрица γ";
                s += gamma.ToHtml() + "</P>";

                s += "<P>Матрица разностей z<SUB>i</SUB> - c<SUB>i</SUB>";
                s += zc.ToHtml() + "</P>";

                s += "<P>Вектор базисных решений X<SUB>b</SUB>";
                s += Xb.ToHtml() + "</P>";

                if (isDecisionLegal)
                {
                    s += "<P>Базисное решение является допустимым</P>";
                }
                else
                {
                    s += "<P>Базисное решение является недопустимым</P>";
                }

                if (basIndex < 0)
                {
                    throw new Exception();
                }
                s += "<P>Выводим из базиса переменную x<SUB>" + basIndex.ToString() + "</SUB></P>";

                s += "<P>Матрица α";
                s += alpha.ToHtml() + "</P>";

                int eqNum = eqIndex + 1;
                s += "<P>Минимальное отношение θ = " + theta.ToString() + "</P>";
                s += "<P>Выводим из базиса переменную x<SUB>" + oldIndex.ToString()
                     + "</SUB> из уравнения номер " + eqNum.ToString() + "</P>";

                s += "<P>Ведущий элемент α<SUB>r</SUB> = " + alphar.ToString() + "</P>";

                s += "<P>Матрица ξ";
                s += xi.ToHtml() + "</P>";

                s += "<P>Матрица B<SUP>-1</SUP><SUB>next</SUB>";
                s += BinvNext.ToHtml() + "</P>";
            }
            catch { }
            return(s);
        }
Esempio n. 2
0
        public string GetReport()
        {
            eqCount = Xb.M;
            string s = GetSimplexTablePart();

            try
            {
                s += "<P>Значение целевой функции ";
                s += "F = " + GetFuncValue().ToString() + "</P>";

                s += "<P>ВСПОМОГАТЕЛЬНЫЕ ПЕРЕМЕННЫЕ</P>";
                s += "<P>Базисное решение" + GetBasisDecision() + "</P>";

                s += "<P>Базисные переменные: ";
                for (int i = 0; i < eqCount; i++)
                {
                    s += "y<SUB>" + basInd[i].ToString() + "</SUB> ";
                }
                s += "</P>";

                s += "<P>ИСХОДНЫЕ ПЕРЕМЕННЫЕ</P>";
                s += "<P>Текущие значения исходных переменных:</P>";
                int varCountMinOne = varCount - 1;
                for (int i = 0; i < varCount - 1; i++)
                {
                    s += "<P>x<SUB>" + i.ToString() + "</SUB>" +
                         " = y<SUB>" + i.ToString() + "</SUB>" +
                         " / y<SUB>" + varCountMinOne.ToString() + "</SUB> = ";
                    if (GetVarValue(varCount - 1) == 0)
                    {
                        s += "не определено";
                    }
                    else
                    {
                        s += Math.Round(GetVarValue(i) / GetVarValue(varCount - 1), 5) + "</P>";
                    }
                }

                return(s);

                s += "<P>Матрица C<SUB>b</SUB>";
                s += Cb.ToHtml() + "</P>";

                s += "<P>Матрица B<SUP>-1</SUP>";
                s += Binv.ToHtml() + "</P>";

                s += "<P>Матрица γ";
                s += gamma.ToHtml() + "</P>";

                s += "<P>Матрица разностей z<SUB>i</SUB> - c<SUB>i</SUB>";
                s += zc.ToHtml() + "</P>";

                s += "<P>Вектор базисных решений X<SUB>b</SUB>";
                s += Xb.ToHtml() + "</P>";

                if (isDecisionLegal)
                {
                    s += "<P>Базисное решение является допустимым</P>";
                }
                else
                {
                    s += "<P>Базисное решение является недопустимым</P>";
                }

                if (basIndex < 0)
                {
                    throw new Exception();
                }
                s += "<P>Выводим из базиса переменную x<SUB>" + basIndex.ToString() + "</SUB></P>";

                s += "<P>Матрица α";
                s += alpha.ToHtml() + "</P>";

                int eqNum = eqIndex + 1;
                s += "<P>Минимальное отношение θ = " + theta.ToString() + "</P>";
                s += "<P>Выводим из базиса переменную x<SUB>" + oldIndex.ToString()
                     + "</SUB> из уравнения номер " + eqNum.ToString() + "</P>";

                s += "<P>Ведущий элемент α<SUB>r</SUB> = " + alphar.ToString() + "</P>";

                s += "<P>Матрица ξ";
                s += xi.ToHtml() + "</P>";

                s += "<P>Матрица B<SUP>-1</SUP><SUB>next</SUB>";
                s += BinvNext.ToHtml() + "</P>";
            }
            catch { }
            return(s);
        }