Làm thế nào phổ biến là các thuật toán thời gian hàm mũ chung trong phần mềm sản xuất?


11

Tôi biết rằng các thuật toán thời gian theo cấp số nhân thường nên tránh nhưng đôi khi cần thiết. Một trường hợp là nhân viên bán hàng du lịch. Làm thế nào phổ biến là các thuật toán như vậy trong phần mềm sản xuất? Là những trường hợp thường cần thiết hoặc là kết quả của công việc vội vàng? Tôi hiểu rằng nhiều người có thể được giải quyết với một heuristic tốt. Những gì thường được thực hiện với những người không thể?


1
Ấn tượng của tôi là đối với những vấn đề như vấn đề nhân viên bán hàng du lịch, người ta bỏ qua thuật toán thời gian theo cấp số nhân, và thay vào đó là một công cụ tìm kiếm tốt hơn nhiều (trong trường hợp của nhân viên bán hàng du lịch, họ khá giỏi)
soandos

Rất nhiều vấn đề được giải quyết với thuật toán "hàm mũ". (TSP, CDS, ILP, v.v.) Chỉ là các thuật toán theo cấp số nhân có khả năng phỏng đoán tốt, vì vậy chúng hoạt động hợp lý với nhiều dữ liệu trong thế giới thực. Một câu hỏi tốt hơn có lẽ có thể là, "Làm thế nào phổ biến là generic hợp các thuật toán lũy thừa thời gian trong phần mềm sản xuất?"
dùng541686

Điều chỉnh câu hỏi
Kỹ sư thế giới

Nhân viên bán hàng du lịch là n!, Không theo cấp số nhân.
user281377

1
@ user281377: Nó cũng ở O (n ^ 2 2 ^ n) vì vậy, đó là một vấn đề theo cấp số nhân. Điều này cũng rõ ràng bởi vì nó có thể được ánh xạ tới SAT trong thời gian poly có thể được giải quyết trong 2 ^ n thời gian - hoạt động cho tất cả các vấn đề NP.
Raphael

Câu trả lời:


7

Một cái gì đó không có trong phần mềm sản xuất nhưng được thực hiện trên phần mềm sản xuất là xác minh chính thức . Nó có thể không được áp dụng cho hầu hết các phần mềm của khách hàng nhưng được theo dõi cho các hệ thống và trình điều khiển nhúng, đó là phần cứng và phần mềm có tính chính xác là quan trọng (và dễ điều khiển).

Những vấn đề kiểm chứng đó thực sự có thể tính toán được (rào cản số 1) thường là EXPTIME -hard, trong những trường hợp may mắn hơn, bạn gặp phải sự cố hoàn thành PSPACE (rào cản số 2). Cả hai lớp đều (bị nghi ngờ) khó hơn các bài toán hoàn thành NP, rất dễ so sánh. Các vấn đề nghi ngờ theo cấp số nhân cũng dễ dàng thu được.

Trong những trường hợp này, heuristic (theo nghĩa kết quả cuối cùng) không cắt nó vì bạn cần kết quả xác định; do đó bạn cần máy móc lớn và thời gian. Có những heuristic (theo nghĩa lựa chọn thay thế) thường dẫn đến thời gian chạy ngắn hơn (nghĩa là thăm dò không gian tìm kiếm thông minh khi trạng thái lỗi được tìm kiếm) nhưng trong trường hợp xấu nhất, chờ đợi là tất cả những gì bạn có thể làm. Hoặc bạn có thể làm bằng chứng bằng bút và kiểm tra bằng máy , đơn giản hơn về mặt tính toán.


5

Thuật toán thường được sử dụng với độ phức tạp trường hợp xấu nhất theo cấp số nhân là phương pháp đơn giản được sử dụng trong lập trình tuyến tính . Tuy nhiên, độ phức tạp trường hợp chung của phương pháp đó là một vấn đề mở. Với một số giả định cụ thể, nó là đa thức.


5

Thông dịch viên ngôn ngữ lập trình kém hơn thời gian theo cấp số nhân (theo độ dài đầu vào của họ, tức là độ dài của chương trình họ đang phiên dịch) và chúng khá phổ biến. Một ví dụ khác là định lý tự động chứng minh / giải quyết ràng buộc / giải quyết sat / lập trình tuyến tính số nguyên. Và một ví dụ khác là phân biệt biểu tượng như được thực hiện trong ví dụ Maple / Mathicala (mặc dù có thể thực hiện phân biệt biểu tượng trong thời gian tuyến tính nếu bạn được phép chia sẻ biểu thức con giữa các nút).


1

Hãy để tôi lấy ví dụ về vấn đề nhân viên bán hàng đi du lịch. Tôi đã làm việc với nó một vài lần.

Có một vài lần khi tôi ở trong một nhóm viết giải pháp cho vấn đề nhân viên bán hàng du lịch nhưng với một số thông số khác. Ví dụ, nó có thể là một cửa hàng với một đội ngũ kỹ thuật viên và kỹ sư, mỗi người có một bộ kỹ năng độc đáo. Các điểm đến đến mỗi ngày dưới dạng yêu cầu dịch vụ. Tất cả các chương trình đang được sản xuất mặc dù chúng đã trải qua sửa đổi và bảo trì kể từ khi ban đầu viết chúng.

Đây là cách họ làm việc. Mỗi kỹ sư sẽ nhận được một danh sách những thứ cần phục vụ trên một thiết bị cầm tay hàng ngày. Khi họ hoàn thành mỗi nhiệm vụ dịch vụ, họ nên đóng vụ án. Các trường hợp bị bỏ lại tham gia các trường hợp được lên lịch cho ngày hôm sau với mức độ ưu tiên cao hơn một chút vì khi đó khách hàng sẽ có biểu hiện không hài lòng. Có một loạt lý do tại sao một kỹ sư sẽ không tham dự một vụ án. Vấn đề giao thông là phổ biến nhất.

Chúng phổ biến như thế nào? Ít nhất là phổ biến như số lượng yêu cầu dịch vụ sau bán hàng đến từ khách hàng. Nếu không có dịch vụ sau bán hàng, chẳng hạn, việc giữ chân khách hàng sẽ trở nên khó khăn và có được những khách hàng mới sẽ khó hơn.

Với nhiều cửa hàng dựa trên web như Amazon và các cửa hàng sách khác và các cửa hàng khác hoạt động tốt trong kinh doanh, tôi sẽ nghĩ rằng nhân viên bán hàng du lịch là phổ biến hơn trước đây. Ngoài ra, có thể có nhiều biến thể của vấn đề nhân viên bán hàng du lịch được dạy trong sách giáo khoa.


Giống như du khách Canada .
soandos
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.