青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天下

記錄修行的印記

回溯算法(1):八皇后問題

#include "stdafx.h"

/*
算法系列---回溯算法
引言
尋找問題的解的一種可靠的方法是首先列出所有候選解,然后依次檢查每一個,在檢查完所有或部分候選解后,即可找到所需要的解。理論上,當候選解數量有限并且通過檢查所有或部分候選解能夠得到所需解時,上述方法是可行的。不過,在實際應用中,很少使用這種方法,因為候選解的數量通常都非常大(比如指數級,甚至是大數階乘),即便采用最快的計算機也只能解決規模很小的問題。對候選解進行系統檢查的方法有多種,其中回溯和分枝定界法是比較常用的兩種方法。按照這兩種方法對候選解進行系統檢查通常會使問題的求解時間大大減少(無論對于最壞情形還是對于一般情形)。事實上,這些方法可以使我們避免對很大的候選解集合進行檢查,同時能夠保證算法運行結束時可以找到所需要的解。因此,這些方法通常能夠用來求解規模很大的問題。
算法思想
回溯(backtracking)是一種系統地搜索問題解答的方法。為了實現回溯,首先需要為問題定義一個解空間(solution space),這個空間必須至少包含問題的一個解(可能是最優的)。
下一步是組織解空間以便它能被容易地搜索。典型的組織方法是圖(迷宮問題)或樹(N皇后問題)。
一旦定義了解空間的組織方法,這個空間即可按深度優先的方法從開始節點進行搜索。

回溯方法的步驟如下:
1) 定義一個解空間,它包含問題的解。
2) 用適于搜索的方式組織該空間。
3) 用深度優先法搜索該空間,利用限界函數避免移動到不可能產生解的子空間。
回溯算法的一個有趣的特性是在搜索執行的同時產生解空間。在搜索期間的任何時刻,僅保留從開始節點到當前節點的路徑。因此,回溯算法的空間需求為O(從開始節點起最長路徑的長度)。這個特性非常重要,因為解空間的大小通常是最長路徑長度的指數或階乘。所以如果要存儲全部解空間的話,再多的空間也不夠用。

算法應用
回溯算法的求解過程實質上是一個先序遍歷一棵"狀態樹"的過程,只是這棵樹不是遍歷前預先建立的,而是隱含在遍歷過程中<<數據結構>>(嚴蔚敏).

回溯算法的基本思想是:從一條路往前走,能進則進,不能進則退回來,換一條路再試。

回溯法是一個既帶有系統性又帶有跳躍性的搜索算法。它在包含問題的所有解的解空間樹中,按照深度優先的策略,從根結點出發搜索解的空間樹。算法搜索至解的空間樹的任一結點時,總是先判斷該結點是否肯定不包含問題的解。如果肯定不包含,則跳過對以該結點為根的子樹的系統搜索,逐層向其祖先結點回溯。否則,進入該子樹,繼續按深度優先的策略進行搜索。回溯法在用來求問題的所有解時,要回溯到根,且根結點的所有子樹都已被搜索遍才結束。而回溯法在用來求問題的任一解時,只要搜索到問題的一個解就可以結束。這種以深度優先的方式系統地搜索問題的解的算法稱為回溯法,它適用于解一些組合數較大的問題。

算法框架:

1、問題的解空間:應用回溯法解問題時,首先應明確定義問題的解空間。問題的解空間應至少包含一個(最優)解。

2、回溯法的基本思想:確定了解空間的組織結構后,回溯法就從開始結點(根結點)出發,以深度優先的方式搜索整個解空間,這個開始結點就成為一個活結點,同時也成為當前的擴展結點。在當前的擴展結點處,搜索向縱深方向移至一個新結點,這個新結點就成為一個新的活結點,并成為當前擴展結點。如果在當前的擴展結點處不能再向縱深方向移動,則當前擴展結點就成為死結點。換句話說,這個結點不再是一個活結點。此時,應往回移動(回溯)至最近的一個活結點處,并使這個活結點成為當前的擴展結點。回溯法即以這種工作方式遞歸地在解空間中搜索,直至找到所要求的解或解空間中已沒有活結點時為止。

運用回溯法解題通常包含以下三個步驟:

(1)針對所給問題,定義問題的解空間;

(2)確定易于搜索的解空間結構;

(3)以深度優先的方式搜索解空間,并且在搜索過程中用剪枝函數避免無效搜索。

3、遞歸回溯:由于回溯法是對解的空間的深度優先搜索,因此在一般情況下可用遞歸函數來實現回溯法如下:

void backtrace(int i)
{
    for (int j=下界;j<上界;j++)
    {
        matrix[i] = j;

        //可行{滿足限界函數和約束條件}
        if ( 可行())
        {
            //置值
            if (i>n)
            {
                //中止搜索并輸出結果;
            }
            backtrace(i+1);
        }
    }
}

說明:

i是遞歸深度;

n是深度控制,即解空間樹的高度;

可行性判斷有兩方面的內容:

①不滿約束條件則剪去相應子樹;

②若限界函數越界,也剪去相應子樹;

③兩者均滿足則進入下一層;

搜索:全面訪問所有可能的情況,分為兩種:不考慮給定問題的特有性質,按事先設好的順序,依次運用規則,即盲目搜索的方法;另一種則考慮問題給定的特有性質,選用合適的規則,提高搜索的效率,即啟發式的搜索。

*/


//八皇后問題
//解空間
static int matirx[8= {0}; 
static int count = 0;  

void display()  
{  
    
int row;  
    
int col;  

    printf(
"\r\n======%02d=======\n",count);  
    
for(row = 0; row <8; row ++)
    {  
        
for(col = 0; col < matirx[row]; col ++)  
            printf(
"");  

        printf(
"");  

        
for(col = matirx[row] + 1; col < 8; col ++)  
            printf(
"");  

        printf(
"\n");  
    }
}  

bool place(int row, int col)  
{  
    
int prev;  
    
int data;  

    
for(prev = 0; prev < row; prev ++){  
        data 
= matirx[prev];

        
//同一列
        if(col == data)  
            
return false

        
//左斜線
        if ((prev-row) == (col - data) )
            
return false

        
//右斜線
        if((row - prev) == (col - data))  
            
return false;

    }  
    
return true;  
}  

void queen(int row)
{
    
int col;

    
for(col=0;col<8;col++
    {
        
if(place(row,col)) 
        {
            matirx[row]
=col;
            
if(row>=7
            {
                count
++,display();
                
//matirx[row]=0;
                return;
            }

            queen(row
+1);
            
//matirx[row]=0;
        }
    }
}


int main(void)
{
    queen(
0);
    system(
"pause");
    
return 0;
}

posted on 2013-03-20 15:37 天下 閱讀(1506) 評論(0)  編輯 收藏 引用 所屬分類: 算法

<2012年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

導航

統計

常用鏈接

留言簿(4)

隨筆分類(378)

隨筆檔案(329)

鏈接

最新隨筆

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美乱综合| 亚洲激情成人| 久久在线播放| 久久国产精品久久久久久电车| 亚洲一区区二区| 免费在线看一区| 欧美日本簧片| 欧美小视频在线| 国产精品久久一区二区三区| 国产老女人精品毛片久久| 国产精品天天看| 在线免费不卡视频| 亚洲精品日韩综合观看成人91| 日韩一区二区免费看| 先锋a资源在线看亚洲| 久久精品久久99精品久久| 国产精品久久久久免费a∨大胸| 午夜亚洲精品| 亚洲欧洲精品一区二区三区| 亚洲视频在线观看一区| 国产视频精品xxxx| 欧美国产日韩二区| 久久综合伊人77777蜜臀| 亚洲欧美日韩系列| 国产精品国产馆在线真实露脸| 日韩视频免费大全中文字幕| 亚洲国产欧美在线 | 午夜精品久久久久久久蜜桃app| 亚洲国产欧美日韩另类综合| 在线播放不卡| 国产精品久久久久久久久免费桃花 | 欧美在线观看日本一区| 久久久久九九九| 国产精品99免视看9| 精品1区2区3区4区| 亚洲自拍16p| 欧美日韩国产综合久久| 亚洲精品无人区| 亚洲品质自拍| 欧美成人午夜激情| 精品成人乱色一区二区| 亚洲电影免费| 午夜精品视频在线观看| 欧美国产综合视频| 亚洲影音先锋| 欧美精品日本| 亚洲无限av看| 亚洲精品久久久蜜桃| 亚洲一区二区三区四区五区黄| 巨乳诱惑日韩免费av| 亚洲美女av网站| 亚洲国产高清一区| 亚洲乱码国产乱码精品精可以看| 午夜视黄欧洲亚洲| 亚洲三级毛片| 久久九九热免费视频| 欧美先锋影音| 亚洲一区二区高清| 日韩午夜三级在线| 欧美日韩国产色视频| 激情亚洲成人| 一区二区三区国产| 午夜亚洲视频| 国产亚洲精品自拍| 99视频热这里只有精品免费| 久久国产精品久久久久久电车| 免费成人在线视频网站| 禁久久精品乱码| 欧美中文字幕在线| 久久国产日韩| 亚洲欧美激情视频| 亚洲美女啪啪| 性欧美激情精品| 一本到高清视频免费精品| 久久成人精品无人区| 国产视频不卡| 欧美综合77777色婷婷| 一区二区精品| 国产精品综合av一区二区国产馆| 午夜精品久久久久久久99水蜜桃 | 国产午夜精品美女视频明星a级| 亚洲欧美影音先锋| 亚洲新中文字幕| 国产欧美精品日韩区二区麻豆天美| 亚洲欧美日韩国产综合在线| 亚洲午夜视频| 国产伊人精品| 欧美成人精品| 欧美日韩国产综合久久| 性做久久久久久久免费看| 性欧美1819性猛交| 亚洲国产日韩精品| 亚洲精品在线观| 国产精品日日摸夜夜添夜夜av| 米奇777超碰欧美日韩亚洲| 久久伊人免费视频| 欧美99在线视频观看| 日韩视频在线免费| 亚洲在线黄色| 亚洲电影中文字幕| 99国产精品国产精品毛片| 国产精品欧美日韩一区二区| 久久国产精品久久久久久| 久久精品二区三区| 亚洲黄页一区| 亚洲欧美在线免费观看| 亚洲高清视频在线观看| aa级大片欧美三级| 在线成人www免费观看视频| 亚洲精品欧洲精品| 欧美视频在线观看一区| 亚洲欧美日韩成人| 亚洲成人在线网| 亚洲精品一区二区网址| 亚洲精品久久| 欧美日韩免费观看中文| 亚洲综合色网站| 欧美在线视频一区二区三区| 在线观看欧美激情| 欧美深夜影院| 久久久久久网站| 久热国产精品视频| 羞羞色国产精品| 欧美制服丝袜| 亚洲欧美一区二区精品久久久| 久久裸体视频| 午夜精品电影| 欧美人体xx| 欧美电影免费| 狠狠综合久久| 亚洲欧美日韩国产一区二区三区 | 欧美+亚洲+精品+三区| 久久久久久久一区二区| 久久国产欧美日韩精品| 欧美视频免费在线观看| 亚洲欧洲精品一区二区三区波多野1战4 | 久久一日本道色综合久久| 国产精品毛片a∨一区二区三区|国| 欧美国产日本在线| 亚洲高清自拍| 欧美aⅴ99久久黑人专区| 久久久国产精品一区| 亚洲午夜av在线| 欧美日韩精品伦理作品在线免费观看| 一区二区精品国产| 欧美韩国一区| 亚洲国产精品专区久久| 亚洲国产成人久久综合一区| 欧美伊人影院| 老色批av在线精品| 欧美刺激性大交免费视频| 欧美成年人视频| **网站欧美大片在线观看| 久久久久久有精品国产| 一本大道久久精品懂色aⅴ| 欧美电影免费观看高清| 欧美不卡三区| 日韩午夜免费| 亚洲欧美日韩网| 亚洲第一狼人社区| 午夜在线视频观看日韩17c| 亚洲激情中文1区| 毛片一区二区| 亚洲午夜未删减在线观看| 玖玖在线精品| 亚洲国产精品va在线观看黑人| 极品日韩av| 亚洲福利国产| 亚洲国产婷婷香蕉久久久久久| 欧美www视频| 亚洲美女性视频| 久久成人18免费网站| 黄色在线一区| 欧美精品一区二区三区视频 | 国产日韩欧美| 久久久久综合网| 亚洲精品久久久久久久久久久久| 夜夜嗨一区二区| 国产精品人人做人人爽| 久久爱91午夜羞羞| 亚洲国产第一| 亚洲欧美日韩中文播放| 国产精品国产自产拍高清av王其| 欧美一区二区三区视频在线 | 国产一区二区三区成人欧美日韩在线观看 | 狼人天天伊人久久| 一区二区三区日韩欧美精品| 欧美一区激情| 尤物精品国产第一福利三区| 性欧美超级视频| 在线一区欧美| 久色婷婷小香蕉久久| 亚洲免费av观看| 免费亚洲一区二区| 国产亚洲一区在线| 久久免费精品视频| 久久综合伊人77777尤物| 亚洲一区中文| 在线看日韩欧美| 91久久综合|