Why do we need increase_key procedure in max priority queue?
In some algorithms, you'll be able to remember the index.

In others, you might need a separate data structure (e.g., a hash table) that maps from the node to its index.  When you insert a node into the priority queue, you also add it to that mapping.  When you need to know a node's index (e.g.,to call increase_key), you look it up in that mapping.