• <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>
            隨筆 - 89  文章 - 118  trackbacks - 0
            <2011年7月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            留言簿(16)

            隨筆分類(56)

            隨筆檔案(89)

            文章分類

            推薦博客

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜

            一、搜索引擎介紹

            搜索引擎發(fā)展階段:
            1、分類目錄的一代
            2、文本檢索的一代
            3、鏈接分析的一代
            4、用戶中心的一代

            搜索引擎的三個目標:更全,更快,更準

            搜索引擎的3個核心問題:
            1、用戶真正的需求是什么,搜索詞背后的含義
            2、哪些信息是和用戶需求真正相關(guān),關(guān)鍵詞匹配
            3、哪些信息是用戶可以依賴的,返回給用戶重要的,可依賴的網(wǎng)頁

            優(yōu)秀的云存儲與云計算機平臺已經(jīng)成為大型商業(yè)搜索引擎的核心競爭力
            posted @ 2013-09-05 14:27 胡滿超 閱讀(459) | 評論 (0)編輯 收藏
            You need compile boost and add libs path in project or makefile.

            Compile boost run:

            bjam stage --toolset=msvc-10.0 link=static runtime-link=static threading=multi debug release
            posted @ 2013-08-20 15:52 胡滿超 閱讀(383) | 評論 (0)編輯 收藏
            轉(zhuǎn)自:http://blog.chinaunix.net/uid-23766031-id-2386460.html

            死鎖:一種情形,此時執(zhí)行程序中兩個或多個線程發(fā)生永久堵塞(等待),每個線程都在等待被  
            其他線程占用并堵塞了的資源。例如,如果線程A鎖住了記錄1并等待記錄2,而線程B鎖住了記錄2并等待記錄1,這樣兩個線程就發(fā)生了死鎖現(xiàn)象。
            gdb調(diào)試死鎖的方法:
            gdb 
            attach pid
            thread apply all bt
            找到_lll_lock_wait 鎖等待的地方。
            然后查找該鎖被哪個線程鎖住了。
            例如:
            查看哪個線程擁有互斥體(然后list代碼,查看使用互斥變量的名稱

            (gdb) print AccountA_mutex
            $1 = {__m_reserved = 2, __m_count = 0, __m_owner = 0x2527,
            __m_kind = 0, __m_lock
            = {__status = 1, __spinlock = 0}}
            (gdb) print 0x2527
            $2 = 9511
            (gdb) print AccountB_mutex
            $3 = {__m_reserved = 2, __m_count = 0, __m_owner = 0x2529,
            __m_kind = 0, __m_lock = {__status = 1, __spinlock = 0}}
            (gdb) print 0x2529
            $4 = 9513
            (gdb)
            從上面的命令中,我們可以看出AccontA_mutex是被線程 5(LWP 9511)加鎖(擁有)的,而AccontB_mutex是被線程 3(LWP 9513)加鎖(擁有)的。
            posted @ 2013-08-20 15:40 胡滿超 閱讀(1619) | 評論 (0)編輯 收藏
            1、能準確領(lǐng)會上級領(lǐng)導的意圖和需求
            2、能對任務(wù)進行分解,驅(qū)動下屬完成任務(wù)
            3、能夠在資源有限的情況下,籠絡(luò)下屬,駕馭團隊
            posted @ 2013-08-16 10:59 胡滿超 閱讀(432) | 評論 (0)編輯 收藏
            1、開展工作就事論事,在管理下屬時不要糾纏于細節(jié)
            2、把驅(qū)動自己做事,變成驅(qū)動團隊做事
            3、對任務(wù)和模塊進行切割,把事情和責任分到人頭
            4、把“驅(qū)動員工,分派任務(wù),檢查進度”變成“分割責任,收集信息,幫助下屬清除困難”
            5、培訓和開會必不可少,做培訓和主持會議的水平是領(lǐng)導者重點培養(yǎng)的核心技能
            posted @ 2013-08-08 15:58 胡滿超 閱讀(424) | 評論 (0)編輯 收藏
            VC控制臺使用CSocket要點:

            1、在Stdafx.h中加入#include "afxsock.h"
            2、在CPP中加入
            if (!AfxSocketInit())
            {
            _tprintf(_T("Fatal Error: Socket initialization failed\n"));
            return 1 ;
            }
            3、在工程生成的時候支持MFC是必須的步驟

            做上上述幾點在Debug版本調(diào)用CSocket::Create函數(shù)的時候就不會出現(xiàn)Assert了
            posted @ 2013-06-27 14:45 胡滿超 閱讀(388) | 評論 (0)編輯 收藏
            最使用VC編寫base64的程序,找了半天發(fā)現(xiàn)ATL本身就提供此功能,以下幾個函數(shù)就可以滿足常見需要:

            int Base64EncodeGetRequiredLength(int nSrcLen, DWORD dwFlags=ATL_BASE64_FLAG_NONE){}

            int Base64DecodeGetRequiredLength(int nSrcLen) throw(){}

            BOOL Base64Encode( _In_count_(nSrcLen) const BYTE *pbSrcData, _In_ int nSrcLen, _Out_z_cap_post_count_(*pnDestLen, *pnDestLen) LPSTR szDest, _Inout_ int *pnDestLen, _In_ DWORD dwFlags = ATL_BASE64_FLAG_NONE) throw(){}

            BOOL Base64Decode(LPCSTR szSrc, int nSrcLen, BYTE *pbDest, int *pnDestLen) throw(){}
            posted @ 2013-05-09 13:32 胡滿超 閱讀(661) | 評論 (0)編輯 收藏
             1     std::vector<int> vec;
             2     vec.push_back(1);
             3     vec.push_back(2);
             4     vec.push_back(3);
             5     vec.push_back(4);
             6     vec.push_back(5);
             7     vec.push_back(6);
             8     vec.push_back(7);
             9     vec.push_back(8);
            10 
            11     std::vector<int>::iterator ite = vec.begin();
            12     while (ite != vec.end())
            13     {
            14         if (*ite == 2)
            15         {
            16             ite = vec.erase(ite);
            17         }
            18         else
            19         {
            20             printf("%d\n", *ite);
            21             ++ite;
            22         }
            23     }
            posted @ 2013-04-22 14:05 胡滿超 閱讀(314) | 評論 (0)編輯 收藏
            多線程在訪問類不同對象的成員函數(shù)時,是否需要同步?如果不需要是為什么呢?

            答:不需要,因為類的成員函數(shù)在程序的代碼段,在調(diào)用類的成員函數(shù)時,會傳入對象this指針,不同對象的this指針不同。代碼段訪問的函數(shù)都在數(shù)據(jù)段或堆棧段,只要數(shù)據(jù)段與堆棧段地址不存在訪問竟態(tài),訪問就是線程安全的。
            posted @ 2013-02-01 16:09 胡滿超 閱讀(610) | 評論 (0)編輯 收藏
            設(shè)計高效算法往往需要使用Hash表,O(1)級的查找速度是任何別的算法無法比擬的。
            所謂Hash,一般是一個整數(shù),通過某種算法,可以把一個字符串"pack"成一個整數(shù),這個數(shù)稱為Hash,當然,一個整數(shù)是無法對應(yīng)一個字符串的。
            所以Hash函數(shù)是Hash表最核心的部分,對于一個Hash函數(shù),評價其優(yōu)劣的標準應(yīng)為隨機性或離散性,即對任意一組標本,進入Hash表每一個單元(cell)之概率的平均程度,因為這個概率越平均,兩個字符串計算出的Hash值相等hash collision的可能越小,數(shù)據(jù)在表中的分布就越平均,表的空間利用率就越高。

            Hash表的構(gòu)造和沖突的不同實現(xiàn)方法對執(zhí)行效率也有一定的影響.

            DJBHash是一種非常流行的算法,俗稱"Times33"算法。Times33的算法很簡單,就是不斷的乘33,原型如下

            hash(i) = hash(i-1) * 33 + str[i]

            Time33在效率和隨機性兩方面上俱佳。

            其它常用字符串哈希函數(shù)有:
            BKDRHash,APHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等。BKDRHash和APHash也是比較優(yōu)秀的算法。當然要根據(jù)具體應(yīng)用選擇合適的Hash算法,比如字符集的考慮。

            APHash作者Arash Partow有一個頁面很有參考價值,包括了各種Hash的介紹及代碼。

            http://www.partow.net/programming/hashfunctions/#RSHashFunction

            Blizzard使用的算法比較精妙,被稱為"One-Way Hash",并且在Hash表中使用了三個哈希值(一個用來確定位置,另外兩個用來校驗)。

            MD5等加密算法也屬于hash,不過已被中國學者找到碰撞檢測的破解算法
            posted @ 2012-12-26 17:08 胡滿超 閱讀(3137) | 評論 (0)編輯 收藏
            http://blog.sina.com.cn/s/blog_a2498b5b01014bsg.html

            題目描述:

                 一個循環(huán)有序數(shù)組(如:3,4,5,6,7,8,9,0,1,2),不知道其最小值的位置,要查找任一數(shù)值的位置。要求算法時間復雜度為log2(n)。


            問題分析:

                我們可以把循環(huán)有序數(shù)組分為左右兩部分(以mid = (low+high)/ 2為界),由循環(huán)有序數(shù)組的特點知,左右兩部分必有一部分是有序的,我們可以找出有序的這部分,然后看所查找元素是否在有序部分,若在,則直接對有序部分二分查找,若不在,對無序部分遞歸調(diào)用查找函數(shù)。

            代碼如下:

                #include <iostream>

                using namespace std;

                int binarySearch(int a[],int low,int high,int value)  //二分查找
                {
                    if(low>high)
                        return -1;

                    int mid=(low+high)/2;

                    if(value==a[mid])
                        return mid;
                    else if(value>a[mid])
                        return binarySearch(a,mid+1,high,value);
                    else
                        return binarySearch(a,low,mid-1,value);
                }

                int Search(int a[],int low,int high,int value)     //循環(huán)有序查找函數(shù)
                {
                    int mid=(low+high)/2;

                    if(a[mid]>a[low])       //左有序
                    {
                        if(a[low]<=value && value<=a[mid] )        //說明value在左邊,直接二分查找
                        {
                            return binarySearch(a,low,mid,value);
                        }

                        else                                       //value在右邊
                        {
                            return Search(a,mid+1,high,value);
                        }
                    }
                    else                    //右有序
                    {
                        if(a[mid]<=value && value<=a[high])
                        {
                            return binarySearch(a,mid,high,value);
                        }
                        else
                        {
                            return Search(a,low,mid-1,value);
                        }
                    }
                }

                int main()
                {
                    int a[]={3,4,5,6,7,8,9,0,1,2};

                    cout<<Search(a,0,9,0)<<endl;

                    return 0;
                }

            posted @ 2012-12-26 16:15 胡滿超 閱讀(442) | 評論 (0)編輯 收藏

            轉(zhuǎn)自:http://wenku.baidu.com/view/9e2d2f3e5727a5e9856a6167.html

            大小端問題

             

            By unanao

            <sunjianjiao@gmail.com>

             

            一、什么是大小端問題

            (FromComputer Systems,A Programer's Perspective)在幾乎所有的機器上,多字節(jié)對象被存儲為連續(xù)的字節(jié)序列,對象的地址為所使用字節(jié)序列中最低字節(jié)地址。

            小端:某些機器選擇在存儲器中按照從最低有效字節(jié)到最高有效字節(jié)的順序存儲對象,這種最低有效字節(jié)在最前面的表示方式被稱為小端法(little endian) 這樣的存儲模式有點兒類似于把數(shù)據(jù)當作字符串順序處理:地址由小向大增加,而數(shù)據(jù)從高位往低位放;

                   大端:某些機器則按照從最高有效字節(jié)到最低有效字節(jié)的順序儲存,這種最高有效字節(jié)在最前面的方式被稱為大端法(big endian) 這種存儲模式將地址的高低和數(shù)據(jù)位權(quán)有效地結(jié)合起來,高地址部分權(quán)值高,低地址部分權(quán)值低,和我們的邏輯方法一致。

             

             舉個例子來說名大小端比如一個int x, 地址為0x100, 它的值為0x1234567. 則它所占據(jù)的0x100, 0x101, 0x102, 0x103地址組織如下圖:




            二、為什么會有大小端模式之分呢?

            這是因為在計算機系統(tǒng)中,我們是以字節(jié)為單位的,每個地址單元都對應(yīng)著一個字節(jié),一個字節(jié)為 8bit。但是在C語言中除了8bitchar之外,還有16bitshort型,32bitlong型(要看具體的編譯器),另外,對于位數(shù)大于 8位的處理器,例如16位或者32位的處理器,由于寄存器寬度大于一個字節(jié),那么必然存在著一個如果將多個字節(jié)安排的問題。因此就導致了大端存儲模式和小端存儲模式。例如一個16bitshortx,在內(nèi)存中的地址為0x0010x的值為0x1122,那么0x11為高字節(jié),0x22為低字節(jié)。對于 大端模式,就將0x11放在低地址中,即0x0010中,0x22放在高地址中,即0x0011中。小端模式,剛好相反。我們常用的X86結(jié)構(gòu)是小端模 式,而KEIL C51則為大端模式。很多的ARMDSP都為小端模式。有些ARM處理器還可以由硬件來選擇是大端模式還是小端模式。

             

            三、如何區(qū)分大小端問題:

            方法1

            #include <stdio.h>

             

            int main(void)

            {

                   int i = 1;

                   unsigned char *pointer;

             

                   pointer = (unsigned char *)&i;

                   if(*pointer)

                   {

                          printf("litttle_endian");

                   }

                   else

                   {

                          printf("big endian\n");

                   }

             

                   return 0;

            }

                   C中的數(shù)據(jù)類型都是從內(nèi)存的低地址向高地址擴展,取址運算"&"都是取低地址。小端方式中(i占至少兩個字節(jié)的長度)則i所分配的內(nèi)存最小地址那個字節(jié)中就存著1,其他字節(jié)是0大端的話則1i的最高地址字節(jié)處存放,char是一個字節(jié),所以強制將char型量p指向ip指向的一定是i的最低地址,那么就可以判斷p中的值是不是1來確定是不是小端。

             

            方法2

            #include <stdio.h>

             

            int main(void)

            {

                   union {

                          short a;

                          char ch;

                   } u;

                   u.a = 1;

             

                   if (u.ch == 1)

                   {

                          printf("Littel endian\n");

                   }

                   else

                   {

                          printf("Big endian\n");

                   }

            }

                   利用聯(lián)合體的特點,數(shù)據(jù)成員共享內(nèi)存空間,union中元素的起始地址都是相同的——位于聯(lián)合的開始。 char來截取感興趣的字節(jié)

             

            四、需要考慮大小端(字節(jié)順序)的情況

            1、所寫的程序需要向不同的硬件平臺遷移,說不定哪一個平臺是大端還是小端,為了保證可移植性,一定提前考慮好。

            2. 在不同類型的機器之間通過網(wǎng)絡(luò)傳送二進制數(shù)據(jù)時。 一個常見的問題是當小端法機器產(chǎn)生的數(shù)據(jù)被發(fā)送到大端法機器或者反之時,接受程序會發(fā)現(xiàn),字(word)里的字節(jié)(byte)成了反序的。為了避免這類問 題,網(wǎng)絡(luò)應(yīng)用程序的代碼編寫必須遵守已建立的關(guān)于字節(jié)順序的規(guī)則,以確保發(fā)送方機器將它的內(nèi)部表示轉(zhuǎn)換成網(wǎng)絡(luò)標準,而接受方機器則將網(wǎng)絡(luò)標準轉(zhuǎn)換為它的內(nèi)部標準。

            3. 當閱讀表示整數(shù)的字節(jié)序列時。這通常發(fā)生在檢查機器級程序時,e.g.:反匯編得到的一條指令:
            80483bd: 01 05 64 94 04 08        add %eax, 0x8049464

            3. 當編寫強轉(zhuǎn)的類型系統(tǒng)的程序時。如寫入的數(shù)據(jù)為u32型,但是讀取的時候卻是char型的。如:0x1234, 大端讀取為12時,小端獨到的是34

            六、提高程序的可移植性

            使用宏編譯

            #ifdef LITTLE_ENDIAN

            //小端的代碼

            #else

            //大端的代碼

            #endif

             

            七、大、小端之間的轉(zhuǎn)換

            1、小端轉(zhuǎn)換為大端

            #include <stdio.h>

             

            void show_byte(char *addr, int len)

            {

                   int i;

             

                   for (i = 0; i < len; i++)

                   {

                          printf("%.2x \t", addr[i]);

                   }

                   printf("\n");

            }

             

            int endian_convert(int t)

            {

                   int result;

                   int i;

             

                   result = 0;

                   for (i = 0; i < sizeof(t); i++)

                   {

                          result <<= 8;

                          result |= (t & 0xFF);

                          t >>= 8;

                   }

             

                   return result;

            }

             

            int main(void)

            {

                   int i;

                   int ret;

             

                   i = 0x1234567;

             

                   show_byte((char *)&i, sizeof(int));

                   ret = endian_convert(i);

                   show_byte((char *)&ret, sizeof(int));

             

                   return 0;

            }

             

            posted @ 2012-12-26 16:06 胡滿超 閱讀(902) | 評論 (0)編輯 收藏

            轉(zhuǎn)自:http://www.fredosaurus.com/notes-cpp/misc/random-shuffle.html

            // File        : misc/random/deal.cpp - Randomly shuffle deck of cards.

            // Illustrates : Shuffle algorithm, srand, rand.

            // Improvements: Use classes for Card and Deck.

            // Author      : Fred Swartz 2003-08-24, shuffle correction 2007-01-18

            //               Placed in the public domain.

             

            #include <iostream>

            #include <cstdlib>   // for srand and rand

            #include <ctime>     // for time

            using namespace std;

             

            int main() {

                int card[52];    // array of cards;

                int n;           // number of cards to deal

                srand(time(0));  // initialize seed "randomly"

                

                for (int i=0; i<52; i++) {

                    card[i] = i;  // fill the array in order

                }

               

                while (cin >> n) {   

                    //--- Shuffle elements by randomly exchanging each with one other.

                    for (int i=0; i<(52-1); i++) {

                        int r = i + (rand() % (52-i)); // Random remaining position.

                        int temp = card[i]; card[i] = card[r]; card[r] = temp;

                    }

                   

                    //--- Print first n cards as ints.

                    for (int c=0; c<n; c++) {

                        cout << card[c] << " ";  // Just print number

                    }

                    cout << endl;

                }

              

               return 0;

            }

            posted @ 2012-12-26 15:59 胡滿超 閱讀(543) | 評論 (0)編輯 收藏

            轉(zhuǎn)自:http://blog.csdn.net/fuyangchang/article/details/5637464
            wiki地址http://en.wikipedia.org/wiki/Hamming_distance

            在信息領(lǐng)域,兩個長度相等的字符串的海明距離是在相同位置上不同的字符的個數(shù),也就是將一個字符串替換成另一個字符串需要的替換的次數(shù)。

            例如:

            • "toned" and "roses" is 3.
            • 1011101 and 1001001 is 2.
            • 2173896 and 2233796 is 3.

            對于二進制來說,海明距離的結(jié)果相當于 a XOR b 結(jié)果中1的個數(shù)。

            python代碼如下

             

            def hamming_distance(s1, s2):

                assert len(s1) == len(s2)

                return sum(ch1 != ch2 for ch1, ch2 in zip(s1, s2))

             

            print (hamming_distance("gdad","glas"))

            結(jié)果是2

             

            C語言代碼如下

             

            unsigned hamdist(unsigned x, unsigned y)

            {

              unsigned dist = 0, val = x ^ y;

             

              // Count the number of set bits

              while(val)

              {

                ++dist;

                val &= val - 1;

              }

             

              return dist;

            }

             

            int main()

            {

                     unsigned x="abcdcc";

                     unsigned y="abccdd";

                     unsigned z=hamdist(x,y);

                     printf("%d",z);

            }

            posted @ 2012-12-26 15:49 胡滿超 閱讀(649) | 評論 (0)編輯 收藏
                 摘要: 轉(zhuǎn)自:http://www.codinglabs.org/html/theory-of-mysql-index.htmlMySQL索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理摘要本文以MySQL數(shù)據(jù)庫為研究對象,討論與數(shù)據(jù)庫索引相關(guān)的一些話題。特別需要說明的是,MySQL支持諸多存儲引擎,而各種存儲引擎對索引的支持也各不相同,因此MySQL數(shù)據(jù)庫支持多種索引類型,如BTree索引,哈希索引,全文索引等等。為了避免...  閱讀全文
            posted @ 2012-12-21 10:38 胡滿超 閱讀(329) | 評論 (0)編輯 收藏

            轉(zhuǎn)自:http://www.infoq.com/cn/articles/cyw-evaluate-seachengine-result-quality

            前言

            搜索質(zhì)量評估是搜索技術(shù)研究的基礎(chǔ)性工作,也是核心工作之一。評價(Metrics)在搜索技術(shù)研發(fā)中扮演著重要角色,以至于任何一種新方法與他們的評價方式是融為一體的。


            搜索引擎結(jié)果的好壞與否,體現(xiàn)在業(yè)界所稱的在相關(guān)性(Relevance)上。相關(guān)性的定義包括狹義和廣義兩方面,狹義的解釋是:檢索結(jié)果和用戶查詢的相關(guān)程度。而從廣義的層面,相關(guān)性可以理解為為用戶查詢的綜合滿意度。直觀的來看,從用戶進入搜索框的那一刻起,到需求獲得滿足為止,這之間經(jīng)歷的過程越順暢,越便捷,搜索相關(guān)性就越好。本文總結(jié)業(yè)界常用的相關(guān)性評價指標和量化評價方法。供對此感興趣的朋友參考。

            Cranfield評價體系

            A Cranfield-like approach這個名稱來源于英國Cranfield University,因為在二十世紀五十年代該大學首先提出了這樣一套評價系統(tǒng):由查詢樣例集、正確答案集、評測指標構(gòu)成的完整評測方案,并從此確立了“評價”在信息檢索研究中的核心地位。

            Cranfield評價體系由三個環(huán)節(jié)組成:

            1. 抽取代表性的查詢詞,組成一個規(guī)模適當?shù)募?/li>
            2. 針對查詢樣例集合,從檢索系統(tǒng)的語料庫中尋找對應(yīng)的結(jié)果,進行標注(通常人工進行)
            3. 將查詢詞和帶有標注信息的語料庫輸入檢索系統(tǒng),對系統(tǒng)反饋的檢索結(jié)果,使用預(yù)定義好的評價計算公式,用數(shù)值化的方法來評價檢索系統(tǒng)結(jié)果和標注的理想結(jié)果的接近程度

            查詢詞集合的選取

            Cranfield評價系統(tǒng)在各大搜索引擎公司內(nèi)有廣泛的應(yīng)用。具體應(yīng)用時,首先需要解決的問題是構(gòu)造一個測試用查詢詞集合。

            按照Andrei Broder(曾在AltaVista/IBM/Yahoo任職)的研究,查詢詞可分為3類:尋址類查詢(Navigational)、信息類查詢(Informational)、事務(wù)類查詢(Transactional)。對應(yīng)的比例分別為

            Navigational : 12.3%  Informational : 62.0%  Transactional : 25.7% 

            為了使得評估符合線上實際情況,通常查詢詞集合也會按比例進行選取。通常從線上用戶的Query Log文件中自動抽取。

            另外查詢集合的構(gòu)造時,除了上述查詢類型外,還可以考慮Query的頻次,對熱門query(高頻查詢)、長尾query(中低頻)分別占特定的比例。

            另外,在抽取Query時,往往Query的長短也是一個待考慮的因素。因為短query(單term的查詢)和長Query(多Term的查詢)排序算法往往會有一些不同。

            構(gòu)成查詢集合后,使用這些查詢詞,在不同系統(tǒng)(例如對比百度和Google)或不同技術(shù)間(新舊兩套Ranking算法的環(huán)境)進行搜索,并對結(jié)果進行評分,以決定優(yōu)劣。

            附圖:對同一Query:“社會保險法”,各大搜索引擎的結(jié)果示意圖。下面具體談?wù)勗u分的方法。

            Precision-recall(準確率-召回率方法)

            計算方法

            信息檢索領(lǐng)域最廣為人知的評價指標為Precision-Recall(準確率-召回率)方法。該方法從提出至今已經(jīng)歷半個世紀,至今在很多搜索引擎公司的效果評估中使用。

            顧名思義,這個方法由準確率和召回率這兩個相互關(guān)聯(lián)的統(tǒng)計量構(gòu)成:召回率(Recall)衡量一個查詢搜索到所有相關(guān)文檔的能力,而準確率(Precision)衡量搜索系統(tǒng)排除不相關(guān)文檔的能力。(通俗的解釋一下:準確率就是算一算你查詢得到的結(jié)果中有多少是靠譜的;而召回率表示所有靠譜的結(jié)果中,有多少被你給找回來了)。這兩項是評價搜索效果的最基礎(chǔ)指標,其具體的計算方法如下。

            Precision-recall方法假定對一個給定的查詢,對應(yīng)一個被檢索的文檔集合和一個不相關(guān)的文檔集合。這里相關(guān)性被假設(shè)為二元的,用數(shù)學形式化方法來描述,則是:

            A表示相關(guān)文檔集合

            A表示不相關(guān)集合

            B表示被檢索到的文檔集合

            B表示未被檢索到的文檔集合

            則單次查詢的準確率和召回率可以用下述公式來表達:

            (運算符∩ 表示兩個集合的交集。|x|符號表示集合x中的元素數(shù)量)

            從上面的定義不難看出,召回率和準確率的取值范圍均在[0,1]之間。那么不難想象,如果這個系統(tǒng)找回的相關(guān)越多,那么召回率越高,如果相關(guān)結(jié)果全部都給召回了,那么recall此時就等于1.0。

             

            相關(guān)的

            不相關(guān)

            被檢索到

            A∩ B

            A∩ B

            未被檢索到

            A∩B

            AB

            Precision-Recall曲線

            召回率和準確率分別反映了檢索系統(tǒng)的兩個最重要的側(cè)面,而這兩個側(cè)面又相互制約。因為大規(guī)模數(shù)據(jù)集合中,如果期望檢索到更多相關(guān)的文檔,必然需要“放寬”檢索標準,因此會導致一些不相關(guān)結(jié)果混進來,從而使準確率受到影響。類似的,期望提高準確率,將不相關(guān)文檔盡量去除時,務(wù)必要執(zhí)行更“嚴格”的檢索策略,這樣也會使一些相關(guān)的文檔被排除在外,使召回率下降。

            所以為了更清晰的描述兩者間的關(guān)系,通常我們將Precison-Recall用曲線的方式繪制出來,可以簡稱為P-R diagram。常見的形式如下圖所示。(通常曲線是一個逐步向下的走勢,即隨著Recall的提高,Precision逐步降低)

            P-R的其它形態(tài)

            一些特定搜索應(yīng)用,會更關(guān)注搜索結(jié)果中錯誤的結(jié)果。例如,搜索引擎的反作弊系統(tǒng)(Anti-Spam System)會更關(guān)注檢索結(jié)果中混入了多少條作弊結(jié)果。學術(shù)界把這些錯誤結(jié)果稱作假陽性(False Positive)結(jié)果,對這些應(yīng)用,通常選擇用虛報率(Fallout)來統(tǒng)計:

            Fallout和Presion本質(zhì)是完全相同的。只是分別從正反兩方面來計算。實際上是P-R的一個變種。

            再回到上圖,Presion-Recall是一個曲線,用來比較兩個方法的效果往往不夠直觀,能不能對兩者進行綜合,直接反映到一個數(shù)值上呢?為此IR學術(shù)界提出了F值度量(F -Measure)的方法。F-Measure通過Presion和Recall的調(diào)和平均數(shù)來計算,公式為:

            其中參數(shù)λε(0,1)調(diào)節(jié)系統(tǒng)對Precision和Recall的平衡程度。(通常取λ=0.5,此時 

            這里使用調(diào)和平均數(shù)而不是通常的幾何平均或算術(shù)平均,原因是調(diào)和平均數(shù)強調(diào)較小數(shù)值的重要性,能敏感的反映小數(shù)字的變化,因此更適合用來反映檢索效果。

            使用F Measure的好處是只需要一個單一的數(shù)字就可以總結(jié)系統(tǒng)的檢索效果,便于比較不同搜索系統(tǒng)的整體效果。

            P@N方法

            點擊因素

            傳統(tǒng)的Precision-Recall并不完全適用對搜索引擎的評估,原因是搜索引擎用戶的點擊方式有其特殊性,包括:

            A 60-65%的查詢點擊了名列搜索結(jié)果前10條的網(wǎng)頁;  B 20-25%的人會考慮點擊名列11到20的網(wǎng)頁;  C 僅有3-4%的會點擊名列搜索結(jié)果中列第21到第30名的網(wǎng)頁 

            也就是說,絕大部分用戶是不愿意翻頁去看搜索引擎給出的后面的結(jié)果。

            而即使在搜索結(jié)果的首頁(通常列出的是前10條結(jié)果),用戶的點擊行為也很有意思,我們通過下面的Google點擊熱圖(Heat Map)來觀察(這個熱圖在二維搜索結(jié)果頁上通過光譜來形象的表達不同位置用戶的點擊熱度。顏色約靠近紅色表示點擊強度越高):

            從圖中可以看出,搜索結(jié)果的前3條吸引了大量的點擊,屬于熱度最高的部分。也就是說,對搜蘇引擎來說,最前的幾條結(jié)果是最關(guān)鍵的,決定了用戶的滿意程度。

            康乃爾大學的研究人員通過eye tracking實驗獲得了更為精確的Google搜索結(jié)果的用戶行為分析圖。從這張圖中可以看出,第一條結(jié)果獲得了56.38%的搜索流量,第二條和第三條結(jié)果的排名依次降低,但遠低于排名第一的結(jié)果。前三條結(jié)果的點擊比例大約為11:3:2 。而前三條結(jié)果的總點擊幾乎分流了搜索流量的80%。

            另外的一些有趣的結(jié)論是,點擊量并不是按照順序依次遞減的。排名第七位獲得的點擊是最少的,原因可能在于用戶在瀏覽過程中下拉頁面到底部,這時候就只顯示最后三位排名網(wǎng)站,第七名便容易被忽略。而首屏最后一個結(jié)果獲得的注意力(2.55)是大于倒數(shù)第二位的(1.45),原因是用戶在翻頁前,對最后一條結(jié)果印象相對較深。搜索結(jié)果頁面第二頁排名第一的網(wǎng)頁(即總排名11位的結(jié)果)所獲得的點擊只有首頁排名第十網(wǎng)站的40%,與首頁的第一條結(jié)果相比,更是只有其1/60至1/100的點擊量。

            因此在量化評估搜索引擎的效果時,往往需要根據(jù)以上搜索用戶的行為特點,進行針對性的設(shè)計。

            P@N的計算方法

            P@N本身是Precision@N的簡稱,指的是對特定的查詢,考慮位置因素,檢測前N條結(jié)果的準確率。例如對單次搜索的結(jié)果中前5篇,如果有4篇為相關(guān)文檔,則P@5 = 4/5 = 0.8 。

            測試通常會使用一個查詢集合(按照前文所述方法構(gòu)造),包含若干條不同的查詢詞,在實際使用P@N進行評估時,通常使用所有查詢的P@N數(shù)據(jù),計算算術(shù)平均值,用來評判該系統(tǒng)的整體搜索結(jié)果質(zhì)量。

            N的選取

            對用戶來說,通常只關(guān)注搜索結(jié)果最前若干條結(jié)果,因此通常搜索引擎的效果評估只關(guān)注前5、或者前3結(jié)果,所以我們常用的N取值為P@3或P@5等。

            對一些特定類型的查詢應(yīng)用,如尋址類的查詢(Navigational Search),由于目標結(jié)果極為明確,因此在評估時,會選擇N=1(即使用P@1)。舉個例子來說,搜索“新浪網(wǎng)”、或“新浪首頁”,如果首條結(jié)果不是 新浪網(wǎng)(url:www.sina.com.cn),則直接判該次查詢精度不滿足需求,即P@1=0

            MRR

            上述的P@N方法,易于計算和理解。但細心的讀者一定會發(fā)現(xiàn)問題,就是在前N結(jié)果中,排序第1位和第N位的結(jié)果,對準確率的影響是一樣的。但實際情況是,搜索引擎的評價是和排序位置極為相關(guān)的。即排第一的結(jié)果錯誤,和第10位的結(jié)果錯誤,其嚴重程度有天壤之別。因此在評價系統(tǒng)中,需要引入位置這個因素。

            MRR是平均排序倒數(shù)(Mean Reciprocal Rank)的簡稱,MRR方法主要用于尋址類檢索(Navigational Search)或問答類檢索(Question Answering),這些檢索方法只需要一個相關(guān)文檔,對召回率不敏感,而是更關(guān)注搜索引擎檢索到的相關(guān)文檔是否排在結(jié)果列表的前面。MRR方法首先計算每一個查詢的第一個相關(guān)文檔位置的倒數(shù),然后將所有倒數(shù)值求平均。例如一個包含三個查詢詞的測試集,前5結(jié)果分別為:

            查詢一結(jié)果:1.AN 2.AR 3.AN 4.AN 5.AR  查詢二結(jié)果:1.AN 2.AR 3.AR 4.AR 5.AN  查詢?nèi)Y(jié)果:1.AR 2.AN 3.AN 4.AN 5.AR  

            其中AN表示不相關(guān)結(jié)果,AR表示相關(guān)結(jié)果。那么第一個查詢的排序倒數(shù)(Reciprocal Rank)RR1 = 1/2=0.5 ;第二個結(jié)果RR2 = 1/2 = 0.5 ; 注意倒數(shù)的值不變,即使查詢二獲得的相關(guān)結(jié)果更多。同理,RR3= 1/1 = 1。 對于這個測試集合,最終MRR=(RR1+RR2+RR3)/ 3 = 0.67

            然而對大部分檢索應(yīng)用來說,只有一條結(jié)果無法滿足需求,對這種情況,需要更合適的方法來計算效果,其中最常用的是下述MAP方法。

            MAP

            MAP方法是Mean Average Precison,即平均準確率法的簡稱。其定義是求每個相關(guān)文檔檢索出后的準確率的平均值(即Average Precision)的算術(shù)平均值(Mean)。這里對準確率求了兩次平均,因此稱為Mean Average Precision。(注:沒叫Average Average Precision一是因為難聽,二是因為無法區(qū)分兩次平均的意義)

            MAP 是反映系統(tǒng)在全部相關(guān)文檔上性能的單值指標。系統(tǒng)檢索出來的相關(guān)文檔越靠前(rank 越高),MAP就應(yīng)該越高。如果系統(tǒng)沒有返回相關(guān)文檔,則準確率默認為0。

            例如:假設(shè)有兩個主題:

            主題1有4個相關(guān)網(wǎng)頁,主題2有5個相關(guān)網(wǎng)頁。

            某系統(tǒng)對于主題1檢索出4個相關(guān)網(wǎng)頁,其rank分別為1, 2, 4, 7;

            對于主題2檢索出3個相關(guān)網(wǎng)頁,其rank分別為1,3,5。

            對于主題1,平均準確率MAP計算公式為:

            (1/1+2/2+3/4+4/7)/4=0.83。 

            對于主題2,平均準確率MAP計算公式為:

            (1/1+2/3+3/5+0+0)/5=0.45。 

            則MAP= (0.83+0.45)/2=0.64。”

            DCG方法

            DCG是英文Discounted cumulative gain的簡稱,中文可翻譯為“折扣增益值”。DCG方法的基本思想是:

            1. 每條結(jié)果的相關(guān)性分等級來衡量
            2. 考慮結(jié)果所在的位置,位置越靠前的則重要程度越高
            3. 等級高(即好結(jié)果)的結(jié)果位置越靠前則值應(yīng)該越高,否則給予懲罰

            我們首先來看第一條:相關(guān)性分級。這里比計算Precision時簡單統(tǒng)計“準確”或“不準確”要更為精細。我們可以將結(jié)果細分為多個等級。比如常用的3級:Good(好)、Fair(一般)、Bad(差)。對應(yīng)的分值rel為:Good:3 / Fair:2 / Bad:1 。一些更為細致的評估使用5級分類法:Very Good(明顯好)、Good(好)、Fair(一般)、Bad(差)、Very Bad(明顯差),可以將對應(yīng)分值rel設(shè)置為:Very Good:2 / Good:1 / Fair:0 / Bad:-1 / Very Bad: -2

            評判結(jié)果的標準可以根據(jù)具體的應(yīng)用來確定,Very Good通常是指結(jié)果的主題完全相關(guān),并且網(wǎng)頁內(nèi)容豐富、質(zhì)量很高。而具體到每條

            DCG的計算公式并不唯一,理論上只要求對數(shù)折扣因子的平滑性。我個人認為下面的DCG公式更合理,強調(diào)了相關(guān)性,第1、2條結(jié)果的折扣系數(shù)也更合理:

            此時DCG前4個位置上結(jié)果的折扣因子(Discount factor)數(shù)值為:

            i

            log2 (i+1)

            1/log2 (i+1)

            1

            1

            1

            2

            1.59

            0.63

            3

            2

            0.5

            4

            2.32

            0.43

            取以2為底的log值也來自于經(jīng)驗公式,并不存在理論上的依據(jù)。實際上,Log的基數(shù)可以根據(jù)平滑的需求進行修改,當加大數(shù)值時(例如使用log5 代替log2),折扣因子降低更為迅速,此時強調(diào)了前面結(jié)果的權(quán)重。

            為了便于不同類型的query結(jié)果之間橫向比較,以DCG為基礎(chǔ),一些評價系統(tǒng)還對DCG進行了歸一,這些方法統(tǒng)稱為nDCG(即 normalize DCG)。最常用的計算方法是通過除以每一個查詢的理想值iDCG(ideal DCG)來進行歸一,公式為:

            求nDCG需要標定出理想情況的iDCG,實際操作的時候是異常困難的,因為每個人對“最好的結(jié)果”理解往往各不相同,從海量數(shù)據(jù)里選出最優(yōu)結(jié)果是很困難的任務(wù),但是比較兩組結(jié)果哪個更好通常更容易,所以實踐應(yīng)用中,通常選擇結(jié)果對比的方法進行評估。

            怎樣實現(xiàn)自動化的評估?

            以上所介紹的搜索引擎量化評估指標,在Cranfield評估框架(Cranfield Evaluation Framework)中被廣泛使用。業(yè)界知名的TREC(文本信息檢索會議)就一直基于此類方法組織信息檢索評測和技術(shù)交流。除了TREC外,一些針對不同應(yīng)用設(shè)計的Cranfield評測論壇也在進行進行(如 NTCIR、IREX等)。

            但Cranfield評估框架存在的問題是查詢樣例集合的標注上。利用手工標注答案的方式進行網(wǎng)絡(luò)信息檢索的評價是一個既耗費人力、又耗費時間的過程,只有少數(shù)大公司能夠使用。并且由于搜索引擎算法改進、運營維護的需要,檢索效果評價反饋的時間需要盡量縮短,因此自動化的評測方法對提高評估效率十分重要。最常用的自動評估方法是A/B testing系統(tǒng)。

            A/B Testing

            A/B Testing系統(tǒng)

            A/B testing系統(tǒng)在用戶搜索時,由系統(tǒng)來自動決定用戶的分組號(Bucket id),通過自動抽取流量導入不同分支,使得相應(yīng)分組的用戶看到的是不同產(chǎn)品版本(或不同搜索引擎)提供的結(jié)果。用戶在不同版本產(chǎn)品下的行為將被記錄下來,這些行為數(shù)據(jù)通過數(shù)據(jù)分析形成一系列指標,而通過這些指標的比較,最后就形成了各版本之間孰優(yōu)孰劣的結(jié)論。

            在指標計算時,又可細分為兩種方法,一種是基于專家評分的方法;一種是基于點擊統(tǒng)計的方法。

            專家評分的方法通常由搜索核心技術(shù)研發(fā)和產(chǎn)品人員來進行,根據(jù)預(yù)先設(shè)定的標準對A、B兩套環(huán)境的結(jié)果給予評分,獲取每個Query的結(jié)果對比,并根據(jù)nDCG等方法計算整體質(zhì)量。

            點擊評分有更高的自動化程度,這里使用了一個假設(shè):同樣的排序位置,點擊數(shù)量多的結(jié)果質(zhì)量優(yōu)于點擊數(shù)量少的結(jié)果。(即A2表示A測試環(huán)境第2條結(jié)果,如果A2 > B2,則表示A2質(zhì)量更好)。通俗的說,相信群眾(因為群眾的眼睛是雪亮的)。在這個假設(shè)前提下,我們可以將A/B環(huán)境前N條結(jié)果的點擊率自動映射為評分,通過統(tǒng)計大量的Query點擊結(jié)果,可以獲得可靠的評分對比。

            Interleaving Testing

            另外2003年由Thorsten Joachims 等人提出的Interleaving testing方法也被廣泛使用。該方法設(shè)計了一個元搜索引擎,用戶輸入查詢詞后,將查詢詞在幾個著名搜索引擎中的查詢結(jié)果隨機混合反饋給用戶,并收集隨后用戶的結(jié)果點擊行為信息.根據(jù)用戶不同的點擊傾向性,就可以判斷搜索引擎返回結(jié)果的優(yōu)劣,

            如下圖所示,將算法A和B的結(jié)果交叉放置,并分流量進行測試,記錄用戶點擊信息。根據(jù)點擊分布來判斷A和B環(huán)境的優(yōu)劣。

            Interleaving Testing評估方法

            Joachims同時證明了Interleaving Testing評價方法與傳統(tǒng)Cranfield評價方法的結(jié)果具有較高的相關(guān)性。由于記錄用戶選擇檢索結(jié)果的行為是一個不耗費人力的過程,因此可以便捷的實現(xiàn)自動化的搜索效果評估。

            總結(jié)

            沒有評估就沒有進步——對搜索效果的量化評測,目的是準確的找出現(xiàn)有搜索系統(tǒng)的不足(沒有哪個搜索系統(tǒng)是完美的),進而一步一個腳印對算法、系統(tǒng)進行改進。本文為大家總結(jié)了常用的評價框架和評價指標。這些技術(shù)像一把把尺子,度量著搜索技術(shù)每一次前進的距離。


            感謝張凱峰對 本文的審校。

            給InfoQ中文站投稿或者參與內(nèi)容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家加入到InfoQ中文站用戶討論組中與我們的編輯和其他讀者 朋友交流。

            posted @ 2012-12-19 11:03 胡滿超 閱讀(408) | 評論 (0)編輯 收藏

            轉(zhuǎn)自:http://www.itivy.com/ivy/archive/2011/11/24/something-that-architecture-must-be-aware-of.html

            對于大多數(shù)架構(gòu)師而言,“可擴展性”在軟件架構(gòu)方面是最虛無縹緲的說法。這毫不奇怪,因為可擴展性正是如今軟件設(shè)計領(lǐng)域最值得優(yōu)先考慮的要素。然 而,計算機科學家們還無法了解一套單獨的架構(gòu)如何才能擴展至各類應(yīng)用環(huán)境當中。相反,我們在數(shù)量繁多的方案中所設(shè)計出的可擴展性架構(gòu),往往以業(yè)界較為通用 的已知可擴展模式及個人偏好為標準。簡單來講,打造一套具備可擴展性的系統(tǒng)已經(jīng)變得更像是一門藝術(shù)而不單單是技術(shù)。

            我們常常會通過觀摩杰作體會并學習藝術(shù)的精髓,而可擴展性也應(yīng)該遵循同樣的路線!

            在這篇文章中,我將列出數(shù)款為大家所耳熟能詳?shù)目蓴U展性架構(gòu)。通常情況下,架構(gòu)師們完全可以借鑒已知的可擴展架構(gòu)模式,進而創(chuàng)造出新的可擴展架構(gòu)。

            1. LB (負載平衡器) + 無共享單位 - 該模型中包含一系列單元,各單元彼此間不共享任何內(nèi)容,且一致指向一個將輸入文訊按一定條件發(fā)往單元處的負載平衡器(這構(gòu)成一個循 環(huán),以負載等情況為基礎(chǔ))。每個單元可以是一個單獨的節(jié)點或是緊密耦合的節(jié)點所構(gòu)成的集群。用戶可以使用DNS循環(huán)、硬件負載平衡器或者軟件負載平衡器達 成負載平衡效果。創(chuàng)建一套負載均衡的層次結(jié)構(gòu),并在其中結(jié)合前面提到的各種負載平衡器也是可行的。在由Michael Stonebraker撰寫的《 無共享體系架構(gòu)實例 》一文中,專門討論了此類架構(gòu)。
               
            2. LB + 無狀態(tài)節(jié)點 + 可擴展存儲 - 傳統(tǒng)的 三層式Web架構(gòu) 使用的就是這種模型。該模型包括數(shù)個與可擴展存儲交互的無狀態(tài)節(jié)點以及一個分布于節(jié)點間負載中的負載平衡器。在這一模型中,存儲通常作為限制因素存在,但NoSQL存儲則可以利用這套模型創(chuàng)建出具備相當可擴展性的系統(tǒng)。
               
            3. 點對點架構(gòu) (分布式Hash列表 (簡稱DHT)以及內(nèi)容尋址網(wǎng)絡(luò)(簡稱CAN)) -這套模型提供了一些傳統(tǒng)的 可擴展算法,這些算法的各個方面幾乎全部按對數(shù)進行了等比例增加。舉例來說,像Chord、Pastry(特指免費版)以及CAN都屬于此類。而以 Cassandra為代表的、基于P2P架構(gòu)的幾款NoSQL系統(tǒng)也是其中的成員。《 展望P2P系統(tǒng)中的數(shù)據(jù) 》一文就深入探討了這類模型的各種細節(jié)。
               
            4. 分布式隊列 – 這種模型以將隊列實施(即先進先出交付機制)作為網(wǎng)絡(luò)服務(wù)處理為基礎(chǔ)。該模型通過JMS隊列而廣泛得到采用。一般會遵循這種做法的有任務(wù)隊列以及通過保持隊列分級體系實現(xiàn)擴展性的任務(wù)隊列版本,后者在負載無法及時處理時,任務(wù)會由低級層面向高級層面?zhèn)鬟f。
               
            5. 發(fā)布/訂閱模式 - 一般用于通過網(wǎng)絡(luò)向彼此發(fā)布訂閱訊息。《 發(fā)布與訂閱的多面性 》這一經(jīng)典論文中詳細的介紹這一模型,該模型方面最典型的例子即 NaradaBroker與 EventJava 
               
            6. 小道消息與自然靈感式模型 - 這種模型源自日常生活中小道消息的傳播途徑,也就是每個節(jié)點將隨機選擇后續(xù)節(jié)點以交 換信息。正如現(xiàn)實生活中的實際反饋,這種八卦型算法在信息傳播方面出奇地迅速。該模型的另一大分支則是受到生物學影響的啟發(fā)式算法。自然世界中存在著大量 協(xié)調(diào)及擴展方面極為卓越的固有算法。舉例來說,螞蟻、人類以及蜜蜂等等,都能夠以最簡潔的交流方式協(xié)調(diào)好擴展性方面的需要。模型中的算法正是借鑒了這些實 際存在的現(xiàn)象。在論文《 從流行病的蔓延到分布式計算 》中對這種模型有著詳盡的敘述。
               
            7. 地圖縮小/數(shù)據(jù)流 - 這一概念首先由谷歌公司提出,地圖縮小為工作的描述及執(zhí)行提供了一套可擴展的模式。雖然內(nèi)容 簡單,但它仍然成為聯(lián)機分析處理方面的首要處理模式。數(shù)據(jù)流則是一種更先進的方式,用來表達執(zhí)行信息;而像Dryad及Pig這樣的項目為數(shù)據(jù)流的執(zhí)行提 供了可擴展的框架。論文《 地圖縮小:大型集群上的簡化數(shù)據(jù)處理 》中設(shè)置了專門的主題,詳細討論這一內(nèi)容。Apache的Hadoop就是這種模型的代表性產(chǎn)品。
               
            8. 責任樹形圖 - 這種模型打破了遞歸問題的束縛,將整個流程以樹狀形式加以處理;每個父節(jié)點將工作下放至子節(jié)點。這種模型擴展性強,并已經(jīng)被應(yīng)用于數(shù)款可擴展性架構(gòu)當中。
               
            9. 流處理 - 這種模型被用于處理源源不斷的數(shù)據(jù)流及數(shù)據(jù)。這種處理方式通過網(wǎng)絡(luò)中的處理節(jié)點獲得支持(例如Aurora、Twitter Strom以及Apache S4等)。
               
            10. 可擴展存儲 – 該模型的應(yīng)用范圍從數(shù)據(jù)庫、NoSQL存儲、服務(wù)注冊到文件系統(tǒng)都有體現(xiàn)。 鏈接中的這篇文章 以可擴展性為切入點對其進行了深入討論。

            綜上所述,可擴展性的實現(xiàn)只有三種方式,即:分布、緩存及異步處理。前文所提到的各種架構(gòu)事實上都是把這三種方式進行不同組合并加以實施。而另一方 面,不利于可擴展性的因素,除了糟糕的編碼本身,全局性協(xié)調(diào)也起到了重要的影響。簡單來說,任何一種全局性協(xié)調(diào)都會限制系統(tǒng)的可擴展性。本文中所提到的各 種架構(gòu)也只是在做好了本地性協(xié)調(diào),而非全局性協(xié)調(diào)。

            然而,將它們有機地結(jié)合起來以創(chuàng)建一套極具可擴展性的架構(gòu)可不像說起來那么容易,除非我們能找到一種全新的擴展模式。不過經(jīng)驗告訴我們,比起搞一套全新的架構(gòu),采用為我們所熟知且更易駕馭的可擴展性解決方案永遠是更好的選擇。

            posted @ 2012-12-19 10:58 胡滿超 閱讀(477) | 評論 (0)編輯 收藏

            技術(shù)型企業(yè)即要關(guān)注財務(wù)指標和交付指標:產(chǎn)出

            也要關(guān)注貨架建設(shè):技術(shù)積累,員工能力的提升和任職資格

             

            保證產(chǎn)出的同時,保證技術(shù)積累和員工任職資格能力的提升是技術(shù)型企業(yè)必須解決的難題

             

            技術(shù)型企業(yè)的組織建設(shè)的原則:

            1、  有利于按產(chǎn)出線和專業(yè)分工

                基于產(chǎn)出進行核算

                突出資源線、專業(yè)線進行組織設(shè)計

             在專業(yè)技術(shù)領(lǐng)域不增加的情況下,增加項目不增加部門,產(chǎn)出規(guī)模的擴展不會帶來組織規(guī)模的擴張

            2、  有利于建立員工按專業(yè)的職業(yè)生涯設(shè)計,建立個人專業(yè)發(fā)展方向

            3、  有利于對產(chǎn)出按項目 方式進行管理和控制

            4、  有利于按產(chǎn)出建立跨部門的團隊,全流程、全要素地進行項目和產(chǎn)品開發(fā)

            5、  有利于建立委員會對項目進行評審

            6、  保證產(chǎn)品經(jīng)理,市場經(jīng)理,客戶經(jīng)理,項目經(jīng)理在一線,能調(diào)動公司所有資源,為產(chǎn)品線能夠快速響應(yīng)客戶負責

             

            組織建設(shè)不一定一步到位,但活動必須到位,關(guān)鍵人才必須培養(yǎng)

             

            技術(shù)型企業(yè)的活動分類:

             

            一、規(guī)劃類活動

            系統(tǒng)部:產(chǎn)品規(guī)劃

            系統(tǒng)部:技術(shù)規(guī)劃

            市場部:市場規(guī)劃

            市場部:客戶群規(guī)劃

            公司高層:產(chǎn)業(yè)鏈管理的規(guī)劃

            公司高層:資本動作的規(guī)劃

            公司高層:高層人才的引進計劃和規(guī)劃

            公司高層:風險管理的評審機制

             

            二、產(chǎn)出開發(fā)類活動

            預(yù)研、產(chǎn)品開發(fā)、定制項目開發(fā)、解決方案

            技術(shù)開發(fā)支撐產(chǎn)品開發(fā)

            產(chǎn)品開發(fā)支撐解決方案開發(fā)

            三、資源線的管理活動

            支撐管理:財務(wù)管理,項目管理,質(zhì)量管理,人力資源管理

            支持產(chǎn)出管理:營銷部,產(chǎn)品線管理,市場部

             

            典型技術(shù)型企業(yè)組織結(jié)構(gòu):

            1、  委員會:規(guī)劃、評審、決策負責

            2、  產(chǎn)出線:對產(chǎn)出負責,按照項目的方式動作

            3、  資源線:對人的培養(yǎng),成長,知識積累和職業(yè)通道負責

             

            六大分離:

            1、  技術(shù)開發(fā)和產(chǎn)品開發(fā)分離

            技術(shù)體系的核心業(yè)務(wù):

            (1)    構(gòu)建技術(shù)平臺,形成技術(shù)儲備,發(fā)現(xiàn)新的技術(shù)增長點

            (2)    建立技術(shù)標準和技術(shù)規(guī)劃,形成核心技術(shù)以主動引導客戶,在技術(shù)上領(lǐng)先競爭對手,同步培養(yǎng)優(yōu)秀的技術(shù)人員

            產(chǎn)品體系的核心業(yè)務(wù):

            (1)    以成熟的技術(shù)和平臺快速、低成本地滿足客戶要求

            (2)    在周期,成本和可靠性及可生產(chǎn)性,可保障性上領(lǐng)先對手,在市場和財務(wù)指標上構(gòu)建核心競爭力

            預(yù)研體系的核心業(yè)務(wù):

            (1)    對未來的技術(shù)和產(chǎn)品進行探索和研究,形成企業(yè)的技術(shù)儲備

            (2)    提高企業(yè)技術(shù)領(lǐng)域的影響力

            2、  市場體系和銷售體系分離

            引導研發(fā)和高水平的客戶經(jīng)理轉(zhuǎn)入市場部進行市場需求和產(chǎn)品規(guī)劃

            3、  產(chǎn)出線與資源線分離

            4、  決策與職能體系管理及職能體系執(zhí)行分離

            5、  系統(tǒng)設(shè)計與實現(xiàn)相對分離

            鼓勵公司高手參與規(guī)劃和設(shè)計,保證研發(fā)質(zhì)量,低水平研發(fā)人員從實現(xiàn)積累經(jīng)驗,逐步上升到系統(tǒng)級工程師,參與設(shè)計。避免低手做設(shè)計,高手救火的情況發(fā)生。

            6、  開發(fā)與測試和驗證分離

            設(shè)立獨立的測試部門和驗證部門可以有效的保證產(chǎn)品的質(zhì)量

             

            完整的產(chǎn)出線要素:

            1、  面向客戶提供有外部收入或內(nèi)部轉(zhuǎn)換收入的項目或產(chǎn)品

            2、  從需求到交付統(tǒng)一全程管理

            3、  有一個項目總的責任人全程負責

            4、  涉及產(chǎn)出的所有元素,研發(fā),銷售,市場,采購,生產(chǎn)及中試測試,以矩陣方式參與并為產(chǎn)出統(tǒng)一服務(wù),由產(chǎn)出線進行統(tǒng)一績效管理

             

            產(chǎn)出線五種表現(xiàn)形態(tài):

            1、  產(chǎn)品開發(fā)項目

            2、  預(yù)研項目

            3、  技術(shù)平臺開發(fā)項目

            4、  定制項目

            5、  管理項目:管理體系建設(shè)也可以立項,通過項目管理的方式來推進和完成

             

            產(chǎn)出線的組織層次分為四層:

            決策層:IRB,對項目資源策略負責

            管理層:IPMT,對產(chǎn)品的市場成功和財務(wù)成功負責

            執(zhí)行層:PDT,對項目從立項到發(fā)布負責

            維護服務(wù)層:LMT,對產(chǎn)品生命周期管理及更改負責

             

            產(chǎn)品經(jīng)理與項目經(jīng)理的區(qū)別

            1、  產(chǎn)品經(jīng)理是一個固定的職位,項目經(jīng)理是一個臨時性的職位

            2、  產(chǎn)品經(jīng)理管理所有的產(chǎn)品版本,V版本,R版本,M版本,項目經(jīng)理管理目前的R版本

            3、  在新產(chǎn)品開發(fā)時,產(chǎn)品經(jīng)理兼任項目經(jīng)理

            4、  產(chǎn)品經(jīng)理對產(chǎn)品的全生命周期的管理負責,是例行職位,項目經(jīng)理對產(chǎn)品開發(fā)全過程負責,是一個項目職位

            5、  產(chǎn)品規(guī)模小時,產(chǎn)品經(jīng)理兼任項目經(jīng)理;規(guī)模大時,產(chǎn)品經(jīng)理主要負責老產(chǎn)品推廣,項目經(jīng)理負責新產(chǎn)品開發(fā),項目經(jīng)理向產(chǎn)品經(jīng)理匯報

             

            資源經(jīng)理與項目經(jīng)理區(qū)別:

            1、  項目經(jīng)理對產(chǎn)出負責,資源經(jīng)理對資源負責,對人的任職資格通道負責

            2、  項目經(jīng)理是臨時職位,負責項目開發(fā),對交付負責;資源經(jīng)理是固定職位,負責人的培養(yǎng),專業(yè)發(fā)展

            3、  資源經(jīng)理是一個資源池的管理者,項目經(jīng)理從資源經(jīng)理處承接資源,或委托資源經(jīng)理承接開發(fā)任務(wù)

            4、  資源經(jīng)理管理人員的固定績效,項目經(jīng)理管理人員的變動績效

             

            實施矩陣管理必須具備的條件:

            1、  企業(yè)要具備承諾文化

            2、  產(chǎn)品線與資源線劃分合理

            3、  單項目管理和多項目管理分離,項目經(jīng)理管單項目,項目管理部管理多項目

            4、  三級計劃體系結(jié)構(gòu)清晰,層次合理

            5、  項目流程清晰,大項目可以劃分成多個小項目,實現(xiàn)資源分階段投入和評審

            6、  需求管理流程初步實現(xiàn),保證一段時間內(nèi)項目需求規(guī)劃的準確性

             

            矩陣管理三種模式:

            強矩陣:參加項目的人直接由項目經(jīng)理管理

            弱矩陣:一個人同時參加兩個以上的項目,匯報給資源經(jīng)理,抄送給項目經(jīng)理

            混合矩陣:一部分參與強矩陣團隊,一部分參與弱矩陣團隊

             

            不是所有的企業(yè)都要實施矩陣管理,實施矩陣管理必須完成一些基礎(chǔ)建設(shè)

            posted @ 2012-12-18 14:44 胡滿超 閱讀(498) | 評論 (0)編輯 收藏

            企業(yè)典型的考核辦法

            缺少的配套措施

            導致的結(jié)果

            平衡記分卡、嚴格的KPI制度

            沒有考慮研發(fā)過程的難度與風險評估,尤其是技術(shù)攻關(guān)和技術(shù)探索

            高手做高風險項目不如低手做低風險項目收益大,無法鼓勵優(yōu)秀的研發(fā)人員創(chuàng)新

            實行矩陣管理,對項目進行考核,項目周期長,一個人長期承擔多個項目開發(fā)

            沒有按階段把大項目規(guī)劃成小項目

            績效管理工作量巨大,績效管理變成了簡單應(yīng)付

            對研發(fā)人員進行強制分布

            沒有任職資格建設(shè),沒有規(guī)定行為準則,不先對項目進考核

            業(yè)績好的團隊和業(yè)績差的團隊區(qū)別不大,影響了業(yè)績好的團隊的績效管理

             

            不進行財務(wù)成本考核

            研發(fā)人員沒有組織績效,只注重個人能力的提升,鉆研新技術(shù),最終企業(yè)研發(fā)人員能力提升了,但是企業(yè)組織績效沒有提高

             

             

             

             

            研發(fā)績效需要區(qū)分以下誤區(qū):

            1、  區(qū)分組織績效和個人績效,組織績效主要是市場和財務(wù)的成功,個人績效必須在組織績效上進行分解

            2、  組織績效的首要任務(wù)是在老產(chǎn)品改進上的毛利率提升,其次才是新產(chǎn)品、新技術(shù)的開發(fā)

            3、  將預(yù)研,產(chǎn)品開發(fā)和需求及規(guī)劃人員的績效考核進行區(qū)分,產(chǎn)品開發(fā)人員必須與當年所支撐的產(chǎn)品收入掛鉤,預(yù)研人員可以與三年內(nèi)預(yù)研成果轉(zhuǎn)化成產(chǎn)品成果所帶來的收入掛鉤

            4、  研發(fā)人員的能力,過程和結(jié)果及項目的關(guān)鍵點分別以不同的績效手段管理和考核

            5、  盡量將項目劃分成一個個階段,減少每個階段的時間,使得一個人在一段時間內(nèi)盡量承接的項目少,實現(xiàn)精力聚集的同時,減少績效考核的工作量

            6、  將產(chǎn)品維護工作與產(chǎn)品開發(fā)的工作分開,產(chǎn)品維護的項目按任務(wù)數(shù)進行考核,產(chǎn)品開發(fā)的項目按計劃進度及質(zhì)量要素考核

            7、  建立任職資格,將不同層級的研發(fā)人員的考核模式與薪酬結(jié)構(gòu)分開,低層次人員主要考核基本行為規(guī)范,中,高級人員的考核應(yīng)該結(jié)合過程考核結(jié)果,高層次人員主要考核結(jié)果

            8、  創(chuàng)新性的預(yù)研工作主要考核領(lǐng)軍人物的任職資格

             

            績效管理的五種手段:

            1、  任職資格:對員工的能力進行評價

            2、  行為準則:每一個職位必做的相關(guān)工作職位要求活動的基本要求,PI(Performance Indicator)

            3、  PCB(Personal Business Commitments)主要對員工的過程進行評價,來自年度,季度計劃,必須完成的一些工作

            4、  KPI(Key Performance Indicator)關(guān)鍵績效指標,通常對組織進行考核,來自企業(yè)的發(fā)展戰(zhàn)略財務(wù)指標、市場指標及必須要解決的問題,更多的是強調(diào)組織績效,強調(diào)實現(xiàn)戰(zhàn)略目標的挑戰(zhàn)性指標

            5、  KCP:(Key Control Point)對項目關(guān)鍵路徑上的關(guān)鍵資源的活動進行績效管理,以區(qū)分項目成功的貢獻和風險

             

            不同層級、不同類別的研發(fā)人員的考核手段:

            1、  高層管理人員:KPIKPC和任職資格

            2、  預(yù)研人員:任職資格、KCPPBC

            3、  產(chǎn)品開發(fā)的高級別人員:KPI、任職資格、PBC

            4、  產(chǎn)品開發(fā)的低級別人員:行為準則、任職資格、PBC

            5、  研發(fā)體系的職能部門:最好不要考核KPI,主要考核其任職資格和行為準則及PBC

             

            薪酬包:

            1、  基本工資:任職資格

            2、  扣款:行為準則

            3、  月度/季度績效資金:PBC

            4、  年度績效獎金:KPI

            5、  項目特別獎勵:KCP

             

            組織績效考核工具是KPI,承接單位為營銷體系,研發(fā)體系。

            KPI是組織考核工具,個人KPI必須建立在組織KPI的基礎(chǔ)之上。

             

            公司級KPI指標通常包括五類指標:

            1、  銷售收入及增長率

            2、  新業(yè)務(wù)在銷售中所占的比例

            3、  人均創(chuàng)造利潤空間及增長率

            4、  核心技術(shù)平臺上收入所占比重

            5、  核心競爭力提升的四大指標:

            (1)    產(chǎn)品收入、利潤收入、區(qū)域收入及客戶群收入結(jié)構(gòu)的合理性

            (2)    商業(yè)模式及產(chǎn)業(yè)鏈競爭能力的合理性

            (3)    組織層次合理性及人員結(jié)構(gòu)的合理性

            (4)    高質(zhì)量的快速的產(chǎn)品交付能力

             

            任職資格管理:某公司的研發(fā)人員分級

            一、基本條件:經(jīng)歷,學歷,現(xiàn)職狀況

            二、參考項:績效情況,品行

            三、資格標準:業(yè)務(wù)活動,基本素質(zhì),知識技能

             

            七級

             

            六級

            完整的系統(tǒng)方案設(shè)計和需求分析的過程

            五級

            原型設(shè)計到工程設(shè)計到小批量設(shè)計到產(chǎn)品轉(zhuǎn)產(chǎn)的過程經(jīng)歷

            四級

            市場的經(jīng)歷

            三級

            技術(shù)支持和售后服務(wù)的經(jīng)歷

            二級

            有測試的經(jīng)歷

            一級

             

             

            KCP管理要點:

            1、  是否在關(guān)鍵項目的關(guān)鍵路徑上

            2、  是否要付出個人額外的努力

            3、  是否有獨特貢獻

            4、  是否是關(guān)鍵資源

            5、  是否冒一定的風險

            6、  是否代表一定的價值導向

             

            績效管理結(jié)果分布:

            工資、職位:對現(xiàn)在的肯定

            資金:對過去的肯定

            福利、補貼、帶薪休假:公共福利

            期權(quán)、股票、分紅、培訓、出國考察、導師制、崗位輪換:對未來肯定

            posted @ 2012-12-18 14:42 胡滿超 閱讀(1143) | 評論 (0)編輯 收藏

            技術(shù)型企業(yè)即要關(guān)注財務(wù)指標和交付指標:產(chǎn)出

            也要關(guān)注貨架建設(shè):技術(shù)積累,員工能力的提升和任職資格

             

            保證產(chǎn)出的同時,保證技術(shù)積累和員工任職資格能力的提升是技術(shù)型企業(yè)必須解決的難題

             

            技術(shù)型企業(yè)的組織建設(shè)的原則:

            1、  有利于按產(chǎn)出線和專業(yè)分工

                基于產(chǎn)出進行核算

                突出資源線、專業(yè)線進行組織設(shè)計

             在專業(yè)技術(shù)領(lǐng)域不增加的情況下,增加項目不增加部門,產(chǎn)出規(guī)模的擴展不會帶來組織規(guī)模的擴張

            2、  有利于建立員工按專業(yè)的職業(yè)生涯設(shè)計,建立個人專業(yè)發(fā)展方向

            3、  有利于對產(chǎn)出按項目 方式進行管理和控制

            4、  有利于按產(chǎn)出建立跨部門的團隊,全流程、全要素地進行項目和產(chǎn)品開發(fā)

            5、  有利于建立委員會對項目進行評審

            6、  保證產(chǎn)品經(jīng)理,市場經(jīng)理,客戶經(jīng)理,項目經(jīng)理在一線,能調(diào)動公司所有資源,為產(chǎn)品線能夠快速響應(yīng)客戶負責

             

            組織建設(shè)不一定一步到位,但活動必須到位,關(guān)鍵人才必須培養(yǎng)

             

            技術(shù)型企業(yè)的活動分類:

             

            一、規(guī)劃類活動

            系統(tǒng)部:產(chǎn)品規(guī)劃

            系統(tǒng)部:技術(shù)規(guī)劃

            市場部:市場規(guī)劃

            市場部:客戶群規(guī)劃

            公司高層:產(chǎn)業(yè)鏈管理的規(guī)劃

            公司高層:資本動作的規(guī)劃

            公司高層:高層人才的引進計劃和規(guī)劃

            公司高層:風險管理的評審機制

             

            二、產(chǎn)出開發(fā)類活動

            預(yù)研、產(chǎn)品開發(fā)、定制項目開發(fā)、解決方案

            技術(shù)開發(fā)支撐產(chǎn)品開發(fā)

            產(chǎn)品開發(fā)支撐解決方案開發(fā)

            三、資源線的管理活動

            支撐管理:財務(wù)管理,項目管理,質(zhì)量管理,人力資源管理

            支持產(chǎn)出管理:營銷部,產(chǎn)品線管理,市場部

             

            典型技術(shù)型企業(yè)組織結(jié)構(gòu):

            1、  委員會:規(guī)劃、評審、決策負責

            2、  產(chǎn)出線:對產(chǎn)出負責,按照項目的方式動作

            3、  資源線:對人的培養(yǎng),成長,知識積累和職業(yè)通道負責

             

            六大分離:

            1、  技術(shù)開發(fā)和產(chǎn)品開發(fā)分離

            技術(shù)體系的核心業(yè)務(wù):

            (1)    構(gòu)建技術(shù)平臺,形成技術(shù)儲備,發(fā)現(xiàn)新的技術(shù)增長點

            (2)    建立技術(shù)標準和技術(shù)規(guī)劃,形成核心技術(shù)以主動引導客戶,在技術(shù)上領(lǐng)先競爭對手,同步培養(yǎng)優(yōu)秀的技術(shù)人員

            產(chǎn)品體系的核心業(yè)務(wù):

            (1)    以成熟的技術(shù)和平臺快速、低成本地滿足客戶要求

            (2)    在周期,成本和可靠性及可生產(chǎn)性,可保障性上領(lǐng)先對手,在市場和財務(wù)指標上構(gòu)建核心競爭力

            預(yù)研體系的核心業(yè)務(wù):

            (1)    對未來的技術(shù)和產(chǎn)品進行探索和研究,形成企業(yè)的技術(shù)儲備

            (2)    提高企業(yè)技術(shù)領(lǐng)域的影響力

            2、  市場體系和銷售體系分離

            引導研發(fā)和高水平的客戶經(jīng)理轉(zhuǎn)入市場部進行市場需求和產(chǎn)品規(guī)劃

            3、  產(chǎn)出線與資源線分離

            4、  決策與職能體系管理及職能體系執(zhí)行分離

            5、  系統(tǒng)設(shè)計與實現(xiàn)相對分離

            鼓勵公司高手參與規(guī)劃和設(shè)計,保證研發(fā)質(zhì)量,低水平研發(fā)人員從實現(xiàn)積累經(jīng)驗,逐步上升到系統(tǒng)級工程師,參與設(shè)計。避免低手做設(shè)計,高手救火的情況發(fā)生。

            6、  開發(fā)與測試和驗證分離

            設(shè)立獨立的測試部門和驗證部門可以有效的保證產(chǎn)品的質(zhì)量

             

            完整的產(chǎn)出線要素:

            1、  面向客戶提供有外部收入或內(nèi)部轉(zhuǎn)換收入的項目或產(chǎn)品

            2、  從需求到交付統(tǒng)一全程管理

            3、  有一個項目總的責任人全程負責

            4、  涉及產(chǎn)出的所有元素,研發(fā),銷售,市場,采購,生產(chǎn)及中試測試,以矩陣方式參與并為產(chǎn)出統(tǒng)一服務(wù),由產(chǎn)出線進行統(tǒng)一績效管理

             

            產(chǎn)出線五種表現(xiàn)形態(tài):

            1、  產(chǎn)品開發(fā)項目

            2、  預(yù)研項目

            3、  技術(shù)平臺開發(fā)項目

            4、  定制項目

            5、  管理項目:管理體系建設(shè)也可以立項,通過項目管理的方式來推進和完成

             

            產(chǎn)出線的組織層次分為四層:

            決策層:IRB,對項目資源策略負責

            管理層:IPMT,對產(chǎn)品的市場成功和財務(wù)成功負責

            執(zhí)行層:PDT,對項目從立項到發(fā)布負責

            維護服務(wù)層:LMT,對產(chǎn)品生命周期管理及更改負責

             

            產(chǎn)品經(jīng)理與項目經(jīng)理的區(qū)別

            1、  產(chǎn)品經(jīng)理是一個固定的職位,項目經(jīng)理是一個臨時性的職位

            2、  產(chǎn)品經(jīng)理管理所有的產(chǎn)品版本,V版本,R版本,M版本,項目經(jīng)理管理目前的R版本

            3、  在新產(chǎn)品開發(fā)時,產(chǎn)品經(jīng)理兼任項目經(jīng)理

            4、  產(chǎn)品經(jīng)理對產(chǎn)品的全生命周期的管理負責,是例行職位,項目經(jīng)理對產(chǎn)品開發(fā)全過程負責,是一個項目職位

            5、  產(chǎn)品規(guī)模小時,產(chǎn)品經(jīng)理兼任項目經(jīng)理;規(guī)模大時,產(chǎn)品經(jīng)理主要負責老產(chǎn)品推廣,項目經(jīng)理負責新產(chǎn)品開發(fā),項目經(jīng)理向產(chǎn)品經(jīng)理匯報

             

            資源經(jīng)理與項目經(jīng)理區(qū)別:

            1、  項目經(jīng)理對產(chǎn)出負責,資源經(jīng)理對資源負責,對人的任職資格通道負責

            2、  項目經(jīng)理是臨時職位,負責項目開發(fā),對交付負責;資源經(jīng)理是固定職位,負責人的培養(yǎng),專業(yè)發(fā)展

            3、  資源經(jīng)理是一個資源池的管理者,項目經(jīng)理從資源經(jīng)理處承接資源,或委托資源經(jīng)理承接開發(fā)任務(wù)

            4、  資源經(jīng)理管理人員的固定績效,項目經(jīng)理管理人員的變動績效

             

            實施矩陣管理必須具備的條件:

            1、  企業(yè)要具備承諾文化

            2、  產(chǎn)品線與資源線劃分合理

            3、  單項目管理和多項目管理分離,項目經(jīng)理管單項目,項目管理部管理多項目

            4、  三級計劃體系結(jié)構(gòu)清晰,層次合理

            5、  項目流程清晰,大項目可以劃分成多個小項目,實現(xiàn)資源分階段投入和評審

            6、  需求管理流程初步實現(xiàn),保證一段時間內(nèi)項目需求規(guī)劃的準確性

             

            矩陣管理三種模式:

            強矩陣:參加項目的人直接由項目經(jīng)理管理

            弱矩陣:一個人同時參加兩個以上的項目,匯報給資源經(jīng)理,抄送給項目經(jīng)理

            混合矩陣:一部分參與強矩陣團隊,一部分參與弱矩陣團隊

             

            不是所有的企業(yè)都要實施矩陣管理,實施矩陣管理必須完成一些基礎(chǔ)建設(shè)

            posted @ 2012-12-18 14:40 胡滿超 閱讀(388) | 評論 (0)編輯 收藏
            僅列出標題
            共5頁: 1 2 3 4 5 
            国产三级观看久久| 久久精品中文无码资源站| 久久久久99精品成人片直播| 日本加勒比久久精品| 开心久久婷婷综合中文字幕| 国产精品久久久久乳精品爆| 国产2021久久精品| 国产精品成人99久久久久91gav| 久久99精品国产| 美女写真久久影院| 91精品婷婷国产综合久久| 国产精品欧美久久久久天天影视| 久久亚洲国产欧洲精品一| 久久精品国产一区| AAA级久久久精品无码区| 国产视频久久| 久久综合久久鬼色| 亚洲伊人久久综合影院| 久久久久人妻一区二区三区| 久久精品国产日本波多野结衣| 久久精品青青草原伊人| 囯产精品久久久久久久久蜜桃| 99久久免费只有精品国产| 99久久人人爽亚洲精品美女| 久久精品国产精品亚洲人人| 欧美精品丝袜久久久中文字幕| 色99久久久久高潮综合影院| 久久亚洲AV成人无码软件| 亚洲成色WWW久久网站| 国产精品久久久久jk制服| 囯产极品美女高潮无套久久久| 久久精品国产99久久久| 亚洲国产精品久久久久婷婷软件| 国产香蕉97碰碰久久人人| 亚洲&#228;v永久无码精品天堂久久 | 97r久久精品国产99国产精| 亚洲国产成人久久综合碰碰动漫3d| 久久av免费天堂小草播放| 国产精品99久久久精品无码 | 久久亚洲精品国产精品婷婷| 久久综合给久久狠狠97色|