|
||||||||
![]() |
||||||||
ii. Environment, Choice of Language & Tools
A software program that will factorise an arbitrary integer utilising probabilistic algorithms and distributed computing methods. The factorisation will be optimised for integers of length less than one hundred decimal digits.
A large number of techniques exist for testing large integers for primality and (when composite) attempting to find their factors. Some of these methods are probabilistic in the sense that they use pseudo-random sequences to guide them, and others are probabilistic in the sense that they indicate primality/compositeness with measurable degrees of probability. The time-complexities of such factorisation algorithms are generally exponential with respect to the length of a given composite's prime factors. Although using techniques of parallelism cannot change the complexities of these algorithms, they can bring problems that are on the edge of tractability into the realm of possibility by dividing the heavy parts of some algorithms which lend themselves to parallelism. This project shall implement an application software
system that will apply some of these methods, optimised for integers having
up to one hundred decimal digits. 3. Statement Explicitly, the software program will meet the following requirements: 3.1 Factorisation • The software shall take as an input some integer and
produce a list of that integer's factors as output, with a configurably
high probability that the factors produced are prime. 3.2 Probabilism
Fully deterministic tests for primality are generally too slow to achieve satisfactory performance. However, there exist algorithms that indicate compositeness with absolute certainty and primality with a configurably high certainty. Since these methods cannot indicate primality with absolute certainty, they are classified as probabilistic, but the uncertainty is measurable and can be reduced so that the likelihood of any composite being mistakenly identified as prime is negligible. Moreover, these probabilistic methods considerably outperform the available fully deterministic methods, and hence shall be used where appropriate in ascertaining the primality of factors obtained.
Probabilistic techniques exist for extracting factors from composite integers. These techniques have better time-complexity for extracting larger factors from integers than deterministic methods such as trial division . Hence, where performance of factorisation can be improved by such methods, they shall be used. However, deterministic methods may also be used if appropriate, such as may be the case for extracting smaller factors.
•Prime factorisation is a hard problem, possibly NP-complete, although this has yet to be proven. Existing factorisation algorithms exhibit time complexities that are bounded by where such that c is an constant
greater than
• Experience with large integer packages has shown that they are prone to small bugs. However dependability on accuracy for big integer arithmetic is essential. Failure to compute correct values for any given operation could result in catastrophic errors in the result. Hence the libraries or functions used for arithmetic shall be tested thoroughly to produce evidence that the arithmetic is accurate "beyond all reasonable doubt". Further multiplication shall be performed on the factors in order to verify the final result. • An assumption shall also be made as to the accuracy of the arithmetic libraries and functions, in particular as to their self-consistency and accurate provision of results within reasonable expectations.
A user interface shall be provided for both server and
clients offering simple interaction for the user and in particular in
the case of the server, the provision of abortion for the current operation.
The server user interface shall display the current progress of the operation
to the server administrator, both in plain English and with technical
details.
This system shall be implemented by Wednesday, the 26th
Feburary, 2003 by the following group members: Finalised on 25th January 2003 [top]
ENVIRONMENT, CHOICE OF LANGUAGE & TOOLS Environment
[top]
|
||||||||