How to run:
	Make sure the requirements are fulfilled.
	Open the terminal.
	Change directory to the current directory of this file by using the respective terminal command (e.g. cd).
	Run the following command where 10000 represents the number of iterations:
		python source_code\noma.py 10000
	The number of iterations can be 100 at minimum and 10000 at default.
	Altough it takes longer times, the default number of iterations is recommended to obtain the expected outputs. At the minimum value, it would run but result in poor outputs.

Files in the Disk:
	licenses\Mathplotlib\LICENSE.txt	:	License file for Mathplotlib python library.
	licenses\NumPy\NumPy_License	:	License file for NumPy python library.
	licenses\pandas\LICENSE.txt	:	License file for pandas python library.
	licenses\pyclustering\LICENSE.txt	:	License file for pyclustering python library.
	licenses\Python\LICENSE.txt	:	License file for python language.
	licenses\scikit-learn\COPYING.txt	:	License file for scikit-learn python library.
	licenses\SciPy\LICENSE.txt	:	License file for SciPy python library.
	licenses\Spyder\AUTHORS.txt	:	Authorship information and links for Spyder IDE.
	licenses\Spyder\LICENSE.txt	:	License file for Spyder IDE.
	sample_outputs\2_fejer.png	:	Sample output figure for runFejerKernel() function in source_code\noma.py.
	sample_outputs\311_n_of_users_fit.png	:	Sample output figure for runNumberOfUsersSingle() function in source_code\noma.py.
	sample_outputs\312_n_of_antennas_fit.png	:	Sample output figure for runNumberOfAntennasSingle() function in source_code\noma.py.
	sample_outputs\314_tx.png	:	Sample output figure for runTxPowerSingle() function in source_code\noma.py.
	sample_outputs\321_spatial_model.png	:	Sample first output figure for runElbow() function in source_code\noma.py.
	sample_outputs\322_elbow.png	:	Sample second output figure for runElbow() function in source_code\noma.py.
	sample_outputs\323_kmeans.png	:	Sample third output figure for runElbow() function in source_code\noma.py.
	sample_outputs\331_n_of_users.png	:	Sample output figure for runNumberOfUsersDouble() function in source_code\noma.py.
	sample_outputs\332_n_of_antennas.png	:	Sample output figure for runNumberOfAntennasDouble() function in source_code\noma.py.
	sample_outputs\333_tx.png	:	Sample output figure for runTxPowerDouble() function in source_code\noma.py.
	sample_outputs\334_csi.png	:	Sample output figure for runCsi() function in source_code\noma.py.
	source_code\.spyproject\*	:	Configuration files for the spyder project.
	source_code\__pycache__\*	:	Cached compiled bytecodes.
	source_code\noma.py	:	Main source code.
	source_code\power_allocation.py	:	Source code that is responsible for power allocation.
	source_code\spatial_dist.py	:	Source code that is responsible for spatial distribution.
	
Hardware Requirements:
	Disk Capacity	:	Minimum 5 GB.
	RAM Capacity	:	Minimum 1 GB.
	
Software Requirements:
	Python Version	:	Developed on 3.7.4.
	Libraries:
		numpy Version	:	1.16.5.
		pandas Version	:	0.25.1.
		scikit-learn Version	:	0.21.3.
		matplotlib Version	:	3.1.1.
		pyclustering Version	:	0.9.3.1.
		scipy Version	:	1.3.1.