亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? frank.cs

?? svm 多類分類 輸入多種色點
?? CS
字號:
using System;
using System.Collections.Generic;
using System.Text;

namespace olsvm
{
    class Frank
    {
        protected int NN;
        protected int MM;
        protected double precision;
        protected int k;
        protected double[][] H;
        protected double[] C;
        protected double[] B;
        protected double[][] A;
        protected double[] X;
        protected double[] XBASIC;
        protected double[] Y;
        protected double[] grand;
        protected double step;

        public Frank(int n, int m)
        {
            NN = n;
            MM = m;
            H = new double[n][];
            for (int i = 0; i < n; i++)
            {
                H[i] = new double[n];
            }
            C = new double[n];
            B = new double[m];
            A = new double[m][];
            for (int i = 0; i < m; i++)
            {
                A[i] = new double[n];
            }
            X = new double[n];
            XBASIC = new double[n];
            Y = new double[n];
            grand = new double[n];
        }

        public void master(double pre, int K, double[][] h, double[] c, double[] b, double[][] a, double[] x, double[] xbasic, double[] y, double[] gra, double STEP)
        {
            getData(pre, K, h, c, b, a, x, xbasic, y, gra, STEP);
            basicAnswer();
            for (int i = 0; i < NN; i++)
                X[i] = XBASIC[i];
            while(true)
            {
                caculateGrand();
                linearPrg();
                if(stop())
                    break;
                caculateStep();
                if (step <= 0.001 && step >= 0 || step >= -0.001 && step <= 0)
                {
                    break;
                }
                nextX();
            }
            double sum = 0;
            for (int i = 0; i < NN; i++)
            {
                for (int j = 0; j < NN; j++)
                    sum += X[i] * X[j] * H[i][j];
            }
            sum = sum / 2.0;
            for (int i = 0; i < NN; i++)
                sum += X[i] * C[i];
            for (int i = 0; i < MM; i++)
            {
                double dd = 0;
                for (int j = 0; j < NN; j++)
                    dd += A[i][j] * X[j];
            }
        }

        public void getData(double pre, int K, double[][] h, double[] c, double[] b, double[][] a, double[] x, double[] xbasic, double[] y, double[] gra, double STEP)
        {
            precision = pre;
            k = K;
            step = 0;
            for (int i = 0; i < NN; i++)
            {
                C[i] = c[i];
                X[i] = 0;
                XBASIC[i] = 0;
                Y[i] = 0;
                grand[i] = 0;
                for (int j = 0; j < NN; j++)
                {
                    H[i][j] = h[i][j];
                }
            }
            for (int i = 0; i < MM; i++)
            {
                B[i] = b[i];
                for (int j = 0; j < NN; j++)
                {
                    A[i][j] = a[i][j];
                }
            }
        }

        public void basicAnswer()
        { 
            double[][] table;//動態(tài)分配
	        table=new double[MM+1][];
	        for(int i=0;i<MM+1;i++)
	        {
		        table[i]=new double[NN+MM+3];
	        }
	        for(int i=0;i<MM+1;i++)
	        {
		        for(int j=0;j<NN+MM+3;j++)
		        {
			        table[i][j]=0;
		        }
	        }
	        for(int i=0; i<MM; i++)
		        table[0][i+3+NN]=1;
	        for(int i=0; i<MM; i++)
	        {
		        table[i+1][0]=NN+i+1;
		        table[i+1][1]=0;
		        table[i+1][2]=B[i];
	        }
	        for(int i=0; i<MM; i++)
	        {
		        for(int j=0; j<NN; j++)
		        {
			        table[i+1][j+3]=A[i][j];
		        }
		        table[i+1][NN+3+i]=1;
	        }
	        for(int i=0; i<MM; i++)
		        table[i+1][1]=1;
	        int col=0;
	        int row=0;
	        while(true)
	        {
		        col=ba_findcol(table);
		        if(col == -1)
			        break;
		        row=ba_findrow(table, col);
		        ba_trans(table, col, row);
	        }
	        for(int i=0; i<MM; i++)
	        {
		        XBASIC[(int)(table[i+1][0])-1]=table[i+1][2];
	        }
        }

        public int ba_findcol(double[][] table)
        {
            int col = -1;
            double minval = 0.0;
            double val = 0.0;
            for (int i = 0; i < MM + NN; i++)
            {
                double sum = 0;
                for (int j = 1; j < MM + 1; j++)
                    sum += table[j][1] * table[j][i + 3];
                val = table[0][i + 3] - sum;
                if (minval > val)
                {
                    minval = val;
                    col = i + 3;
                }
            }
            return col;
        }

        public int ba_findrow(double[][] table, int col)
        {
            int row = -1;
            double minval = 0.0;
            double val = 0.0;
            bool firstval = true;
            for (int i = 0; i < MM; i++)
            {
                if (table[i + 1][col] < 0)
                    continue;
                val = table[i + 1][2] / table[i + 1][col];
                if (firstval)
                {
                    row = i + 1;
                    minval = val;
                    firstval = false;
                }
                else
                {
                    if (val < minval)
                    {
                        row = i + 1;
                        minval = val;
                    }
                }
            }
            return row;
        }

        public void ba_trans(double[][] table, int col, int row)
        {
            table[row][0] = (double)(col - 2);
            table[row][1] = table[0][col];
            table[row][2] = table[row][2] / table[row][col];
            double a = table[row][col];
            for (int i = 0; i < MM + NN; i++)
            {
                table[row][i + 3] = table[row][i + 3] / a;
            }
            for (int i = 0; i < MM; i++)
            {
                if (i == row - 1)
                    continue;
                double t = table[i + 1][col];
                for (int j = 0; j < MM + NN + 1; j++)
                {
                    table[i + 1][j + 2] = table[i + 1][j + 2] - t * table[row][j + 2];
                }
            }
        }

        public void linearPrg()
        { 
            double[][] btable;
	        btable=new double[MM+1][];
	        for(int i=0;i<MM+1;i++)
	        {
		        btable[i]=new double[NN+MM+3];
	        }
	        for(int i=0;i<MM+1;i++)
	        {
		        for(int j=0;j<NN+MM+3;j++)
		        {
			        btable[i][j]=0;
		        }
	        }
	        for(int i=0; i<MM; i++)
		        btable[0][i+3+NN]=1;
	        for(int i=0; i<MM; i++)
	        {
		        btable[i+1][0]=NN+i+1;
		        btable[i+1][1]=0;
		        btable[i+1][2]=B[i];
	        }
	        for(int i=0; i<MM; i++)
	        {
		        for(int j=0; j<NN; j++)
		        {
			        btable[i+1][j+3]=A[i][j];
		        }
		        btable[i+1][NN+3+i]=1;
	        }
	        for(int i=0; i<MM; i++)
		        btable[i+1][1]=1;
	        int col=0;
	        int row=0;
	        while(true)
	        {
		        col=ba_findcol(btable);
		        if(col == -1)
			        break;
		        row=ba_findrow(btable, col);
		        ba_trans(btable, col, row);
	        }

	        double[][] table;
	        table=new double[MM+1][];
	        for(int i=0;i<MM+1;i++)
	        {
		        table[i]=new double[NN+3];
	        }
	        for(int i=0;i<MM+1;i++)
	        {
		        for(int j=0;j<NN+3;j++)
		        {
			        table[i][j]=0;
		        }
	        }
	        for(int i=0; i<NN; i++)
		        table[0][i+3]=grand[i];
	        for(int i=0; i<NN+3; i++)
	        {
		        if(i == 1)
		        {
			        for(int j=0; j<MM; j++)
			        {
				        table[j+1][i]=table[0][(int)table[j+1][0]+2];
			        }
		        }
		        else
		        {
			        for(int j=0; j<MM; j++)
			        {
				        table[j+1][i]=btable[j+1][i];
			        }
		        }
	        }
	        //單純性迭代
	        row=0;
	        col=0;
	        while(true)
	        {
		        col=lp_findcol(table);
		        if(col == -1)
			        break;
		        row=lp_findrow(table,col);
		        lp_trans(table, col, row);
	        }
	        for(int i=0; i<NN; i++)
		        Y[i]=0;
	        for(int i=0; i<MM; i++)
	        {
		        Y[(int)table[i+1][0]-1]=table[i+1][2];
	        }
        }

        public bool stop()
        {
            double sum = 0;
            for (int i = 0; i < NN; i++)
            {
                sum = sum + grand[i] * (Y[i] - X[i]);
            }
            if (System.Math.Abs(sum) >= precision)
                return false;
            else
                return true;
        }

        public void caculateStep()
        {
            double[] a;
            a = new double[NN];
            double[] b;
            b = new double[NN];
            for (int i = 0; i < NN; i++)
            {
                a[i] = 0;
                b[i] = 0;
            }
            double m = 0.0;
            double n = 0.0;
            for (int i = 0; i < NN; i++)
            {
                a[i] = Y[i] - X[i];
                b[i] = X[i];
            }
            for (int i = 0; i < NN; i++)
            {
                for (int j = 0; j < NN; j++)
                {
                    m = m + H[i][j] * a[i] * a[j];
                    n = n + H[i][j] * (a[i] * b[j] + a[j] * b[i]);
                }
            }
            for (int i = 0; i < NN; i++)
            {
                n = n + 2 * a[i] * C[i];
            }
            if (m >= 0)
            {
                if (-1.0 * n / (2.0 * m) <= 0)
                    step = 0;
                else if (-1.0 * n / (2.0 * m) >= 1)
                    step = 1;
                else
                    step = -1.0 * n / (2.0 * m);
            }
            else
            {
                if (-1.0 * n / (2.0 * m) <= 0)
                    step = 1;
                else if (-1.0 * n / (2.0 * m) >= 1)
                    step = 0;
                else if (-1.0 * n / (2.0 * m) <= 0.5)
                    step = 1;
                else
                    step = 0;
            }
        }

        public void nextX()
        {
	        for(int i=0; i<NN; i++)
	        {
		        X[i]=X[i]+step*(Y[i]-X[i]);
	        }
	        k=k+1;
        }

        public void caculateGrand()
        {
            for (int i = 0; i < NN; i++)
            {
                grand[i] = 0;
                for (int j = 0; j < NN; j++)
                    grand[i] = grand[i] + H[i][j] * X[j];
                grand[i] = grand[i] + C[i];
            }
        }

        public int lp_findcol(double[][] table)
        {
	        int col=-1;
	        double minval=0.0;
	        double val=0.0;
	        for(int i=0; i<NN; i++)
	        {
		        double sum=0;
		        for(int j=1; j<MM+1; j++)
			        sum += table[j][1]*table[j][i+3];
		        val=table[0][i+3]-sum;
		        if(val < minval)
		        {
			        minval=val;
			        col=i+3;
		        }
	        }
	        return col;
        }

        public int lp_findrow(double[][] table, int col)
        {
	        int row=-1;
	        double minval=0.0;
	        double val=0.0;
	        bool firstval=true;
	        for(int i=0; i<MM; i++)
	        {
		        if(table[i+1][col] < 0)
			        continue;
		        val=table[i+1][2]/table[i+1][col];
		        if(firstval)
		        {
			        row=i+1;
			        minval=val;
			        firstval=false;
		        }
		        else
		        {
			        if(val < minval)
			        {
				        row=i+1;
				        minval=val;
			        }
		        }
	        }
	        return row;
        }

        public void lp_trans(double[][] table, int col, int row)
        {
	        table[row][0]=(double)(col-2);
	        table[row][1]=table[0][col];
	        table[row][2]=table[row][2]/table[row][col];
	        double a=table[row][col];
	        for(int i=0; i<NN; i++)
	        {
		        table[row][i+3]=table[row][i+3]/a;
	        }
	        for(int i=0; i<MM; i++)
	        {
		        if(i == row-1) 
			        continue;
		        double t=table[i+1][col];
		        for(int j=0; j<NN+1; j++)
		        {
			        table[i+1][j+2]=table[i+1][j+2]-t*table[row][j+2];
		        }
	        }
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区在线视频| 911精品产国品一二三产区| 91亚洲精品久久久蜜桃网站| av在线不卡网| 91麻豆精品国产91久久久久久| 欧美日韩国产另类不卡| 精品国产99国产精品| 日韩一级片在线播放| 国产91精品久久久久久久网曝门 | 豆国产96在线|亚洲| 成人av在线一区二区| 欧美三级电影精品| 久久免费看少妇高潮| 一区二区三区成人| 美女尤物国产一区| 97se亚洲国产综合自在线观| 欧美日韩视频在线一区二区 | 精品国产免费人成电影在线观看四季 | 亚洲精品国产无套在线观| 久久福利视频一区二区| 97aⅴ精品视频一二三区| 欧美一区二区三区精品| 最新国产精品久久精品| 久久成人av少妇免费| 欧美在线啊v一区| 国产精品久久久久久亚洲毛片 | 天天操天天色综合| 99久久综合色| 久久久美女毛片| 亚洲bt欧美bt精品777| 一本一本大道香蕉久在线精品 | 亚洲国产日日夜夜| 国产白丝网站精品污在线入口| 欧美一区二区三区系列电影| 一区二区欧美精品| 欧美无乱码久久久免费午夜一区 | 91麻豆精品一区二区三区| 国产三级精品在线| 国产成人综合精品三级| 精品国免费一区二区三区| 日本三级韩国三级欧美三级| 在线观看视频一区| 亚洲一二三区在线观看| 在线观看亚洲精品视频| 亚洲国产精品一区二区久久| 91国在线观看| 午夜精品福利在线| 欧美精品在线观看一区二区| 午夜av一区二区| 欧美日韩在线观看一区二区| 亚洲午夜精品久久久久久久久| 欧美日韩高清在线播放| 日本免费在线视频不卡一不卡二| 欧美一级理论片| 久久久久久9999| 99re这里只有精品6| 精品捆绑美女sm三区| 蜜臀久久99精品久久久画质超高清 | 一区二区在线免费观看| 激情国产一区二区| 国产女人18水真多18精品一级做| 精品一区二区三区久久| 精品国产91洋老外米糕| 高清beeg欧美| 日韩有码一区二区三区| 日韩电影免费在线| 精品一区二区三区视频在线观看| 韩国精品主播一区二区在线观看| 成人丝袜视频网| 91高清视频在线| 高清beeg欧美| 亚洲伦理在线精品| 色哦色哦哦色天天综合| 成人欧美一区二区三区白人| 国产一区二区在线影院| 国产精品久久三| 欧美精品日韩精品| 国产精品一区不卡| 精品国产乱码久久久久久老虎| 久久99九九99精品| 中文字幕一区二区三区不卡| 色伊人久久综合中文字幕| 午夜av区久久| 亚洲人快播电影网| 日韩一级大片在线| 成人免费视频视频| 五月天激情小说综合| 一区二区高清免费观看影视大全| 日韩一级片网站| 91麻豆精品国产| 在线精品亚洲一区二区不卡| 盗摄精品av一区二区三区| 国产精品66部| www.亚洲激情.com| 欧美福利视频导航| 亚洲精品在线观看视频| 精品国产一区a| 欧美日韩国产天堂| 91久久精品国产91性色tv| www.亚洲人| eeuss鲁片一区二区三区在线观看| 在线观看亚洲成人| 久久综合九色综合97_久久久| 欧美一区二区三区喷汁尤物| 欧美情侣在线播放| 欧美三级视频在线观看| 91麻豆精东视频| 一本色道久久综合亚洲精品按摩| 国产亚洲欧美激情| 美女爽到高潮91| 91国产免费观看| 91精品国产欧美一区二区成人 | 麻豆国产精品777777在线| 亚洲一区二区视频| 亚洲一区二三区| 日韩精品一级二级| 久久精品国产成人一区二区三区 | 国产盗摄一区二区三区| 成人黄色小视频| 欧美无砖专区一中文字| 欧美r级在线观看| 国产精品视频你懂的| 亚洲高清在线视频| 国产成+人+日韩+欧美+亚洲| 91视频国产资源| 日韩免费电影网站| 国产精品久久久一区麻豆最新章节| 亚洲精品乱码久久久久| 国产在线不卡一卡二卡三卡四卡| www.欧美日韩| 在线一区二区三区四区| 丰满岳乱妇一区二区三区| 欧美日韩一区二区三区视频| 一区二区三区久久久| 欧美伊人久久久久久久久影院 | 一区二区三区毛片| 欧美天天综合网| 亚洲成人1区2区| 日韩色在线观看| 久久99国产乱子伦精品免费| 日韩欧美国产不卡| 国产乱色国产精品免费视频| 国产日韩欧美一区二区三区综合| 高清不卡一区二区| 亚洲最新视频在线观看| 欧美精品自拍偷拍| 国产精品主播直播| 综合分类小说区另类春色亚洲小说欧美| av高清不卡在线| 亚洲国产日韩精品| 欧美电视剧免费全集观看| 中文字幕亚洲欧美在线不卡| 久88久久88久久久| 精品久久五月天| 久久99久久精品| 日韩精品在线看片z| 韩国欧美一区二区| 国产精品午夜在线| 成人福利视频网站| 亚洲欧美另类图片小说| 色婷婷精品久久二区二区蜜臂av | 国产综合一区二区| 久久午夜电影网| 国产成+人+日韩+欧美+亚洲| 中文字幕av一区 二区| 91啪九色porn原创视频在线观看| 亚洲色图20p| 欧美高清性hdvideosex| 久久99久久99小草精品免视看| 精品福利av导航| 波多野结衣在线aⅴ中文字幕不卡| 国产精品丝袜一区| 欧美在线制服丝袜| 日韩成人精品视频| 欧美激情一区二区三区不卡| 欧美综合一区二区三区| 麻豆一区二区三| 综合久久国产九一剧情麻豆| 欧美妇女性影城| 99久久er热在这里只有精品15| 午夜欧美视频在线观看| 国产精品嫩草久久久久| 欧美日韩亚洲综合一区| 国产suv精品一区二区883| 亚洲一线二线三线久久久| 国产亚洲精品aa午夜观看| 欧美日韩精品二区第二页| 国产一区二区不卡在线| 午夜精品久久久久久久久久久| 亚洲国产高清aⅴ视频| 欧美日韩二区三区| www.在线欧美| 国产91丝袜在线播放| 精品一区二区免费| 亚洲成人免费视频| 亚洲一区二区三区四区五区黄| 国产欧美一区二区三区沐欲| 精品三级在线看| 欧美一区日韩一区| 51精品秘密在线观看|