I am greatly indebted to my supervisor, Professor Geoffrey Fox, for
initially allowing me the freedom to explore various research areas,
and subsequently providing invaluable support as my work progressed. To
the extent that I heeded his scepticism and followed his valuable
suggestions, the work has always been strengthened. 

Much credit is also due to Paul Coddington, whose mix of excitement,
prodding, and insightful suggestions were also been significant
motivators. My many years of fruitful collaborative work with Paul,
at Syracuse University's Northeast Parallel Architectures Center (NPAC) under 
the leadership of Professor Fox, contributed heavily to the development of 
the core method presented in this thesis. Our collaboration continues in 
this area and other related fields.

I am also indebted to Professor Ernie Sibert for his insightful comments 
and valuable suggestions. Reviews and comments on this work by
Ernie Sibert, Bart Selman, Carla Gomes and Paul Coddington served in clarifying
and strengthening the presentation of the main ideas of this thesis. 

I also thank Simon Catterall for taking on the responsibility of the
chairmanship of the defense committee and also handling afterward all
related graduate school papers. 

I have greatly benefited from my years of work with Geoffrey Fox and 
Nancy McCracken at NPAC on Parallel Computing, Computational Science, 
Information Systems and Technologies. Many thanks 
also to the numerous researchers and students that I have had the
pleasure in meeting while working at NPAC. 

My deepest thanks and gratitude to my dissertation committee
members: Professors Fox, Selman, Sibert, Catterall, Gomes, and McCracken.

Finally, I dedicate this thesis to my dear father, who have given me so much and 
helped me in every way possible, making my life a little easier. 
May God have mercy on him and bless his soul.