Thuật toán trí tuệ nhân tạo với đào tạo. Trồng trí tuệ nhân tạo về ví dụ về một trò chơi đơn giản. Giải pháp chính cho các thuật toán trí tuệ nhân tạo

Để bắt đầu, nói chung là một trí tuệ nhân tạo như vậy. Dưới AI, tập hợp các thuật toán và hướng nghiên cứu về tự động hóa các nhiệm vụ được giải quyết bởi bộ não người, cũng như sự bắt chước của hoạt động của bộ não con người để cải thiện dung dịch các vấn đề tính toán. Ví dụ:

  • Công nhận hình ảnh, phân tích thông tin trực quan.
  • Nhận dạng thông tin âm thanh.
  • Lý luận, ra quyết định.
  • Sáng tạo, trực giác.

Ý tưởng chính là nhiều tác vụ não quyết định tốt hơn máy tính, vì vậy nó có ý nghĩa khi sử dụng trong lập trình tiếp cận rằng não của chúng ta sử dụng trong việc giải quyết vấn đề. Nhờ cách tiếp cận này, ví dụ, máy tính "đã dạy" để chơi cờ vua và thậm chí chiến thắng các nhân viên lớn nổi tiếng, mặc dù nó đã truyền cảm hứng cho nhiệm vụ này là một vấn đề phức tạp: số lượng kết hợp trong một trò chơi cờ vua là một điều lớn là máy tính là không thể tính toán chúng cho toàn bộ sự tồn tại của vũ trụ. Vấn đề đã được giải quyết với việc phát minh ra các thuật toán heuristic. Bản chất của heuristic là chúng ta tính toán không phải tất cả các tùy chọn, bằng cách nào đó chọn tùy chọn nào để phân tích.

Bây giờ về một số hướng tiêu biểu của AI.

Trong bài viết này, tôi sẽ chia sẻ kinh nghiệm phát triển trí tuệ nhân tạo đơn giản nhất (AI) bằng thuật toán di truyền, cũng như cũng như sẽ nói về các lệnh tối thiểu cần thiết cho việc hình thành bất kỳ hành vi nào.

Kết quả của công việc là thực tế là AI, không biết các quy tắc, độc lập thành thạo trò chơi cross-gods và tìm thấy sự yếu kém của các bot chơi với anh ta. Nhưng tôi bắt đầu với một nhiệm vụ thậm chí còn dễ dàng hơn.

Bộ lệnh

Tất cả bắt đầu với việc chuẩn bị một tập hợp các lệnh mà II có thể có. Ngôn ngữ cấp cao chứa hàng trăm nhà khai thác khác nhau. Để làm nổi bật mức tối thiểu cần thiết, tôi quyết định đề cập đến trình biên dịch. Tuy nhiên, hóa ra nó chứa nhiều đội.

Tôi cần rằng AI có thể đọc và xuất dữ liệu, hoạt động với bộ nhớ, thực hiện các phép tính và hoạt động logic, thực hiện chuyển đổi và chu kỳ. Tôi đã xem qua ngôn ngữ não chỉ chứa 8 lệnh và có thể thực hiện bất kỳ tính toán nào (tức là đầy Turing). Về nguyên tắc, nó phù hợp để lập trình di truyền, nhưng tôi đã tiếp tục.

Tôi tự hỏi: số lệnh tối thiểu là cần thiết để thực hiện bất kỳ thuật toán nào? Khi nó bật ra - một!

Bộ xử lý URISC chỉ chứa một lệnh: để khấu trừ và bỏ qua hướng dẫn sau, nếu được trừ lớn hơn mức giảm. Điều này là đủ để xây dựng bất kỳ thuật toán.

Oleg Mashka đã đi xa hơn nữa, ông đã phát triển đội BitbitJump và chứng minh rằng nó đầy Turing. Lệnh chứa ba địa chỉ, sao chép một bit từ đầu tiên đến địa chỉ bộ nhớ thứ hai và chuyển điều khiển đến địa chỉ thứ ba.

Bằng cách mượn ý tưởng của Oleg, để đơn giản hóa công việc, tôi đã phát triển lệnh Sumifjump. Lệnh chứa bốn toán hạng: a, b, c, d và thực hiện các phần sau: vào ô tại địa chỉ B thêm dữ liệu từ ô đến a nếu giá trị được chỉ định nhiều hơn *, thì nó di chuyển đến c, nếu không Nó đi đến D.

Ghi chú

* Trong trường hợp này, 128 đã được sử dụng - một nửa so với bộ gen dài.


Khi toán hạng A đề cập đến ô nhớ N0, dữ liệu là đầu vào và khi đến ô N1, đầu ra.

Dưới đây là mã Sumifjump trên freepascal (tương tự Detpi miễn phí).

THỦ TỤC RUBPROG (S: TDATA); Var a, b, c, d: tdata; Bắt đầu Inc (NSTEP); Nếu NSTEP\u003e MAXSTEP thì hãy bắt đầu Progresult: \u003d "MaxStep"; Lối ra; kết thúc; A: \u003d S; B: \u003d S + 1; C: \u003d S + 2; D: \u003d S + 3; A: \u003d prog [a]; B: \u003d prog [b]; C: \u003d prog [c]; D: \u003d prog [d]; Nếu A \u003d 0 thì hãy bắt đầu Progresult: \u003d "Đầu vào"; Lối ra; kết thúc; Nếu A \u003d 1 thì hãy bắt đầu Progresult: \u003d "Đầu ra"; Lối ra; kết thúc; Prog [b]: \u003d prog [b] + prog [a]; Nếu prog [b]< ProgLength div 2 then RunProg(c) else RunProg(d); end;
Sumifjump thực hiện một mã tự sửa đổi. Có thể thực hiện bất kỳ thuật toán nào có sẵn trên ngôn ngữ lập trình thông thường. Mã dễ dàng thay đổi và chịu được bất kỳ thao tác.

Nhiệm vụ đơn giản

Vì vậy, AI của chúng tôi chỉ là một đội. Trong khi Noliki Cross là một trò chơi rất khó khăn với anh ta, và tôi bắt đầu đơn giản hơn.

Bot đưa ra một số ngẫu nhiên và AI nên xem xét dữ liệu và đưa ra câu trả lời. Nếu số lượng lớn hơn mức trung bình (từ phạm vi số ngẫu nhiên), AI sẽ phát hành một số ít hơn mức trung bình và ngược lại.

Bộ gen của AI của chúng tôi bao gồm 256 ô có giá trị từ 0 đến 255. Mỗi giá trị là bộ nhớ và mã và địa chỉ. Số lượng các bước tiến trình được giới hạn ở 256. Các toán hạng được đọc bởi nhau.

Ban đầu, bộ gen được hình thành bởi một tập hợp các số ngẫu nhiên, vì vậy tôi không biết anh ta cần gì để chơi. Hơn nữa, anh ta không biết phải nhập liên tục và hiển thị dữ liệu, phản hồi với Bot.

Dân số và lựa chọn

Dân số đầu tiên bao gồm 256 AI, bắt đầu chơi với Bot. Nếu AI thực hiện các hành động chính xác, ví dụ, yêu cầu dữ liệu trên đầu vào, và sau đó tôi đã mang một thứ gì đó, sau đó AI được kính. Các hành động đúng hơn, càng nhiều điểm.

16 AI, ghi được hầu hết các điểm, đưa ra 15 con cháu và tiếp tục tham gia vào trò chơi. Hậu duệ là một đột biến. Đột biến xảy ra bằng cách thay thế bản sao của cha mẹ của một ô ngẫu nhiên cho ý nghĩa ngẫu nhiên.

Nếu trong dân số đầu tiên, không có ai ghi điểm, dân số sau đây được hình thành. Và vì vậy cho đến khi một số AI bắt đầu thực hiện các hành động phù hợp và đưa ra những đứa trẻ "chính xác".

Sự phát triển


Có hàng ngàn thay đổi thế hệ giữa các sự kiện có ý nghĩa. Chương trình được đưa ra trong một số luồng trên Core i7. Tính toán mất khoảng 15 phút.

  1. Khi AI "Lãnh đạo" đã phạm lỗi ngẫu nhiên và không đạt đủ điểm, dân số bắt đầu xuống cấp, bởi vì Con cái đã được hình thành từ cha mẹ "phụ".
  2. Nó đã xảy ra rằng trong một luồng với những người ngoài đã chà đạp tại chỗ, một đột biến thành công đã diễn ra, đảm bảo sự phát triển bùng nổ của các điểm có được. Sau đó, chủ đề này đã trở thành người lãnh đạo.
  3. Đôi khi không có đột biến thành công nào xảy ra trong một thời gian dài và thậm chí 500 nghìn thế hệ thiếu để hoàn thành việc lựa chọn.

Phần kết luận

Tóm lại, tôi đã làm tương tự với trò chơi Cross-Noliki. Kích thước của bộ gen sử dụng một như trong trường hợp đầu tiên. Số bước được tăng lên 1024 và kích thước dân số lên tới 64 (để tính toán nhanh hơn). Việc tính toán mất một vài thời gian nữa. Mọi thứ xảy ra về cùng một kịch bản.

Đầu tiên, AI đã chơi với "sự ngẫu nhiên". Tôi gọi bot, đi ngẫu nhiên. Khá nhanh chóng tôi bắt đầu đánh bại nó, điền bất kỳ dòng nào. Tiếp theo, tôi phức tạp nhiệm vụ, thêm một cách ngẫu nhiên của một chút tâm trí: Đi theo dòng, nếu có cơ hội, hoặc bảo vệ chính mình. Tuy nhiên, trong trường hợp này, II tìm thấy điểm yếu của bot và bắt đầu đánh bại nó. Có lẽ câu chuyện về đây là một chủ đề cho một bài viết riêng.

Con trai yêu cầu viết một chương trình II đã chơi với nhau và không phải với một bot. Có những ý tưởng để làm tương tự cho trò chơi của Checkers hoặc th, tuy nhiên, đối với điều này tôi không có thời gian.

Phương pháp duy nhất tôi đã được áp dụng để có được các cá nhân mới là một đột biến. Bạn cũng có thể sử dụng crossover và đảo ngược. Có lẽ các phương pháp này sẽ tăng tốc kết quả của kết quả mong muốn.

Ý tưởng được sinh ra ở cuối: để cung cấp khả năng quản lý tất cả các quy trình trên PC và chiến đấu cho các tài nguyên máy tính. Kết nối PC với Internet, và nhóm các trang trại Bitcoan cũ sử dụng làm điện toán ...

Như đã nói, tiến hành một thí nghiệm tương tự, Blogger

Thay vào đó, anh ta nhìn vào các pixel riêng biệt của hình ảnh - và theo cách nhanh nhất để phân chia các đối tượng. Nếu số lượng đơn vị áp đảo sẽ có một pixel màu đen tại một điểm cụ thể và một số pixel trắng ở các điểm khác, máy sẽ rất nhanh chóng tìm hiểu chúng để xác định chúng trong nhiều pixel.

Bây giờ hãy quay lại dấu hiệu "Dừng". Ngay lập tức sửa các pixel của hình ảnh - các chuyên gia gọi sự can thiệp như vậy với "nhiễu loạn" - bạn có thể lừa dối máy tính và khiến nó nghĩ rằng dấu hiệu "dừng", và không.

Các nghiên cứu tương tự được thực hiện trong phòng thí nghiệm trí tuệ nhân tạo tiến hóa tại Đại học Wyoming và Cornell, đã tạo ra khá nhiều ảo ảnh quang học cho trí tuệ nhân tạo. Những hình ảnh ảo giác của các mẫu và màu sắc trừu tượng không giống với bất cứ điều gì cho mọi người, nhưng nhanh chóng được máy tính nhận ra dưới dạng rắn hoặc súng trường. Điều này cho thấy AI có thể nhìn vào một cái gì đó và không nhìn thấy đối tượng hoặc xem một thứ khác thay thế.

Điểm yếu này được phân phối trong tất cả các loại thuật toán học máy. "Có thể hy vọng rằng mỗi thuật toán có một Broach trong Armor", Evgeny Sparrow, phó giáo sư của Sở Tin học và Kỹ thuật máy tính tại Đại học Vanderbilt. "Chúng tôi sống trong một thế giới đa chiều rất phức tạp và các thuật toán bằng cách tự nhiên chỉ ảnh hưởng đến một phần nhỏ của nó."

Sparrow là "cực kỳ tự tin" rằng nếu những lỗ hổng này tồn tại, ai đó tìm ra cách sử dụng chúng. Có lẽ ai đó đã làm nó

Xem xét các bộ lọc thư rác, các chương trình tự động tung ra bất kỳ email vụng về nào. Những kẻ gửi thư rác có thể cố gắng vượt qua rào cản này bằng cách thay đổi chữ viết của các từ (thay vì viagra - qua @ gras) hoặc thêm danh sách "từ tốt", thường được tìm thấy trong các chữ cái bình thường: như "yeah", "tôi", "Rad". Trong khi đó, những kẻ gửi thư rác có thể cố gắng loại bỏ các từ thường xuất hiện trong thư rác, ví dụ: "Mobile" hoặc "thắng".

Những kẻ lừa đảo có thể đến vào một ngày nào? Một chiếc xe tự trị, bị đánh lừa bởi một nhãn dán trên Dấu hiệu dừng, là một kịch bản cổ điển, được phát minh bởi các chuyên gia trong lĩnh vực này. Dữ liệu bổ sung có thể giúp khiêu dâm trên các bộ lọc an toàn. Những người khác có thể cố gắng tăng số lượng séc. Tin tặc có thể điều chỉnh mã phần mềm độc hại để trốn tránh việc thực thi pháp luật.

Những người vi phạm có thể hiểu cách tạo dữ liệu truyền nếu bạn nhận được một bản sao thuật toán học máy mà họ muốn lừa dối. Nhưng để vượt qua thuật toán, không cần thiết. Bạn có thể chỉ cần phá vỡ nó với sức mạnh thô, ném một vài phiên bản email hoặc hình ảnh khác nhau cho đến khi chúng đi. Theo thời gian, điều này thậm chí có thể được sử dụng cho một mô hình hoàn toàn mới, sẽ biết những gì họ đang tìm kiếm những người tốt, và những gì để tạo ra dữ liệu để đánh lừa họ.

"Mọi người thao túng hệ thống học máy kể từ khi họ được trình bày lần đầu tiên", Patrick McDaniel, giáo sư về khoa học và kỹ thuật máy tính ở Đại học Pennsylvania nói. "Nếu mọi người sử dụng các phương pháp này, chúng ta thậm chí không thể biết về nó."

Không chỉ những kẻ lừa đảo có thể tận dụng các phương pháp này - mọi người có thể ẩn khỏi mắt X-quang của các công nghệ hiện đại.

"Nếu bạn có bất kỳ bất đồng chính trị nào trong chế độ đàn áp và muốn thực hiện các sự kiện mà không có kiến \u200b\u200bthức về các dịch vụ đặc biệt, bạn có thể cần tránh các phương thức quan sát tự động dựa trên việc học máy", tải.

Trong một trong những dự án được xuất bản vào tháng 10, các nhà nghiên cứu từ Đại học Carnegie - Mellon đã tạo ra một vài điểm có thể đánh lừa hệ thống nhận dạng khuôn mặt, buộc máy tính phải nhầm trừ nữ diễn viên Reese Witherspoon cho Russell Crow. Nghe có vẻ lố bịch, nhưng một công nghệ như vậy có thể hữu ích cho một người đang cố gắng tránh kiểm duyệt từ sức mạnh của người dân.

Làm gì với tất cả những điều này? "Cách duy nhất để tránh hoàn toàn điều này là tạo ra một mô hình lý tưởng sẽ luôn đúng," tải nói. Ngay cả khi chúng ta có thể tạo ra một trí tuệ nhân tạo, sẽ vượt quá mọi người trong tất cả các khía cạnh, thế giới vẫn có thể trượt một con lợn ở một nơi bất ngờ.

Thuật toán học máy thường được đánh giá bởi độ chính xác của chúng. Một chương trình công nhận ghế trong 99% các trường hợp sẽ rõ ràng tốt hơn một chương trình công nhận 6 chủ tịch trong số 10. Nhưng một số chuyên gia cung cấp một cách khác để đánh giá khả năng của thuật toán để đối phó với cuộc tấn công: Khó khăn hơn, càng tốt.

Một quyết định khác có thể là các chuyên gia có thể thiết lập các chương trình một tốc độ nhất định. Tạo các ví dụ của riêng bạn về các cuộc tấn công trong phòng thí nghiệm, dựa trên khả năng tội phạm theo ý kiến \u200b\u200bcủa bạn, và sau đó hiển thị thuật toán học máy của họ. Điều này có thể giúp anh ta trở nên bền vững hơn theo thời gian - tất nhiên, tất nhiên, các cuộc tấn công thử nghiệm đó sẽ tương ứng với loại sẽ được kiểm tra trong thế giới thực.

Hệ thống đào tạo máy - một công cụ để hiểu. Chúng ta phải hợp lý và hợp lý liên quan đến những gì chúng tôi cung cấp cho họ và những gì họ nói với chúng tôi, McDaniel nói. "Chúng ta không nên đối xử với họ như một sự thật hoàn hảo của sự thật."

16 tháng 9 năm 2017 lúc 22:08

Trồng Trí tuệ nhân tạo về ví dụ về một trò chơi đơn giản

  • Trí tuệ nhân tạo ,
  • Trò chơi logic.
  • Chế độ phục hồi.

Trong bài viết này, tôi sẽ chia sẻ kinh nghiệm phát triển trí tuệ nhân tạo đơn giản nhất (AI) bằng thuật toán di truyền, cũng như cũng như sẽ nói về các lệnh tối thiểu cần thiết cho việc hình thành bất kỳ hành vi nào.

Kết quả của công việc là thực tế là AI, không biết các quy tắc, độc lập thành thạo trò chơi cross-gods và tìm thấy sự yếu kém của các bot chơi với anh ta. Nhưng tôi bắt đầu với một nhiệm vụ thậm chí còn dễ dàng hơn.

Bộ lệnh

Tất cả bắt đầu với việc chuẩn bị một tập hợp các lệnh mà II có thể có. Ngôn ngữ cấp cao chứa hàng trăm nhà khai thác khác nhau. Để làm nổi bật mức tối thiểu cần thiết, tôi quyết định đề cập đến trình biên dịch. Tuy nhiên, hóa ra nó chứa nhiều đội.

Tôi cần rằng AI có thể đọc và xuất dữ liệu, hoạt động với bộ nhớ, thực hiện các phép tính và hoạt động logic, thực hiện chuyển đổi và chu kỳ. Tôi đã xem qua ngôn ngữ não chỉ chứa 8 lệnh và có thể thực hiện bất kỳ tính toán nào (tức là đầy Turing). Về nguyên tắc, nó phù hợp để lập trình di truyền, nhưng tôi đã tiếp tục.

Tôi tự hỏi: số lệnh tối thiểu là cần thiết để thực hiện bất kỳ thuật toán nào? Khi nó bật ra - một!

Bộ xử lý URISC chỉ chứa một lệnh: để khấu trừ và bỏ qua hướng dẫn sau, nếu được trừ lớn hơn mức giảm. Điều này là đủ để xây dựng bất kỳ thuật toán.

Oleg Mashka đã đi xa hơn nữa, ông đã phát triển đội BitbitJump và chứng minh rằng nó đầy Turing. Lệnh chứa ba địa chỉ, sao chép một bit từ đầu tiên đến địa chỉ bộ nhớ thứ hai và chuyển điều khiển đến địa chỉ thứ ba.

Bằng cách mượn ý tưởng của Oleg, để đơn giản hóa công việc, tôi đã phát triển lệnh Sumifjump. Lệnh chứa bốn toán hạng: a, b, c, d và thực hiện các phần sau: vào ô tại địa chỉ B thêm dữ liệu từ ô đến a nếu giá trị được chỉ định nhiều hơn *, thì nó di chuyển đến c, nếu không Nó đi đến D.

Ghi chú

* Trong trường hợp này, 128 đã được sử dụng - một nửa so với bộ gen dài.


Khi toán hạng A đề cập đến ô nhớ N0, dữ liệu là đầu vào và khi đến ô N1, đầu ra.

Dưới đây là mã Sumifjump trên freepascal (tương tự Detpi miễn phí).

THỦ TỤC RUBPROG (S: TDATA); Var a, b, c, d: tdata; Bắt đầu Inc (NSTEP); Nếu NSTEP\u003e MAXSTEP thì hãy bắt đầu Progresult: \u003d "MaxStep"; Lối ra; kết thúc; A: \u003d S; B: \u003d S + 1; C: \u003d S + 2; D: \u003d S + 3; A: \u003d prog [a]; B: \u003d prog [b]; C: \u003d prog [c]; D: \u003d prog [d]; Nếu A \u003d 0 thì hãy bắt đầu Progresult: \u003d "Đầu vào"; Lối ra; kết thúc; Nếu A \u003d 1 thì hãy bắt đầu Progresult: \u003d "Đầu ra"; Lối ra; kết thúc; Prog [b]: \u003d prog [b] + prog [a]; Nếu prog [b]< ProgLength div 2 then RunProg(c) else RunProg(d); end;
Sumifjump thực hiện một mã tự sửa đổi. Có thể thực hiện bất kỳ thuật toán nào có sẵn trên ngôn ngữ lập trình thông thường. Mã dễ dàng thay đổi và chịu được bất kỳ thao tác.

Nhiệm vụ đơn giản

Vì vậy, AI của chúng tôi chỉ là một đội. Trong khi Noliki Cross là một trò chơi rất khó khăn với anh ta, và tôi bắt đầu đơn giản hơn.

Bot đưa ra một số ngẫu nhiên và AI nên xem xét dữ liệu và đưa ra câu trả lời. Nếu số lượng lớn hơn mức trung bình (từ phạm vi số ngẫu nhiên), AI sẽ phát hành một số ít hơn mức trung bình và ngược lại.

Bộ gen của AI của chúng tôi bao gồm 256 ô có giá trị từ 0 đến 255. Mỗi giá trị là bộ nhớ và mã và địa chỉ. Số lượng các bước tiến trình được giới hạn ở 256. Các toán hạng được đọc bởi nhau.

Ban đầu, bộ gen được hình thành bởi một tập hợp các số ngẫu nhiên, vì vậy tôi không biết anh ta cần gì để chơi. Hơn nữa, anh ta không biết phải nhập liên tục và hiển thị dữ liệu, phản hồi với Bot.

Dân số và lựa chọn

Dân số đầu tiên bao gồm 256 AI, bắt đầu chơi với Bot. Nếu AI thực hiện các hành động chính xác, ví dụ, yêu cầu dữ liệu trên đầu vào, và sau đó tôi đã mang một thứ gì đó, sau đó AI được kính. Các hành động đúng hơn, càng nhiều điểm.

16 AI, ghi được hầu hết các điểm, đưa ra 15 con cháu và tiếp tục tham gia vào trò chơi. Hậu duệ là một đột biến. Đột biến xảy ra bằng cách thay thế bản sao của cha mẹ của một ô ngẫu nhiên cho ý nghĩa ngẫu nhiên.

Nếu trong dân số đầu tiên, không có ai ghi điểm, dân số sau đây được hình thành. Và vì vậy cho đến khi một số AI bắt đầu thực hiện các hành động phù hợp và đưa ra những đứa trẻ "chính xác".

Sự phát triển


Có hàng ngàn thay đổi thế hệ giữa các sự kiện có ý nghĩa. Chương trình được đưa ra trong một số luồng trên Core i7. Tính toán mất khoảng 15 phút.

  1. Khi AI "Lãnh đạo" đã phạm lỗi ngẫu nhiên và không đạt đủ điểm, dân số bắt đầu xuống cấp, bởi vì Con cái đã được hình thành từ cha mẹ "phụ".
  2. Nó đã xảy ra rằng trong một luồng với những người ngoài đã chà đạp tại chỗ, một đột biến thành công đã diễn ra, đảm bảo sự phát triển bùng nổ của các điểm có được. Sau đó, chủ đề này đã trở thành người lãnh đạo.
  3. Đôi khi không có đột biến thành công nào xảy ra trong một thời gian dài và thậm chí 500 nghìn thế hệ thiếu để hoàn thành việc lựa chọn.

Phần kết luận

Tóm lại, tôi đã làm tương tự với trò chơi Cross-Noliki. Kích thước của bộ gen sử dụng một như trong trường hợp đầu tiên. Số bước được tăng lên 1024 và kích thước dân số lên tới 64 (để tính toán nhanh hơn). Việc tính toán mất một vài thời gian nữa. Mọi thứ xảy ra về cùng một kịch bản.

Đầu tiên, AI đã chơi với "sự ngẫu nhiên". Tôi gọi bot, đi ngẫu nhiên. Khá nhanh chóng tôi bắt đầu đánh bại nó, điền bất kỳ dòng nào. Tiếp theo, tôi phức tạp nhiệm vụ, thêm một cách ngẫu nhiên của một chút tâm trí: Đi theo dòng, nếu có cơ hội, hoặc bảo vệ chính mình. Tuy nhiên, trong trường hợp này, II tìm thấy điểm yếu của bot và bắt đầu đánh bại nó. Có lẽ câu chuyện về đây là một chủ đề cho một bài viết riêng.

Con trai yêu cầu viết một chương trình II đã chơi với nhau và không phải với một bot. Có những ý tưởng để làm tương tự cho trò chơi của Checkers hoặc th, tuy nhiên, đối với điều này tôi không có thời gian.

Phương pháp duy nhất tôi đã được áp dụng để có được các cá nhân mới là một đột biến. Bạn cũng có thể sử dụng crossover và đảo ngược. Có lẽ các phương pháp này sẽ tăng tốc kết quả của kết quả mong muốn.

Ý tưởng được sinh ra ở cuối: để cung cấp khả năng quản lý tất cả các quy trình trên PC và chiến đấu cho các tài nguyên máy tính. Kết nối PC với Internet, và nhóm các trang trại Bitcoan cũ sử dụng làm điện toán ...

Như đã nói, tiến hành một thí nghiệm tương tự, Blogger

Bài viết về chủ đề: