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

bon

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  46 Posts :: 0 Stories :: 12 Comments :: 0 Trackbacks

常用鏈接

留言簿(2)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

本篇作為最短路系列的擴展,講如何用圖論知識對差分約束系統進行建模并求解。

1. 線性規劃問題(Linear Program)
    假設給定了一個m×n矩陣A,列向量x跟b,線性規劃問題可以描述為在約束
    下求解向量
    使得目標函數最大。其中未知量的數目為n,約束數目為m。

2.差分約束系統
   所謂差分約束系統是線性規劃的一種特殊情況,其中矩陣A的每一行分別有一個1跟-1其余元素為0。每個約束都形如

  

3.如何用最短路算法求解差分約束系統

   首先構造約束圖(Constraint Graph)   

   

   其中邊上的權值為

   。

   下面的定理說明,可以用Bellman-Ford算法來求解差分約束系統。

Theorem 1  設差分約束系統對應的約束圖為G=(V,E)。若該圖無負權的環,則差分約束系統的一個可行解為。若該圖有由源可待的帶負權的環,則該系統無可行解。

Proof 由于帶權有向圖最短路若有解,則解



符合三角不等式

,即。

因此x是該系統的一個可行解。
若約束圖存在由源可達的帶負權的環,不失一般性,設該回路為

。

用反證法,若該圖有解,則有滿足



將上面式子相加,左邊為0,右邊為該回路的權值小于0,得到0<0,矛盾。

下面給出一個程序。該程序輸入變量數目、約束數目以及具體的約束。若有解則輸出解,否則報錯。

 1 #include <iostream>
 2 #define MAXN 200
 3 #define INF 0xfffffff
 4 
 5 using namespace std;
 6 
 7 int list[MAXN][MAXN][2];        // 圖的鏈接表存儲
 8 int deg[MAXN];                    // 每個頂點的出度
 9 int delta[MAXN];                // 最終存儲最短路的距離
10 int trace[MAXN];                // trace[i]表示s到i的最短路i的前驅
11 int n,e;                            // 頂點數
12 
13 void initialize_single_source()
14 {
15     int i;
16     for(i=1;i<=n;i++) delta[i]=INF;
17     trace[i]=-1;
18 }
19 
20 void relax(int a,int b)
21 {
22     if(delta[list[a][b][0]]>delta[a]+list[a][b][1])
23         delta[list[a][b][0]]=delta[a]+list[a][b][1];
24     trace[list[a][b][0]]=a;
25 }
26 
27 bool checkNegtiveCycle()
28 {
29     int i,j,k;
30     for(i=0;i<=n;i++)
31     {
32         for(j=0;j<deg[i];j++)
33         {
34             if(delta[list[i][j][0]]>delta[i]+list[i][j][1]) return false;
35         }
36     }
37     return true;
38 }
39 
40 bool bellman_ford()
41 {
42     int i,j,k;
43     for(i=1;i<n;i++)
44     {
45         for(j=0;j<=n;j++)
46         {
47             for(k=0;k<deg[j];k++)
48             {
49                 // 這里j跟k的含義不同:j是頂點編號,k是第j個頂點的第k條邊
50                 relax(j,k);
51             }
52         }
53     }
54     return checkNegtiveCycle();
55 }
56 
57 
58 
59 void printSolution()
60 {
61     int i;
62     for(i=1;i<=n;i++) printf("x_{%d}=%d\n",i,delta[i]);
63     return;
64 }
65 
66 int main()
67 {
68     int i,j,k,u,v,b;
69     // 輸入未知量的個數
70     printf("Enter the number of unknowns:");
71     scanf("%d",&n);
72     // 輸入約束數
73     printf("Enter the number of constrains:");
74     scanf("%d",&e);
75     // 輸入約束
76     printf("Enter constrains in the format of xi(-)xj(<=)bk\n");
77     for(i=1;i<=e;i++) deg[i]=0;
78     for(i=1;i<=e;i++)
79     {
80         scanf("%d%d%d",&v,&u,&b);
81         list[u][deg[u]][0]=v;
82         list[u][deg[u]][1]=b;
83         deg[u]++;
84     }
85     // 添加新的頂點
86     deg[0]=n;
87     for(i=0;i<n;i++)
88     {
89         list[0][i][0]=i+1;
90         list[0][i][1]=0;
91     }
92     if(bellman_ford()){printSolution();}
93     else printf("no solution.\n");
94     return 1;
95 }


 

posted on 2008-02-10 16:23 bon 閱讀(321) 評論(0)  編輯 收藏 引用 所屬分類: Notes on Introduction to Algorithms

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


Google PageRank 
Checker - Page Rank Calculator
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久激情中文| 久久夜色精品国产| 亚洲一区视频在线| 亚洲高清三级视频| 久久国产精品99国产| 欧美视频在线观看免费| 亚洲美女av电影| 欧美激情aⅴ一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 欧美黄色片免费观看| 亚洲高清三级视频| 久久最新视频| 久久久久久久综合| 国精品一区二区| 久久久7777| 久久精品亚洲国产奇米99| 国产婷婷精品| 久久久久久久成人| 久久欧美中文字幕| 亚洲高清精品中出| 亚洲国产欧美一区二区三区丁香婷 | 在线亚洲欧美视频| 亚洲区国产区| 欧美视频免费在线| 午夜精品一区二区三区四区| 亚洲一区二区综合| 国产偷国产偷精品高清尤物| 久久女同互慰一区二区三区| 麻豆成人精品| 亚洲一区二区三区涩| 亚洲欧美日本视频在线观看| 国内自拍一区| 亚洲国产成人精品久久久国产成人一区| 欧美高清影院| 欧美一二区视频| 久久免费观看视频| 99在线精品视频| 欧美一级专区| 91久久午夜| 亚洲一区视频在线| 曰韩精品一区二区| 日韩亚洲国产精品| 国产主播一区二区| 亚洲区一区二| 国产一区二区激情| 亚洲精品在线观看免费| 国产一区视频在线观看免费| 亚洲精品一区二区网址| 国产亚洲精品v| 亚洲日本成人| 国产主播一区| 亚洲视频狠狠| 亚洲承认在线| 午夜一区二区三区不卡视频| 亚洲精品久久久久久久久久久 | 美女精品自拍一二三四| 亚洲视频在线观看| 久久久噜噜噜久久狠狠50岁| 午夜精品久久久久久久99热浪潮| 老司机精品视频网站| 欧美一区二区视频在线| 欧美激情精品久久久久久大尺度| 久久久国产精品一区二区中文| 欧美精品一区二区精品网| 久久久久久久一区二区三区| 欧美日韩在线直播| 最新亚洲激情| 亚洲国产精品va| 亚洲国产午夜| 亚洲国产精品一区制服丝袜| 国产精品一区二区久激情瑜伽| 亚洲高清一区二区三区| 国产中文一区二区| 亚洲欧美成人网| 亚洲免费在线观看视频| 欧美精品久久久久久久免费观看 | 国内精品久久久久久久影视麻豆| 9久re热视频在线精品| 日韩午夜精品| 欧美成人午夜| 欧美国产日韩一区二区在线观看| 韩国av一区二区三区| 欧美影院成人| 久久男人av资源网站| 国产一区二区三区久久久| 午夜精品久久久久久久99樱桃| 亚洲欧美视频在线| 国产精品任我爽爆在线播放| 亚洲图色在线| 午夜精品久久久久久久99水蜜桃| 欧美午夜不卡视频| 亚洲视频在线一区观看| 亚洲一区在线播放| 国产精品视频yy9099| 亚洲男女自偷自拍| 欧美一级精品大片| 国产一区二区三区观看| 久久久精品国产一区二区三区| 免费成人激情视频| 91久久午夜| 欧美日韩亚洲综合一区| 亚洲午夜久久久久久久久电影院| 亚洲欧美一区二区原创| 国产日韩欧美二区| 久久国产成人| 亚洲国产mv| 亚洲主播在线观看| 国产欧美视频一区二区| 欧美有码在线观看视频| 欧美高清视频www夜色资源网| 亚洲无限av看| 中文av字幕一区| 国产精品午夜电影| 欧美在线资源| 欧美国产亚洲视频| 亚洲天堂网站在线观看视频| 国产精品久久久久一区二区三区 | 亚洲欧美激情视频| 久久婷婷麻豆| 日韩天堂av| 国产日韩欧美在线视频观看| 久久这里只有| 一区二区高清在线观看| 久久亚洲欧洲| 中文亚洲字幕| 激情综合网激情| 欧美视频日韩视频| 久久精选视频| 夜夜爽99久久国产综合精品女不卡| 久久aⅴ乱码一区二区三区| 亚洲一区二区三区免费视频| 国产欧美一区二区三区沐欲| 久久久久久亚洲综合影院红桃| 亚洲欧洲精品成人久久奇米网| 一区二区欧美精品| 国产真实乱偷精品视频免| 欧美精品在线一区| 久久福利毛片| 在线视频欧美精品| 欧美成年人视频| 香蕉久久夜色精品国产| 亚洲经典三级| 国产午夜精品理论片a级大结局| 欧美国产日本韩| 欧美专区第一页| 亚洲欧美福利一区二区| 最新国产成人在线观看| 久久婷婷综合激情| 香蕉久久夜色精品国产| 中文在线资源观看视频网站免费不卡| 好吊视频一区二区三区四区 | 国产日韩精品一区二区三区 | 国产伦理一区| 欧美日韩免费一区二区三区| 久久综合999| 欧美在线视频一区二区| 亚洲在线日韩| 一本一本久久| 亚洲精品久久久久久下一站| 欧美激情一区二区三区| 蜜桃久久av一区| 久久久久综合一区二区三区| 小处雏高清一区二区三区| 亚洲午夜电影在线观看| 亚洲作爱视频| 日韩一级片网址| 亚洲伦理在线观看| 亚洲黄网站在线观看| 精久久久久久| 国产一区二区三区视频在线观看| 国产伦精品一区二区三区高清版| 国产精品成人一区二区艾草| 欧美视频在线一区二区三区| 欧美日韩人人澡狠狠躁视频| 欧美日韩精品福利| 欧美精品亚洲二区| 欧美日韩国产综合视频在线观看中文 | 一区二区三区视频在线| 亚洲免费高清| 亚洲私拍自拍| 欧美一二三区精品| 久久精品一区二区三区中文字幕| 久久国产视频网站| 久久夜色撩人精品| 免费不卡中文字幕视频| 亚洲二区免费| 在线亚洲免费视频| 亚洲专区欧美专区| 久久精品日产第一区二区三区| 久久精品国亚洲| 免费在线国产精品| 欧美精品播放| 国产精品黄视频| 国产视频在线观看一区| 伊伊综合在线| 在线亚洲一区| 久久精品国产77777蜜臀| 亚洲精品免费一二三区| 午夜精品久久久久久久白皮肤 | 亚洲无限av看|