The details of the calculation for obtaining the key are described in the link you mentioned:
For WPA-PSK encryption, the binary key is derived from the passphrase
according to the following formula:
Key = PBKDF2(passphrase, ssid, 4096, 256) The function PBKDF2 is a
standardized method to derive a key from a passphrase. It is specified
in RFC2898 with a clear explanation on how to compute it. The function
needs an underlying pseudorandom function. In the case of WPA, the
underlying function is HMAC-SHA1.
PBKDF2 is a key derivation function that uses a hashing algorithm that servers two purposes. One is to make the process of obtaining the inputs of the function very difficult, and the second to make slow down the brute-forcing process.
To my knowledge, there is no published research that would recover the passphrase from the PBKDF2 output in a reasonable time. Your only option is to brute-force it, that means trying every possible passphrase and applying the process you mentioned and seeing if the output matches your key. There is special hardware, software and even services to make this process faster.
oclHashcat and Pyrit will bruteforce WPA and will use GPUs to make the process faster.
CloudCracker service will try 300 million words in 20 minutes for $17 on your keys.