private void reasonHow() {
		//To rationally anticipate the characteristics of the interaction devices
		//The number of potential participants
		//	Query the DF for other agents that can fulfill the goal
		DFAgentDescription dfd = new DFAgentDescription();
		ServiceDescription sd = new ServiceDescription();
		sd.setType(g);
		dfd.addServices(sd);
		
		DFAgentDescription[] result = null;
		try {
			result = DFService.search(this.agent, dfd);
			System.out.println(result.length + " results" );
	        if (result.length>0) {
	            System.out.println(" " + result[0].getName() );
	            
	            for (int i = 0; i < result.length; i++) {
					DFAgentDescription dfAgentDescription = result[i];
					
					candidates.add(dfAgentDescription.getName());
				}
	            
	        }
		} catch (FIPAException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//If there is more than one result then setup the Capability Interdependency
		
		//Add the interaction to the possible solution knowledge
		if(capabilityInterdependency) {
			//Load the mock interdependency
			if(candidates != null && !candidates.isEmpty()) {
				DataStore interactions = this.agent.getInteractions();
				AssignmentInteractionSimulation ais = new AssignmentInteractionSimulation(this.agent);
				ais.setupCandidates(candidates);
				ais.setupGoal(goalPerformative[1]);
				interactions.put("ASSIGNMENT", ais);
			}

			//Load the interdependency manager for integration
		}
		if(decompositionInterdependency) {
			
		}
		if(interestInterdependency) {
			
		}
		if(resourceInterdependency) {
			
		}
		if(knowledgeInterdependency) {
			
		}
		//Pre-interaction is complete so transition the mental state (1 -> 2 || Solutions -> Desire)
		this.agent.nextState();
	}