Nhảy chuyển tới nội dung

Thuật toán

本页使用了标题或全文手工转换
Duy cơ bách khoa, tự do bách khoa toàn thư
Ứng đối bóng đèn không lượng đơn giản thuật toánLưu trình đồ

Thuật toán( tiếng Anh:algorithm), ởToán học(Toán học) cùngMáy tính khoa họcBên trong, chỉ một cái bị định nghĩa tốt, máy tính khả thi hành này chỉ thị hữu hạn bước đi hoặc thứ tự[1],Thường dùng vớiTính toán,Số liệu xử lýCùngTự động trinh thám.Thuật toán có thể sử dụng điều kiện câu nói thông qua các loại con đường dời đi số hiệu chấp hành ( xưng là tự động quyết sách ), cũng suy luận ra hữu hiệu suy luận ( xưng là tự động trinh thám ), cuối cùng thực hiện tự động hoá.

Tương phản,Dẫn dắt thứcLà một loại giải quyết vấn đề phương pháp, khả năng không có hoàn toàn chỉ định, cũng có thể không thể bảo đảm chính xác hoặc tối ưu kết quả, đặc biệt là ở không có minh xác định nghĩa chính xác hoặc tối ưu kết quả vấn đề lĩnh vực.[2]Tỷ như, xã giao truyền thôngĐề cử hệ thốngỶ lại với dẫn dắt thức, cứ việc ở 21 thế kỷ lưu hành truyền thông trung bị rộng khắp xưng làThuật toán,Nhưng bởi vì vấn đề tính chất, nó vô pháp cung cấp chính xác kết quả.

Sớm tại nếm thử giải quyếtHilbertĐưa raPhán định vấn đềKhi, thuật toán không hoàn chỉnh khái niệm đã bước đầu định hình; ở sau đó chính thức hóa giai đoạn người trong nhóm nếm thử đi định nghĩa “Hữu hiệu nhưng tính toán tính(Tiếng Anh:Effective calculability)[3]”Hoặc là “Hữu hiệu phương pháp(Tiếng Anh:Effective method)[4]”.Này đó nếm thử bao gồmKohl đặc · Gödel,Jacques · ai ngươi BrownCùngSteven · Cole · khắc lai niPhân biệt với 1930 năm, 1934 năm cùng 1935 năm đưa raĐệ quy hàm số,A Long tá · khâu kỳVới 1936 năm đưa raλ tính toán,1936 nămEmir · Leon · phách tư đặc(Tiếng Anh:Emil Leon Post)Ba Tư đặc - đồ linh cơCùngAlan Turing1937 năm đưa raĐồ linh cơ.Cho dù ở lập tức, vẫn như cũ thường có phù hợp trực giác ý tưởng khó có thể định nghĩa vì hình thức hóa thuật toán tình huống.[5]

Thuật toán làHữu hiệu phương pháp(Tiếng Anh:Effective method),Bao hàm một loạt định nghĩa rõ ràng mệnh lệnh[6],Cũng nhưng vớiHữu hạnThời gian cập không gian nội rõ ràng thuyết minh ra tới[7].Thuật toán trung mệnh lệnh miêu tả chính là một cáiTính toán,NóChấp hành(Tiếng Anh:Execution ( computing ))Khi từ một cái mới bắt đầu trạng thái cùng mới bắt đầu đưa vào ( khả năng vìKhông) bắt đầu,[8]Trải qua một loạtHữu hạn[9]Mà rõ ràng định nghĩa trạng thái cuối cùng sinh raPhát ra[10]CũngĐình chỉVới một cái chung thái. Một cái trạng thái đến một cái khác trạng thái dời đi không nhất định làXác định.Bao gồmTùy cơ hóa thuật toánỞ bên trong một ít thuật toán, đều bao hàm một ít tùy cơ đưa vào.[11][12]

Lịch sử

[Biên tập]

Thuật toán ở Trung Quốc cổ đại văn hiến trung xưng là “Thuật”, sớm nhất xuất hiện ở 《Chu Bễ Toán Kinh》, 《Chín chương số học》. Đặc biệt là 《 chín chương số học 》, cấp raBốn phép tính giải toán,Ước số chung lớn nhất,Bội số chung nhỏ nhất, khaiCăn bậc hai,KhaiCăn lập phương,CầuTố sốAi thị si,Phương trình bậc một tổ cầu giảiCao tư tiêu nguyên pháp.Tam quốc thời đạiLưu huyCấp ra cầu số Pi thuật toán:Lưu huy cắt viên thuật.

Tự thời Đường tới nay, lịch đại càng có rất nhiều chuyên môn trình bày và phân tích “Thuật toán” chuyên tác:

Mà tiếng Anh tên “algorithm” đến từ chính 9 thế kỷBa TưToán học giaHoa kéo tử mễ( so a lặc · hoắc ngói tùng, Ba Tư ngữ:خوارزمی‎, Latin truyền: al-Khwarizmi ), bởi vì so a lặc · hoắc ngói tùng ởToán họcNâng lên ra thuật toán cái này khái niệm. “Thuật toán” nguyên vì “algorism”, tức “al-Khwarizmi” âm chuyển, ý tứ là “Hoa lạt tử mô”Giải toán pháp tắc, ở 18 thế kỷ diễn biến vì “algorithm”.

Euclid thuật toánBị mọi người cho rằng là sử thượng đệ nhất cái thuật toán.

Lần đầu tiên biên soạn trình tự làÁi đạt · lặc phù ren(Ada Byron) với 1842 năm vìBabbage phân tích cơBiên soạn cầu giải giảiBá nỗ lợi vi phân phương trìnhTrình tự,Bởi vậy ái đạt · lặc phù ren bị đại đa số người cho rằng là trên thế giới đệ nhất vịLập trình viên[13].Bởi vìCharles · Babbage(Charles Babbage) không thể hoàn thành hắn Babbage phân tích cơ, cái này thuật toán không thể ở Babbage phân tích cơ thượng chấp hành. Bởi vì “well-defined procedure” khuyết thiếu toán học thượng chính xác định nghĩa, 19 thế kỷ cùng 20 thế kỷ lúc đầu toán học gia,Logic học giảỞ định nghĩa thuật toán thượng xuất hiện khó khăn. 20 thế kỷAnh quốcToán học giaĐồ linhĐưa ra trứ danhĐồ linh luận đề,Cũng đưa ra một loại giả tưởngMáy tínhTrừu tượng mô hình, cái này mô hình được xưng làĐồ linh cơ.Đồ linh cơ xuất hiện giải quyết thuật toán định nghĩa nan đề, đồ linh tư tưởng đối thuật toán phát triển khởi tới rồi quan trọng tác dụng.

Đặc thù

[Biên tập]

Dưới làCao đức nạpỞ hắn tác phẩm 《Máy tính trình tự thiết kế nghệ thuật》 đối tính toán pháp đặc thù quy nạp:

  1. Đưa vào: Một cái thuật toán cần thiết có lẻ cái hoặc trở lên đưa vào lượng.
  2. Phát ra: Một cái thuật toán ứng có một cái hoặc trở lên phát ra lượng, phát ra lượng là thuật toán tính toán kết quả.
  3. Minh xác tính: Thuật toán miêu tả cần thiết vô nghĩa khác, lấy bảo đảm thuật toán thực tế chấp hành kết quả là chính xác mà phù hợp yêu cầu hoặc kỳ vọng, thông thường yêu cầu thực tế chấp hành kết quả là xác định.
  4. Hữu hạn tính: Căn cứ đồ linh định nghĩa, một cái tính toán pháp là có thể bị bất luận cái gìĐồ linh hoàn bịHệ thống bắt chước một chuỗi giải toán, màĐồ linh cơChỉ có hữu hạn cái trạng thái, hữu hạn cái đưa vào ký hiệu cùng hữu hạn cái dời đi hàm số ( mệnh lệnh ). Mà một ít định nghĩa càng quy định tính toán pháp cần thiết ở hữu hạn cái bước đi nội hoàn thành nhiệm vụ.
  5. Hữu hiệu tính: Lại xưng tính khả thi. Có thể thực hiện, thuật toán trung miêu tả thao tác đều là có thể thông qua đã thực hiện cơ bản giải toán chấp hành hữu hạn thứ tới thực hiện.

Cơ bản yếu tố

[Biên tập]

Thuật toán trung tâm là thành lập vấn đề trừu tượng mô hình cùng minh xác cầu giải mục tiêu, lúc sau có thể căn cứ cụ thể vấn đề lựa chọn bất đồng hình thức cùng phương pháp hoàn thành thuật toán thiết kế.

Thường dùng thiết kế hình thức

[Biên tập]

Hoàn toànBiến lịch phápCùng không hoàn toàn biến lịch pháp: Đang hỏi đề giải là hữu hạn ly tán giải không gian, thả có thể nghiệm chứng chính xác tính cùng tối ưu tính khi, đơn giản nhất thuật toán chính là đem giải không gian sở hữu nguyên tố hoàn toàn biến lịch một lần, từng cái kiểm tra đo lường nguyên tố hay không là chúng ta muốn giải. Đây là trực tiếp nhất thuật toán, thực hiện thường thường đơn giản nhất. Nhưng là đương giải không gian đặc biệt khổng lồ khi, loại này thuật toán rất có thể dẫn tới công trình thượng vô pháp thừa nhận tính toán lượng. Lúc này có thể lợi dụng không hoàn toàn biến lịch phương pháp —— tỷ như các loại tìm tòi pháp cùng quy hoạch pháp —— tới giảm bớt tính toán lượng. Phân trị pháp:Đem một vấn đề phân cách thành cho nhau độc lập nhiều bộ phận phân biệt cầu giải ý nghĩ. Loại này cầu giải ý nghĩ mang đến chỗ tốt chi nhất là dễ bề tiến hành song hành tính toán. Động thái quy hoạchPháp: Đương vấn đề chỉnh thể tối ưu giải chính là từ bộ phận tối ưu giải tạo thành thời điểm, thường xuyên chọn dùng một loại phương pháp.Tham lam thuật toán:Thường thấy xấp xỉ cầu giải ý nghĩ. Đương vấn đề chỉnh thể tối ưu giải không phải ( hoặc vô pháp chứng minh là ) từ bộ phận tối ưu giải tạo thành, thả đối giải tối ưu tính không có yêu cầu thời điểm, có thể chọn dùng một loại phương pháp. Quy hoạch tuyến tínhPháp: Thấy điều mục. Giản cũng pháp: Đem một vấn đề thông qua logic hoặc toán học trinh thám, đơn giản hoá thành cùng chi đồng giá hoặc là xấp xỉ, tương đối đơn giản mô hình, tiến tới cầu giải phương pháp.

Thường dùng thực hiện phương pháp

[Biên tập]

Đệ quy phương phápCùngThay đổi phương pháp Trình tự tính toán,Song hành tính toánCùngPhân bố thức giải toán:Trình tự tính toán chính là đem hình thức hóa thuật toán dùng trình tự thiết kế ngôn ngữ tiến hành đơn tuyến trình tự liệt hóa sau chấp hành. Xác định tính thuật toán cùng phi xác định tính thuật toán Chính xác cầu giải cùng xấp xỉ cầu giải

Hình thức hóa thuật toán

[Biên tập]

Thuật toán là máy tính xử lý tin tức bản chất, bởi vì máy tính trình tự bản chất là một cái thuật toán tới nói cho máy tính xác thực bước đi tới chấp hành một cái chỉ định nhiệm vụ, như tính toán công nhân viên chức tiền lương hoặc đóng dấu học sinh phiếu điểm. Giống nhau mà, đương thuật toán ở xử lý tin tức khi, sẽ từĐưa vào trang bịHoặc số liệu tồn trữ địa chỉ đọc lấy số liệu, đem kết quả viết nhậpPhát ra thiết bịHoặc nào đó tồn trữ địa chỉ cung về sau lại thuyên chuyển.

Phức tạp độ

[Biên tập]

Thời gian phức tạp độ

[Biên tập]

Thuật toánThời gian phức tạp độLà chỉ thuật toán yêu cầu tiêu hao thời gian tài nguyên. Nói như vậy, máy tính thuật toán là vấn đề quy môHàm số,Thuật toán thời gian phức tạp độ cũng bởi vậy nhớ làm : Thuật toán chấp hành thời gian tăng trưởng suất cùngTăng trưởng suất chính tương quan, gọiTiệm gần thời gian phức tạp độ(Tiếng Anh:Asymptotic computational complexity),Tên gọi tắt thời gian phức tạp độ. Thường thấy thời gian phức tạp độ có: Hằng số giai,Đối số giai,Tuyến tính giai,Tuyến tính đối số giai,Bình phương giai,Lập phương giai,…,Thứ phương giai,Chỉ số giai.Theo vấn đề quy môKhông ngừng tăng đại, kể trên thời gian phức tạp độ không ngừng tăng đại, thuật toán chấp hành hiệu suất càng thấp.

Không gian phức tạp độ

[Biên tập]

Thuật toánKhông gian phức tạp độLà chỉ thuật toán yêu cầu tiêu hao không gian tài nguyên. Này tính toán cùng tỏ vẻ phương pháp cùng thời gian phức tạp độ cùng loại, giống nhau đều dùng phức tạp độTiệm gần tínhTới tỏ vẻ. Đồng thời gian phức tạp độ so sánh với, không gian phức tạp độ phân tích muốn đơn giản đến nhiều.

Thực hiện

[Biên tập]

Thuật toán không đơn giản có thể dùng máy tính trình tự tới thực hiện, cũng có thể ởNhân công mạng lưới thần kinh,Mạch điệnHoặc làMáy mócThiết bị thượng thực hiện.

Thí dụ mẫu

[Biên tập]

Cầu cực đại tính toán pháp

[Biên tập]

Đây là thuật toán một cái đơn giản ví dụ. Chúng ta có một chuỗi tùy cơDãy số.Chúng ta mục đích là tìm được cái này dãy số trung lớn nhất số. Nếu đem dãy số trung mỗi một số vị xem thành là một viên cây đậu lớn nhỏ, có thể đem phía dưới thuật toán hình tượng mà xưng là “Nhặt cây đậu”:

  1. Đầu tiên đem đệ nhất viên cây đậu để vào túi trung.
  2. Từ đệ nhị viên cây đậu bắt đầu kiểm tra, nếu đang ở kiểm tra cây đậu so túi trung còn đại, tắc đem nó nhặt lên để vào túi trung, đồng thời vứt bỏ ban đầu túi trung cây đậu. Phản chi tắc tiếp tục tiếp theo viên cây đậu. Thẳng đến cuối cùng một viên cây đậu.
  3. Cuối cùng túi trung cây đậu chính là sở hữu cây đậu trung lớn nhất một viên. Trở lên thuật toán ở Trung Quốc đại lục sách giáo khoa trung thông thường bị gọi là “Đánh lôi pháp” hoặc là “Tuần hoàn đánh lôi”[14][15][16]:Ở một cái for tuần hoàn trung, mỗi luân tuần hoàn đều có tân người khiêu chiến. Nếu người khiêu chiến thắng nói, người khiêu chiến làm tân lôi chủ, nếu không lôi chủ vệ miện. for tuần hoàn sau khi kết thúc phát ra cuối cùng lôi chủ.

Phía dưới là một cái hình thức thuật toán, dùngANSI CSố hiệu tỏ vẻ

intmax(int*array,intsize)
{
intmval=*array;
inti;
for(i=1;i<size;i++)
if(array[i]>mval)
mval=array[i];
returnmval;
}

Cầu ước số chung lớn nhất tính toán pháp

[Biên tập]

Cầu hai cái số tự nhiênƯớc số chung lớn nhất Thiết hai cái lượng biến đổiCùng

  1. Nếu,Tắc trao đổiCùng
  2. Trừ lấy,Được đến số dư
  3. Phán đoán,Chính xác tắcTức vì “Ước số chung lớn nhất”, nếu không bước tiếp theo
  4. ĐemPhú giá trị cấp,ĐemPhú giá trị cấp,Trọng tố bước đầu tiên.

DùngANSI CSố hiệu tỏ vẻ

// trao đổi 2 số
voidswapi(int*x,int*y)
{
inttmp=*x;
*x=*y;
*y=tmp;
}

intgcd(intm,intn)
{
intr;
do
{
if(m<n)
swapi(&m,&n);
r=m%n;
m=n;
n=r;
}while(r);
returnm;
}

Lợi dụng if hàm thức cùng với đệ hồi tắc có thể làm ra càng vì tinh giản thể thức mã, càng nhưng tỉnh đi trao đổi phiền toái. ( nhưng là cũng bởi vì đệ hồi gọi, này không gian phức tạp độ đề cao )

intgcd(inta,intb)
{
if(a%b)
returngcd(b,a%b);
returnb;
}

Phân loại

[Biên tập]

Phân loại thuật toán có bao nhiêu loại phương pháp, mỗi loại phương pháp đều có chính mình ưu điểm.

Thông qua thực thi

[Biên tập]

Phân loại thuật toán một loại phương pháp là thông qua thực hiện thủ đoạn.

intgcd(intA,intB){
if(B==0)
returnA;
elseif(A>B)
returngcd(A-B,B);
else
returngcd(A,B-A);
}
Từ phía trên lưu trình đồ đệ quy C thực hiện Euclid thuật toán
Đệ quy
Đệ quy thuật toán là một loại lặp lại thuyên chuyển ( trích dẫn ) tự thân thuật toán, thẳng đến nào đó điều kiện ( cũng xưng là ngưng hẳn điều kiện ) xứng đôi, đây là hàm số thức biên trình thường dùng phương pháp. Thay đổi thuật toán sử dụng tuần hoàn linh tinh lặp lại cấu tạo, có khi sử dụng kho tạm linh tinh phụ gia số liệu kết cấu tới giải quyết cấp định vấn đề. Có chút vấn đề tự nhiên thích hợp với loại này hoặc cái loại này thực hiện. Tỷ như, sử dụng đệ quy thực hiện có thể tốt lắm lý giải hà nội tháp. Mỗi cái đệ quy phiên bản đều có một cái đồng giá ( nhưng khả năng hoặc nhiều hoặc ít phức tạp ) thay đổi phiên bản, phản chi cũng thế.
Xâu chuỗi, song song hoặc phân bố
Thuật toán thông thường là ở giả thiết máy tính một lần chấp hành một cái thuật toán mệnh lệnh dưới tình huống thảo luận. Những cái đó máy tính có khi được xưng là xuyến hành máy tính. Nhằm vào hoàn cảnh này thiết kế thuật toán xưng là xuyến hành thuật toán, mà không phải song hành thuật toán hoặc phân bố thức thuật toán. Song hành thuật toán là lợi dụng máy tính hệ thống kết cấu thuật toán, trong đó nhiều xử lý khí có thể đồng thời xử lý một vấn đề. Phân bố thức thuật toán là sử dụng cùng máy tính internet liên tiếp nhiều đài máy móc thuật toán. Song hành cùng phân bố thức thuật toán đem vấn đề phân chia vì càng thêm đối xứng hoặc không đối xứng tử vấn đề, cũng đem kết quả thu thập ở bên nhau. Tỷ như, CPU chính là song hành thuật toán một ví dụ. Loại này thuật toán tài nguyên tiêu hao không chỉ có là mỗi cái xử lý khí thượng xử lý khí chu kỳ, hơn nữa là xử lý khí chi gian thông tín chi tiêu. Có chút bài tự thuật toán có thể hữu hiệu mà song hành hóa, nhưng là chúng nó thông tín chi tiêu rất lớn. Thay đổi thuật toán thông thường là nhưng song hành, nhưng có chút vấn đề không có song hành thuật toán, xưng là cố hữu xuyến hành vấn đề.
Xác định hoặc không xác định
Xác định tính thuật toán ở thuật toán mỗi một bước đều dùng chính xác quyết sách tới giải quyết vấn đề, mà phi xác định tính thuật toán thông qua suy đoán tới giải quyết vấn đề, tuy rằng thông qua dẫn dắt thức sử điển hình suy đoán càng thêm chính xác.
Chính xác hoặc xấp xỉ
Tuy rằng rất nhiều thuật toán đạt tới một cái chính xác giải quyết phương án, xấp xỉ thuật toán tìm kiếm một cái xấp xỉ, càng tiếp cận chân chính giải quyết phương án. Loại này xấp xỉ có thể thông qua sử dụng xác định tính sách lược hoặc tùy cơ sách lược tới thực hiện. Này đó thuật toán đối rất nhiều nan đề đều có thực dụng giá trị. Xấp xỉ thuật toán một ví dụ là ba lô vấn đề, trong đó có một tổ cấp định hạng mục. Nó mục tiêu là đóng gói ba lô, lấy đạt được lớn nhất tổng giá trị giá trị. Mỗi cái vật phẩm đều có nhất định trọng lượng cùng giá trị. Nhưng mang theo tổng trọng lượng không vượt qua nào đó cố định con số X, bởi vậy, giải quyết phương án cần thiết suy xét vật phẩm trọng lượng và giá trị.[17]
Lượng tử thuật toán
Lượng tử thuật toán vận hành ở một cái hiện thực lượng tử tính toán mô hình thượng. Thuật này ngữ thông thường dùng cho những cái đó bản chất tựa hồ là lượng tử thuật toán, hoặc là sử dụng lượng tử tính toán một ít cơ bản đặc tính, như thái chồng lên nguyên lý hoặc lượng tử dây dưa.

Thông qua thiết kế kiểu mẫu

[Biên tập]

Đối thuật toán tiến hành phân loại một loại khác phương pháp là thông qua chúng nó thiết kế phương pháp hoặc kiểu mẫu. Có nhất định số lượng kiểu mẫu, mỗi một cái bất đồng với mặt khác. Ngoài ra, này đó phân loại trung mỗi một cái đều bao gồm rất nhiều bất đồng loại hình thuật toán. Một ít thường thấy kiểu mẫu là:

Bạo lực điều tra hoặc hoàn toàn điều tra
Sức trâu là một loại giải quyết vấn đề phương pháp, bao gồm hệ thống mà nếm thử mỗi một loại khả năng lựa chọn, thẳng đến tìm được tốt nhất giải quyết phương án. Loại này phương pháp khả năng phi thường tốn thời gian, bởi vì nó yêu cầu biến lịch sở hữu khả năng lượng biến đổi tổ hợp. Nhưng là, đương mặt khác phương pháp không thể dùng hoặc quá mức phức tạp khi, thường giúp dùng loại này phương pháp. Sức trâu có thể dùng để giải quyết các loại vấn đề, bao gồm tìm kiếm hai điểm chi gian ngắn nhất đường nhỏ cùng phá giải mật mã.
Tiêu diệt từng bộ phận
Chia để trị thuật toán lặp lại mà đem một vấn đề ví dụ thực tế giảm bớt vì cùng cái vấn đề một cái hoặc nhiều càng tiểu nhân ví dụ thực tế ( thông thường là đệ quy ), thẳng đến này đó ví dụ thực tế cũng đủ tiểu để với giải quyết. Chia để trị một ví dụ là xác nhập bài tự. Ở đem số liệu phân cách thành phiến đoạn sau, có thể đối mỗi cái đoạn ngắn tiến hành bài tự, ở chinh phục giai đoạn thông qua xác nhập đoạn ngắn có thể đối toàn bộ số liệu tiến hành bài tự. Một loại càng đơn giản chia để trị thuật toán xưng là giảm mà trị thuật toán, nó giải quyết một cái tương đồng tử vấn đề, cũng sử dụng cái này tử vấn đề giải quyết phương án tới giải quyết lớn hơn nữa vấn đề. Phân trị thuật toán đem vấn đề phân chia vì nhiều tử vấn đề, bởi vậy phân trị giai đoạn so giảm bớt phân trị thuật toán phức tạp. Giảm dần cùng chinh phục thuật toán một ví dụ là cơ số hai tìm tòi thuật toán.
Tìm tòi cùng cái cử
Rất nhiều vấn đề ( tỷ như chơi cờ ) có thể kiến mô vì đồ hình thượng vấn đề. Đồ thăm dò thuật toán quy định ở đồ trung di động quy tắc, đối với loại này vấn đề phi thường hữu dụng. Này một phân loại còn bao gồm tìm tòi thuật toán, chi nhánh cùng giới cái cử cùng với hồi tưởng.
Tùy cơ thuật toán
Như vậy thuật toán tùy cơ ( hoặc ngụy tùy cơ ) làm ra một ít lựa chọn. Chúng nó có thể phi thường hữu dụng mà tìm được xấp xỉ giải quyết phương án vấn đề, tìm được chính xác giải quyết phương án có thể là không thực tế ( thấy phía dưới dẫn dắt thức phương pháp ). Đối với trong đó một ít vấn đề, chúng ta biết nhanh nhất xấp xỉ cần thiết bao hàm một ít tùy cơ tính.[18]Đối với nào đó vấn đề, có đa thức thời gian phức tạp độ tùy cơ thuật toán có không trở thành nhanh nhất thuật toán, là một cái được xưng là “P/NP vấn đề” huyền mà chưa quyết vấn đề. Loại này thuật toán có hai đại loại:
  1. Mông đặc Carlo thuật toán lấy cao xác suất phản hồi chính xác đáp án. Tỷ như RP là này đó vận hành ở đa thức thời gian tử loại.
  2. Las Vegas thuật toán luôn là phản hồi chính xác đáp án, nhưng bọn hắn vận hành thời gian chỉ là xác suất ước thúc, tỷ như ZPP.
Hạ thấp phức tạp tính
Loại này kỹ thuật đề cập đến thông qua đem một cái khó khăn vấn đề chuyển hóa vì một cái càng bị nhiều người biết đến vấn đề tới giải quyết nó, chúng ta ( hy vọng ) đã có tiệm gần tối ưu thuật toán. Mục tiêu là tìm được một loại phức tạp độ không chịu đoạt được đến đơn giản hoá thuật toán khống chế đơn giản hoá thuật toán. Tỷ như, một loại dùng cho ở chưa bài tự danh sách trung tra tìm trung giá trị lựa chọn thuật toán đầu tiên đối danh sách tiến hành bài tự ( đại giới so cao bộ phận ), sau đó lấy ra bài tự danh sách trung trung gian nguyên tố ( đại giới so thấp bộ phận ). Loại này kỹ thuật cũng bị xưng là thay đổi cùng chinh phục.
Ngược hướng truy tung
Tại đây loại phương pháp trung, nhiều giải quyết phương án là từng bước xây dựng, đương xác định chúng nó không thể sinh thành hữu hiệu hoàn chỉnh giải quyết phương án khi, liền sẽ từ bỏ này đó giải quyết phương án.

Ưu hoá vấn đề

[Biên tập]

Đối với tối ưu hóa vấn đề, có một cái càng cụ thể thuật toán phân loại; loại này vấn đề thuật toán khả năng thuộc về kể trên một cái hoặc nhiều giống nhau phân loại, cũng có thể thuộc về dưới phân loại chi nhất:

Quy hoạch tuyến tính
Đương tìm tòi chịu tuyến tính đẳng thức cùng bất đẳng thức ước thúc tuyến tính hàm số tối ưu giải khi, này vấn đề ước thúc có thể trực tiếp dùng cho sinh ra tối ưu giải. Có một ít thuật toán có thể giải quyết loại này vấn đề, tỷ như lưu hành đơn thuần hình pháp.[19]Quy hoạch tuyến tính có thể giải quyết vấn đề bao gồm có hướng đồ lớn nhất lưu vấn đề. Nếu một vấn đề thêm vào yêu cầu một cái hoặc nhiều không biết bao nhiêu cần thiết là một cái số nguyên, như vậy nó bị phân loại vì số nguyên quy hoạch. Một cái quy hoạch tuyến tính thuật toán có thể giải quyết như vậy vấn đề, nếu nó có thể chứng minh sở hữu hạn chế số nguyên giá trị là mặt ngoài, tức, giải quyết phương án thỏa mãn này đó hạn chế. Ở trong tình huống bình thường, căn cứ vấn đề khó khăn, sử dụng chuyên môn thuật toán hoặc tìm được xấp xỉ giải thuật toán.
Động thái biên trình
Đương một vấn đề biểu hiện ra tối ưu tử kết cấu ーー ý nghĩa một vấn đề tối ưu giải có thể từ tử vấn đề tối ưu giải cấu tạo ra tới ーー cùng trùng điệp tử vấn đề, ý nghĩa cùng vóc dáng vấn đề có thể dùng để giải quyết rất nhiều bất đồng vấn đề ví dụ thực tế khi, một loại gọi là động thái quy hoạch nhanh chóng phương pháp có thể tránh cho một lần nữa tính toán đã tính toán ra tới giải. Tỷ như, Floyd-Warshall thuật toán, ở một cái thêm quyền đồ trung, thông qua sử dụng từ sở hữu liền nhau đỉnh điểm tới mục tiêu ngắn nhất đường nhỏ, có thể tìm được từ một cái đỉnh điểm tới mục tiêu ngắn nhất đường nhỏ. Động thái biên trình cùng chế biểu cùng nhau sử dụng. Động thái quy hoạch cùng phân trị chủ yếu khác nhau ở chỗ tử vấn đề ở phân trị trung hoặc nhiều hoặc ít là độc lập, mà tử vấn đề ở động thái quy hoạch trung là trùng điệp. Động thái biên trình cùng đơn giản đệ quy khác nhau ở chỗ đệ quy thuyên chuyển hoãn tồn hoặc chế biểu. Chỗ trống vấn đề là độc lập hơn nữa không có lặp lại khi, chế biểu không có tác dụng; bởi vậy động thái biên trình không phải sở hữu phức tạp vấn đề giải quyết phương án. Thông qua sử dụng chế biểu pháp hoặc giữ gìn đã giải quyết tử vấn đề biểu, động thái quy hoạch đem rất nhiều vấn đề chỉ số tính chất hạ thấp đa thức phức tạp độ.
Tham lam phương pháp
Tham lam thuật toán cùng loại với động thái quy hoạch thuật toán, nó thông qua kiểm tra tử kết cấu tới công tác, dưới tình huống như vậy, không phải kiểm tra vấn đề, mà là kiểm tra cấp định giải. Loại này thuật toán từ nào đó cởi bỏ thủy, loại này giải khả năng đã cấp ra hoặc đã lấy nào đó phương thức cấu tạo ra tới, sau đó thông qua tiểu nhân sửa chữa đối này tiến hành cải tiến. Đối với một ít vấn đề, bọn họ có thể tìm được tối ưu giải, mà đối với mặt khác vấn đề, bọn họ dừng lại ở bộ phận tối ưu, nói cách khác, ở giải quyết phương án, không thể cải tiến thuật toán, nhưng không phải tối ưu. Tham lam thuật toán nhất thường dùng sử dụng là tìm kiếm nhỏ nhất sinh thành thụ, tại đây loại phương pháp trung có thể tìm được tối ưu giải. Hoffmann thụ, Cruise Carl, phổ mỗ, Sollin là tham lam thuật toán, có thể giải quyết cái này tốt nhất hóa vấn đề.
Dẫn dắt thức phương pháp
Ở ưu hoá vấn đề trung, nếu không thể tìm được tối ưu giải, có thể sử dụng dẫn dắt thức thuật toán tới tìm kiếm tiếp cận tối ưu giải giải. Này đó thuật toán công tác nguyên lý là theo chúng nó tiến triển càng ngày càng tiếp cận tối ưu giải. Trên nguyên tắc, nếu vận hành vô hạn lớn lên thời gian, bọn họ sẽ tìm được tối ưu giải. Chúng nó ưu điểm là có thể ở tương đối so đoản thời gian nội tìm được một cái phi thường tiếp cận tối ưu giải giải. Này đó thuật toán bao gồm bản địa tìm tòi, cấm kỵ tìm tòi, bắt chước làm giảm độ cứng tìm tòi cùng di truyền thuật toán. Trong đó một ít thuật toán, như bắt chước làm giảm độ cứng, thị phi xác định tính thuật toán, mà mặt khác, như cấm kỵ tìm tòi, là xác định tính. Đương phi tối ưu giải khác biệt giới hạn đã biết khi, nên thuật toán tiến thêm một bước bị phân loại vì xấp xỉ tính toán pháp.

Thông qua nghiên cứu lĩnh vực

[Biên tập]

Mỗi cái khoa học lĩnh vực đều có chính mình vấn đề, yêu cầu hiệu suất cao thuật toán. Một cái trong lĩnh vực tương quan vấn đề thường xuyên bị cùng nhau nghiên cứu. Một ít thí dụ mẫu loại là tìm tòi thuật toán, bài tự thuật toán, xác nhập thuật toán, trị số thuật toán, đồ hình thuật toán, tự phù xuyến thuật toán, tính toán bao nhiêu thuật toán, tổ hợp thuật toán, y học thuật toán, máy móc học tập, mật mã học, số liệu áp súc thuật toán giải hòa tích kỹ thuật.

Tự đoạn chi gian thường thường lẫn nhau trùng điệp, một chữ đoạn thuật toán tiến bộ khả năng sẽ cải tiến mặt khác tự đoạn thuật toán, có đôi khi này đó tự đoạn hoàn toàn không tương quan. Tỷ như, động thái quy hoạch là vì ưu hoá công nghiệp trung tài nguyên tiêu hao mà phát minh, nhưng là hiện tại bị dùng cho giải quyết rất nhiều trong lĩnh vực rộng khắp vấn đề.

Thông qua phức tạp tính

[Biên tập]

Thuật toán có thể căn cứ chúng nó yêu cầu hoàn thành thời gian cùng chúng nó đưa vào lớn nhỏ tiến hành phân loại:

  • Hằng số thời gian: Nếu thuật toán sở cần thời gian tương đồng, tắc mặc kệ đưa vào lớn nhỏ như thế nào. Tỷ như, đối số tổ nguyên tố phỏng vấn.
  • Đối số thời gian: Nếu thời gian là đưa vào lớn nhỏ đối số hàm số. Cơ số hai tìm tòi thuật toán.
  • Tuyến tính thời gian: Nếu thời gian cùng đưa vào lớn nhỏ có quan hệ trực tiếp. Danh sách biến lịch.
  • Đa thức thời gian: Nếu thời gian là đưa vào lớn nhỏ mịch thứ. Tỷ như, bọt khí bài tự thuật toán có lần thứ hai thời gian phức tạp độ.
  • EXPTIME: Nếu thời gian là đưa vào lớn nhỏ chỉ số hàm số. Tỷ như bạo lực tìm tòi pháp.

Một ít vấn đề khả năng có bao nhiêu cái bất đồng phức tạp độ thuật toán, mà một khác chút vấn đề khả năng không có thuật toán hoặc là không có đã biết hữu hiệu thuật toán. Còn có từ một ít vấn đề đến mặt khác vấn đề chiếu rọi. Bởi vì nguyên nhân này, chúng ta phát hiện căn cứ vấn đề tốt nhất khả năng thuật toán phức tạp tính, đem vấn đề bản thân phân loại so đem thuật toán chia làm đồng giá loại càng vì thích hợp.

Liên tục thuật toán

[Biên tập]

Hình dung từ “Liên tục” dùng cho “Thuật toán” một từ khi, có thể tỏ vẻ:

  • Đối tỏ vẻ liên tục số lượng số liệu tiến hành thao tác thuật toán, cho dù này đó số liệu là từ ly tán xấp xỉ tỏ vẻ ーー loại này thuật toán là ở trị số phân tích trung nghiên cứu; hoặc
  • Một loại vi phân phương trình hình thức thuật toán, ở bắt chước máy tính thượng vận hành, không ngừng mà đối số liệu tiến hành thao tác.[20]

Tham khảo văn hiến

[Biên tập]
  1. ^Thomas H. Cormen;Charles E. Leiserson; Ronald L. Rivest; Clifford Stein; ân kiến bình đẳng dịch. Chương 1 thuật toán ở máy tính trung tác dụng.Thuật toán lời giới thiệuNguyên thư đệ 3 bản. Bắc Kinh: Máy móc công nghiệp nhà xuất bản. 2013 năm 1 nguyệt: 3[5][2017-11-14].ISBN978-7-111-40701-0( tiếng Trung ).
  2. ^David A.Grossman, Ophir Frieder, “Tin tức kiểm tra: Thuật toán cùng dẫn dắt thức”, 2004 năm đệ 2 bản,ISBN1402030045
  3. ^Kleene ( Steven · Cole · khắc lai ni ) 1943 in Davis 1965:274
  4. ^Rosser ( ba khắc lợi · la sắt ) 1939 in Davis 1965:225
  5. ^Moschovakis, Yiannis N. What is an algorithm?. Engquist, B.; Schmid, W. ( biên ).Mathematics Unlimited—2001 and beyond.Springer. 2001: 919–936 ( Part II )[2012-09-27].( nguyên thủy nội dungLưu trữVới 2021-04-24 ).
  6. ^Well defined with respect to the agent that executes the algorithm: "There is a computing agent, usually human, which can react to the instructions and carry out the computations" ( Rogers 1987:2 ).
  7. ^"Any classical mathematical algorithm, for example, can be described in a finite number of English words" ( Rogers 1987:2 ).
  8. ^"An algorithm has zero or more inputs, i.e., quantities which are given to it initially before the algorithm begins" ( Knuth 1973:5 )
  9. ^"A procedure which has all the characteristics of an algorithm except that it possibly lacks finiteness may be called a 'computational method'" ( Knuth 1973:5 )
  10. ^"An algorithm has one or more outputs, i.e. quantities which have a specified relation to the inputs" ( Knuth 1973:5 )
  11. ^Whether or not a process with random interior processes ( not including the input ) is an algorithm is debatable. Rogers opines that: "a computation is carried out in a discrete stepwise fashion, without use of continuous methods or analogue devices... carried forward deterministically, without resort to random methods or devices, e.g., dice" Rogers 1987:2 ).
  12. ^Whether or not a process with random interior processes ( not including the input ) is an algorithm is debatable. Rogers opines that: "a computation is carried out in a discrete stepwise fashion, without use of continuous methods or analogue devices... carried forward deterministically, without resort to random methods or devices, e.g., dice" Rogers 1987:2 ).
  13. ^Ada Lovelace honoured by Google doodle.The Guardian. 10 December 2012[10 December2012].( nguyên thủy nội dungLưu trữVới 2018-12-25 ).
  14. ^2.4 sân thi đấu thống phân.Đọc sách kênh -IT kỹ thuật sách báo -51CTO.COM.[2017-06-07].(Nguyên thủy nội dungLưu trữ với 2017-03-24 ).
  15. ^Thực nghiệm 3-9: Tuần hoàn đánh lôi.Hồ Nam khoa học kỹ thuật đại học trình tự thiết kế tại tuyến bình trắc ( Online Judge ).[Vĩnh cửu mất đi hiệu lực liên kết]
  16. ^Cao trung, thuật toán cùng trình tự thiết kế, giáo án.Ở điểm võng.[2017-06-07].(Nguyên thủy nội dungLưu trữ với 2019-06-03 ).
  17. ^Kellerer, Hans; Pferschy, Ulrich; Pisinger, David.Knapsack Problems | Hans Kellerer | Springer.Springer. 2004[September 19,2017].ISBN978-3-540-40286-2.doi:10.1007/978-3-540-24777-7.(Nguyên thủy nội dungLưu trữ với October 18, 2017 )( tiếng Anh ).Kellerer, Hans; Pferschy, Ulrich; Pisinger, David ( 2004 ).Knapsack Problems | Hans Kellerer | Springer.Springer.doi:10.1007/978-3-540-24777-7.ISBN978-3-540-40286-2.S2CID28836720.Archivedfrom the original on October 18, 2017.RetrievedSeptember 19,2017.
  18. ^For instance, thevolumeof aconvex polytope( described using a membership oracle ) can be approximated to high accuracy by a randomized polynomial time algorithm, but not by a deterministic one: seeDyer, Martin; Frieze, Alan; Kannan, Ravi. A Random Polynomial-time Algorithm for Approximating the Volume of Convex Bodies. J. ACM. January 1991,38(1): 1–17.CiteSeerX 10.1.1.145.4600可免费查阅.S2CID 13268711.doi:10.1145/102782.102783.Dyer, Martin; Frieze, Alan; Kannan, Ravi ( January 1991 ). "A Random Polynomial-time Algorithm for Approximating the Volume of Convex Bodies".J. ACM.38( 1 ): 1–17.CiteSeerX10.1.1.145.4600.doi:10.1145/102782.102783.S2CID13268711.
  19. ^ George B. Dantzigand Mukund N. Thapa. 2003.Linear Programming 2: Theory and Extensions.Springer-Verlag.
  20. ^Tsypkin.Adaptation and learning in automatic systems.Academic Press. 1971: 54.ISBN978-0-08-095582-7.Tsypkin ( 1971 ).Adaptation and learning in automatic systems.Academic Press. p. 54.Quốc tế tiêu chuẩn thư hào978-0-08-095582-7.

Sách tham khảo mục

[Biên tập]

Xem thêm

[Biên tập]

Kéo dài đọc

[Biên tập]

[Ở duy số đếm theoBiênTập]

维基文库中的相关文本:Khâm định cổ kim sách báo tổng thể · lịch tượng tổng hợp · lịch pháp điển · thuật toán bộ》, xuất từTrần mộng lôiCổ kim sách báo tổng thể

Phần ngoài liên tiếp

[Biên tập]