TutorChase logo
Login
AQA A-Level Computer Science

13.4.4 Limits of computation

Computers are powerful, but they have limits. Some problems grow too quickly to solve efficiently or are limited by the hardware running the algorithm.

What are computational limits?

Computational limits define the boundaries of what problems computers can realistically solve. Although computers can process huge amounts of data very quickly, they are not limitless. Some problems remain unsolved in practice even if they are theoretically solvable. These limitations arise from two major factors:

  • Algorithmic complexity: Some algorithms grow so fast in time or memory usage that they become useless for large inputs.

  • Hardware constraints: The processing power and memory of real-world machines are limited, affecting the performance of even efficient algorithms.

A problem may be computable (solvable using a defined algorithm), but if it takes years or centuries to run, it becomes impractical, especially in real-world settings.

Growth of algorithmic complexity

The efficiency of an algorithm is strongly influenced by how the required resources (time and memory) grow in response to increased input size. This growth is described using different types of complexity classes, and some of these can explode very quickly, leading to performance problems.

What is exponential growth?

Take your grades to the next level!

UPGRADING TO PREMIUM UNLOCKS
AI Tutor
AI-powered study assistant
instant feedback and guidance
Predicted Papers
Examiner-style predicted papers
based on recent exam trends
Practice Questions
All exam practice questions
by topic for each subject
Study Notes
All detailed revision notes
written by expert teachers
Cheat Sheets
Quick revision summaries
perfect for last-minute review
Past Papers
Complete collection
of practice and past exam papers
Email
Password
Confirm Password
Already have an account?

Practice Questions

FAQ

Proving whether P equals NP is difficult because it requires showing either that every problem with a solution that can be verified quickly (NP) can also be solved quickly (P), or that at least one cannot. This involves deep understanding of mathematical logic and the structure of algorithms. The challenge lies in the fact that while thousands of NP problems have been studied and found no polynomial-time solution, no formal proof exists showing such solutions cannot exist. This question matters because if P were equal to NP, it would mean that problems currently considered intractable (like route optimisation or scheduling) could suddenly be solved efficiently. That would revolutionise fields like cybersecurity, AI, logistics, and more. On the other hand, if P does not equal NP, it confirms that some problems are inherently hard and require approximations or heuristics. The uncertainty forces computer scientists to design practical solutions without knowing the true boundaries of what is computationally possible.

A problem becomes practically unsolvable when the resources required to compute a solution—such as time, memory, or energy—grow so fast with input size that real-world systems cannot handle them. This often happens with exponential or factorial time complexity, where the number of steps needed increases faster than any realistic system can process. For instance, a brute-force solution might require billions of years to run on the fastest modern supercomputer. Additionally, the memory required to store intermediate data may exceed the physical limits of even advanced machines. Computability only guarantees that a result will eventually be produced, not that it will happen within a useful time frame. This is why developers often abandon exact solutions for large-scale problems in favour of approximations or specialised algorithms that produce good-enough results. In effect, the theoretical existence of a solution does not ensure that we can ever actually compute it within human or machine-limited lifespans.

Quantum computing has the potential to solve some problems faster than classical computing, but it does not magically make all intractable problems solvable. Certain quantum algorithms, such as Shor’s algorithm for integer factorisation, offer exponential speed-ups for specific tasks. However, most NP-complete problems remain hard even on quantum systems. While quantum computers can explore multiple states simultaneously using superposition, they still face limitations related to problem structure, noise, and decoherence. Moreover, for most NP-complete problems, no known quantum algorithm provides a polynomial-time solution. Quantum computing may significantly reduce the time required for some types of intractable problems, especially in optimisation and simulation, but it is unlikely to make exponential problems trivial. It’s also worth noting that building stable, large-scale quantum systems is a major ongoing challenge. So, although quantum computing is promising, it currently offers limited help in overcoming the core computational limits posed by algorithmic complexity for general-purpose problem-solving.

Heuristics provide quick, approximate solutions by following rules or patterns rather than exploring all possibilities, but they lack guarantees of accuracy or optimality. Their performance depends heavily on the problem type and structure. In some scenarios, a heuristic might produce an answer very close to the best solution. In others, it might generate poor results, especially if the problem space is deceptive or irregular. For example, a greedy algorithm for route planning might find a local minimum instead of the global shortest path, because it only chooses the nearest next step. Additionally, heuristics may fail to adapt when applied to different instances of the same problem or entirely different problems. They can also struggle with edge cases that require more comprehensive exploration. For this reason, while heuristics are essential for coping with computational limits, they must be carefully chosen, tested, and sometimes combined with other techniques such as backtracking or randomisation to improve reliability and performance.

Real-time systems are designed to respond to inputs or events within strict time constraints, often measured in milliseconds. To cope with computational limits, they rely on a combination of efficient algorithm design, pre-computed data, and simplified models. Algorithms used in real-time systems are typically chosen for their predictable and low time complexity, often prioritising speed over precision. For instance, instead of computing an exact path, a self-driving car may use a heuristic that provides a safe and fast approximation. Many real-time systems also use scheduling algorithms to ensure that the most time-critical tasks are completed first, and they may pre-process large datasets during idle periods to reduce on-the-fly computation. In safety-critical environments, such as aviation or medical devices, systems are rigorously tested to ensure they meet deadlines under worst-case conditions. Overall, meeting real-time constraints requires balancing computational accuracy with performance, often under significant hardware and software restrictions, using streamlined approaches that prioritise response time.

Hire a tutor

Please fill out the form and we'll find a tutor for you.

1/2
Your details
Alternatively contact us via
WhatsApp, Phone Call, or Email