演算法歸約
① 給個演算法
名次依次是:D B A E C
每人只有兩句話,你只要假設著試一下就可以了
關於演算法,這是一個SAT問題,SAT問題是沒有很好的解法的,你可以查一下SAT問題的解法。注意這只是普通SAT問題,不是2-SAT 。
可能最快的辦法,你把它歸約為精確覆蓋用DancingLinks搜索吧
② 數據規約方法有哪些
一、數據歸約基本知識:
對於小型或中型數據集,一般的數據預處理步驟已經足夠。但對真正大型數據集來講,在應用數據挖掘技術以前,更可能採取一個中間的、額外的步驟-數據歸約。本步驟中簡化數據的主題是維歸約,主要問題是是否可在沒有犧牲成果質量的前提下,丟棄這些已准備和預處理的數據,能否在適量的時間和空間里檢查已准備的數據和已建立的子集。
對數據的描述,特徵的挑選,歸約或轉換是決定數據挖掘方案質量的最重要問題。在實踐中,特徵的數量可達到數百,如果我們只需要上百條樣本用於分析,就需要進行維歸約,以挖掘出可靠的模型;另一方面,高維度引起的數據超負,會使一些數據挖掘演算法不實用,唯一的方法也就是進行維歸約。預處理數據集的3個主要維度通常以平面文件的形式出現:列(特徵),行(樣本)和特徵的值,數據歸約過程也就是三個基本操作:刪除列,刪除行,減少列中的值。
在進行數據挖掘准備時進行標准數據歸約操作,我們需要知道從這些操作中我們會得到和失去什麼,全面的比較和分析涉及到如下幾個方面的參數:
(1)計算時間:較簡單的數據,即經過數據歸約後的結果,可減少數據挖掘消耗的時間。
(2)預測/描述精度:估量了數據歸納和概括為模型的好壞。
(3)數據挖掘模型的描述:簡單的描述通常來自數據歸約,這樣模型能得到更好理解。
數據歸約演算法特徵:
(1)可測性
(2)可識別性
(3)單調性
(4)一致性
(5)收益增減
(6)中斷性
(7)優先權
二、數據歸約方法:
1、特徵歸約:
用相應特徵檢索數據通常不只為數據挖掘目的而收集,單獨處理相關特徵可以更有效,我們希望選擇與數據挖掘應用相關的數據,以達到用最小的測量和處理量獲得最好的性能。特徵歸約處理的效果:
(1)更少的數據,提高挖掘效率
(2)更高的數據挖掘處理精度
(3)簡單的數據挖掘處理結果
(4)更少的特徵。
和生成歸約後的特徵集有關的標准任務有兩個:
(1)特徵選擇:基於應用領域的知識和挖掘目標,分析者可以選擇初始數據集中的一個特徵子集。特徵排列演算法,最小子集演算法
(2)特徵構成:特徵構成依賴於應用知識。
特徵選擇的目標是要找出特徵的一個子集,此子集在數據挖掘的性能上比得上整個特徵集。特徵選擇的一種可行技術是基於平均值和方差的比較,此方法的主要缺點是特徵的分布未知。最優方法的近似:
(1)只對有前景的特徵子集進行檢查
(2)用計算簡單的距離度量替換誤差度量
(3)只根據大量數據的子集選擇特徵。
③ 請教:什麼叫規約,規約是怎麼轉換的
規約
就是族人必須遵守的規則, 如: 家法。
程序設計中的規約: ∏和∏'是兩個判定性問題,如果存在一個確定性演算法A使得對於一個∏的實例I,A可以將I在多項式時間里轉換成∏'的實例P,使得I得到肯定的回答,當且僅當I'得到肯定回答,則稱∏在多項式時間里規約到∏',記為∏∝poly∏'.
④ 演算法優先分析法每次都是對什麼進行歸約
最左素短語
⑤ 簡述算符優先歸約和規范規約的區別
算符優先歸約(又叫做算符優先分析法)和規范規約(又叫做最左推導)之間有3點不同,具體介紹如下:
一、兩者的適用范圍不同:
1、算符優先歸約(又叫做算符優先分析法)的適用范圍:適用於計算機領域。
2、規范規約(又叫做最左推導)的適用范圍:數學、物理、計算機等學術領域。
二、兩者的含義不同:
1、算符優先歸約(又叫做算符優先分析法)的含義:如果G是一個不含空字元的演算法文法,那麼只要它的任一對終結符都至多隻滿足>,=,<的關系的其中一種,則稱g是一個算符優先文法。< p=""><!--的關系的一種,則稱g是一個算符優先文法。
2、規范規約(又叫做最左推導)的含義:若x和y是符號串α中有兩個以上的非終結符號時,對推導的每一步堅持把α中的最左非終結符號進行替換,稱為最左推導。
三、兩者的使用不同:
1、算符優先歸約(又叫做算符優先分析法)的使用:只考慮算符(終結符)之間的優先關系,分析掃描每個規約式的算符間優先關系。
2、規范規約(又叫做最左推導)的使用:x和y是符號串,若使用若干次產生式可以從x變換出y,則稱x推導出y(或者說y是x的推導),記為xy。
⑥ 什麼是歸約演算法
歸約不是一種具體演算法,是一種思想、一種方法。通過對原問題的抽象和建模生成一個等價的另一問題,然後通過解決這個新問題來達到解決原問題的目的。
⑦ 4圓盤梵塔難題歸約圖
A -> B
A -> C
B -> C
A -> B
C -> A
C -> B
A -> B
A -> C
B -> C
B -> A
C -> A
B -> C
A -> B
A -> C
B -> C
Use 15 step(s) to finish the moving.
//file: hanoi.h
#include <iostream>
#include <vector>
using namespace std;
static const char *name__hanoi[3] = {"A", "B", "C"};
class Hanoi{
public:
typedef enum{SRC, TMP, DST, NPILLAR} pillar_t;
private:
vector < vector <int> > pillars;
const char * pillar2s(pillar_t pillar)
{
return name__hanoi[pillar];
}
void move1(pillar_t dst, pillar_t src)
{
int i_val = pillars[src][pillars[src].size()-1];
pillars[dst].push_back(i_val);
pillars[src].pop_back();
cout << pillar2s(src) << " -> " << pillar2s(dst) << endl;
}
int moven(pillar_t dst, pillar_t src, size_t n)
{
pillar_t tmp = (pillar_t)((SRC+DST+TMP) - dst - src);
if(n>1){
int total;
total = moven(tmp, src, n-1);
move1(dst, src);
total ++;
total += moven(dst, tmp, n-1);
return total;
}
else{
move1(dst, src);
return 1;
}
}
public:
explicit Hanoi(unsigned n):pillars(NPILLAR)
{
for(unsigned i=1; i<=n; i++)
pillars[SRC].push_back(n);
}
int move()
{
return moven(DST, SRC, pillars[SRC].size());
}
};
//file: test.cpp
#include "hanoi.h"
int main(int argc, char *argv[])
{
Hanoi hanoi(4);
int steps;
steps = hanoi.move();
std::cout << "Use " << steps << " step(s) to finish the moving.\n";
return 0;
}
⑧ 算符優先方法用什麼定義可歸約串
算符文法:即它的任一產生式的右部都不含兩個相繼的非終結符的文法。如果G是一個不含空字元的演算法文法,那麼只要它的任一對終結符都至多隻滿足>,=,<的關系的其中一種,則稱g是一個算符優先文法。< p=""><!--的關系的一種,則稱g是一個算符優先文法。
對於一個算符優先文法,只要能構造出它的算符優先表,就可以利用算符優先分析方法,分析一個句子是否符合這個文法的定義。
那麼定義FirstVT(P)={a|P(+=>)a···或P(+=>)Qa···,a屬於終結字元集,而Q屬於非終結字元集},其中···表示所有字元集
LastVT(P)={a|P(+=>)···a或P(+=>)···aQ,a屬於終結字元集,而Q屬於非終結字元集}
由以下兩條規則來構造FirstVT集:
(1) 若有產生式P=>a···、或P=>Qa···,則a屬於FirstVT(P);
(2) 若有a屬於FirstVT(Q),且有產生式P=>Q···,則a屬於FirstVT(P);
類似的有構造LastVT集的規則:
(1) 若有產生式P=>···a或P=>···aQ,則a屬於LastVT集。
(2) 若a屬於LastVT(Q),且有產生式P=>···Q,則a屬於LastVT(P)集。
⑨ 在密碼學中,什麼叫緊歸約
密碼學(在西歐語文中,源於希臘語kryptós「隱藏的」,和gráphein「書寫」)是研究如何隱密地傳遞信息的學科。在現代特別指對信息以及其傳輸的數學性研究,常被認為是數學和計算機科學的分支,和資訊理論也密切相關。著名的密碼學者Ron Rivest解釋道:「密碼學是關於如何在敵人存在的 環境中通訊」,自工程學的角度,這相當於密碼學與純數學的異同。密碼學是信息安全等相關議題,如認證、訪問控制的核心。密碼學的首要目的是隱藏信息的涵義,並不是隱藏信息的存在。密碼學也促進了計算機科學,特別是在於電腦與網路安全所使用的技術,如訪問控制與信息的機密性。密碼學已被應用在日常生活:包括 自動櫃員機的 晶元卡、電腦使用者存取密碼、電子商務等等。密碼是通信雙方按約定的法則進行信息特殊變換的一種重要保密手段。依照這些法則,變明文為密文,稱為加密變換;變密文為明文,稱為脫密變換。密碼在早期僅對文字或數碼進行加、脫密變換,隨著通信技術的發展,對語音、 圖像、 數據等都可實施加、脫密變換。密碼是通信雙方按約定的 法則進行信息特殊變換的一種重要保密手段。依照這些法則,變明文為密文,稱為加密變換;變密文為明文,稱為脫密變換。密碼在早期僅對文字或數碼進行加、脫密變換,隨著通信 技術的發展,對語音,圖像,數據等都可實施加、脫密變換。
⑩ 怎樣簡單明了的解釋KMP演算法
map 根據輸入的映射函數,將一個集合映射為另一個集合,比如:
輸入集合為 {1,2,3,4,5},輸入的函數為 f(x) = x^2,那麼輸出的集合就是 {1,4,9,16,25}。
rece 就是根據輸入的歸約函數,將集合(一般指map輸出的集合)歸約,比如上面的輸出集合是 {1,4,9,16,25},假設我們的歸約函數是 f(x,y) = x + y, 那麼 rece 的過程就是 {5,9,16,25} -> {14,16,25} -> {30,25} -> {55}。
我們使用 Java8 來描述這個過程:
int result = IntStream.range(1, 6) // 獲得集合 {1,2,3,4,5} .map(x -> x * x) // 映射為 {1,4,9,16,25} .rece((x, y) -> x + y) // 歸約 .getAsInt(); // 獲得結果System.out.println(result);結果: