Hãy để chúng tôi nói rằng một ngôn ngữ là P -d mật độ gần nếu có một thuật toán thời gian đa thức quyết định chính xác trên hầu hết tất cả các đầu vào.
Nói cách khác, có một P , sao cho đang biến mất, có nghĩa là Điều đó cũng có nghĩa là trên một đầu vào ngẫu nhiên thống nhất, thuật toán polytime cho A sẽ đưa ra câu trả lời đúng cho L với xác suất tiếp cận 1. Do đó, việc xem L gần như dễ dàng. ALL
Lưu ý rằng không phải thưa thớt. Ví dụ: nếu nó có n -bit, thì nó vẫn biến mất (với tốc độ theo cấp số nhân), vì .
Theo định nghĩa trên, không khó để xây dựng các vấn đề NP -complete gần đúng với P -d mật độ, theo định nghĩa trên. Ví dụ: đặt là bất kỳ ngôn ngữ NP -complete nào và xác định . Sau đó, giữ lại tính đồng bộ NP , nhưng có nhiều nhất là n -bit yes-instance. Do đó, thuật toán tầm thường trả lời "không" cho mọi đầu vào, sẽ quyết định chính xác trên hầu hết tất cả các đầu vào; nó sẽ chỉ sai trên một phần của đầu vào -bit.
Mặt khác, sẽ rất ngạc nhiên nếu tất cả các vấn đề của NP -complete đều đóng P -d mật độ. Điều đó có nghĩa là, theo một nghĩa nào đó, tất cả các vấn đề NP -complete hầu như dễ dàng. Điều này thúc đẩy câu hỏi:
Giả sử P NP , một số vấn đề NP -complete tự nhiên không phải là P -d mật độ gần?