Пример #1
0
        /// <summary>
        /// Prepares minimization by all function parameters
        /// </summary>
        /// <returns>true if preparation successful</returns>
        public bool PrepareMinimizationFull()
        {
            if (Data == null)
            {
                return(false);
            }
            if (m_Update_Ongoing)
            {
                return(false);
            }
            if (Data.Solution.SelectedFunction == null)
            {
                return(false);
            }

            PrepareMinimizationData();
            NMO = new Nelder_Mead_Optimization(3,
                                               Data.Solution.SelectedFunction.GetParameters(),
                                               Data.Solution.SelectedFunction.GetLowerLimits(),
                                               Data.Solution.SelectedFunction.GetUpperLimits(), 1000);
            NMO.onObjectiveFunction += new Nelder_Mead_Optimization.ObjectiveFunctionDelegate(TargetFunction2);
            NMO.onReportProgress    += new Nelder_Mead_Optimization.ProgressReportDelegate(ReportProgress);
            return(true);
        }
Пример #2
0
        /// <summary>
        /// Prepares minimization by user-selected parameters
        /// </summary>
        /// <returns>true if preparation successful</returns>
        public bool PrepareMinimizationPartial()
        {
            if (Data == null)
            {
                return(false);
            }
            if (m_Update_Ongoing)
            {
                return(false);
            }
            if (Data.Solution.SelectedFunction == null)
            {
                return(false);
            }
            if (dataGridView2.SelectedRows.Count <= 0)
            {
                return(false);
            }

            PrepareMinimizationData();
            List <int> Ps = new List <int>();

            foreach (DataGridViewRow dgvr in dataGridView2.SelectedRows)
            {
                Ps.Add(dgvr.Index);
            }
            m_prmsIndex = Ps.ToArray();

            NMO = new Nelder_Mead_Optimization(3,
                                               Data.Solution.SelectedFunction.GetParameters(m_prmsIndex),
                                               Data.Solution.SelectedFunction.GetLowerLimits(m_prmsIndex),
                                               Data.Solution.SelectedFunction.GetUpperLimits(m_prmsIndex), 1000);
            NMO.onObjectiveFunction += new Nelder_Mead_Optimization.ObjectiveFunctionDelegate(TargetFunction1);
            NMO.onReportProgress    += new Nelder_Mead_Optimization.ProgressReportDelegate(ReportProgress);
            return(true);
        }