Beispiel #1
0
 public AdmissibleSetForm(
     Form prevForm,
     Model model,
     FormalMethods method) : this(prevForm, model)
 {
     this._method = method;
     this.lblSelectedMethod.Text = "Выбранный метод поиска окончательного решения:\n" +
                                   FormalMethodsManager.GetFormalMethodName(method);
 }
Beispiel #2
0
        public FormalResultsForm(
            Form prevForm,
            Model model,
            FormalMethods method)
        {
            InitializeComponent();

            // Подстройка интерфейса
            this.Left = prevForm.Left;
            this.Top  = prevForm.Top;
            if (this.FormBorderStyle != FormBorderStyle.FixedSingle)
            {
                this.WindowState = prevForm.WindowState;
            }
            if (this.WindowState == FormWindowState.Normal)
            {
                this.Width  = prevForm.Width;
                this.Height = prevForm.Height;
            }

            this._prevForm = prevForm;
            this._model    = model;

            IFormalMethodSolver solver = new IdealPointSolver();

            switch (method)
            {
            case FormalMethods.IdealPoint:
                solver = new IdealPointSolver();
                break;

            case FormalMethods.BinaryRelations:
                solver = new BinaryRelationsSolver();
                break;

            case FormalMethods.MaximalPower:
                solver = new MaximalPowerSolver();
                break;
            }

            this._result = solver.FindDecision(this._model);
            FormalResultDataGridFiller.FillDataGrid(this._model, this._result, this.dgvData);

            // Запустим сборщик мусора, чтобы убить
            // предыдущие ветки
            System.GC.Collect();
        }
Beispiel #3
0
        public static string GetFormalMethodName(FormalMethods method)
        {
            switch (method)
            {
            case FormalMethods.BinaryRelations:
                return("Метод бинарных отношений");

            case FormalMethods.IdealPoint:
                return("Поиск точки с минимальным удалением от идеальной");

            case FormalMethods.MaximalPower:
                return("Поиск точки с максимальной мощностью");

            default:
                throw new ArgumentException("Параметр 'method' метода 'opt.Classes.FormalMethodsManager.GetFormalMethodName' имеет недопустимое значение: " + method);
            }
        }