Object reference not set to an instance of an object.

I’m trying to create a basic simulation where cubes change color based on the color of adjacent cubes, but for some reason I keep getting this error:

NullReferenceException: Object reference not set to an instance of an object
GOL_Determiner.Update () (at Assets/GOL_Determiner.cs:55)

I have verified that there is an object of the name I am trying to reference(created on Start).

using UnityEngine;
using System.Collections;

public class GOL_Determiner : MonoBehaviour 
{
	public bool alive = false;
	GameObject obj_west;
	GameObject obj_east;
	GameObject obj_south;
	GameObject obj_north;
	GameObject obj_northwest;
	GameObject obj_northeast;
	GameObject obj_southwest;
	GameObject obj_southeast;
	int neighbor_number = 0;
	public int upper_limit;
	public int lower_limit;
	public Transform initiator;
	// Update is called once per frame
	void Update () 
	{
		ColormapGenerator2D targetScript = initiator.GetComponent<ColormapGenerator2D>();

		obj_north = GameObject.Find ("(" + gameObject.transform.position.x + "," + gameObject.transform.position.y.Equals(gameObject.transform.position.y + 1) + ")");
		obj_northeast = GameObject.Find ("(" + gameObject.transform.position.x.Equals(gameObject.transform.position.x + 1) + "," + gameObject.transform.position.y.Equals(gameObject.transform.position.y + 1) + ")");
		obj_northwest = GameObject.Find ("(" + gameObject.transform.position.x.Equals(gameObject.transform.position.x - 1) + "," + gameObject.transform.position.y.Equals(gameObject.transform.position.y + 1) + ")");
		obj_south = GameObject.Find ("(" + gameObject.transform.position.x + "," + gameObject.transform.position.y.Equals(gameObject.transform.position.y - 1) + ")");
		obj_southwest = GameObject.Find ("(" + gameObject.transform.position.x.Equals (gameObject.transform.position.x - 1) + "," + gameObject.transform.position.y.Equals(gameObject.transform.position.y - 1) + ")");
		obj_southeast = GameObject.Find ("(" + gameObject.transform.position.x.Equals (gameObject.transform.position.x + 1) + "," + gameObject.transform.position.y.Equals(gameObject.transform.position.y - 1) + ")");
		obj_west = GameObject.Find ("(" + gameObject.transform.position.x.Equals(gameObject.transform.position.x - 1) + "," + gameObject.transform.position.y + ")");
		obj_east = GameObject.Find ("(" + gameObject.transform.position.x.Equals(gameObject.transform.position.x + 1) + "," + gameObject.transform.position.y + ")");
		if (gameObject.transform.position.y != targetScript.height) 
		{
			if (obj_north.renderer.material.color == Color.green) 
			{
				neighbor_number = neighbor_number + 1;
			}
		}
		if (gameObject.transform.position.y != targetScript.height && gameObject.transform.position.x != targetScript.length) 
		{
			if (obj_northeast.renderer.material.color == Color.green) 
			{
					neighbor_number = neighbor_number + 1;
			}
		}
		if (gameObject.transform.position.y != targetScript.height && gameObject.transform.position.x != 0) 
		{
			if (obj_northwest.renderer.material.color == Color.green) 
			{
					neighbor_number = neighbor_number + 1;
			}
		}
		if (gameObject.transform.position.y != 0) 
		{
			if (obj_south.renderer.material.color == Color.green)
			{
				neighbor_number = neighbor_number + 1;
			}
		}
		if (gameObject.transform.position.x != targetScript.length)
		{
			if (obj_east.renderer.material.color == Color.green) 
			{
				neighbor_number = neighbor_number + 1;
			}
		}
		if (gameObject.transform.position.x != 0)
		{
			if (obj_west.renderer.material.color == Color.green) 
			{
				neighbor_number = neighbor_number + 1;
			}
		}
		if (gameObject.transform.position.y != 0 && gameObject.transform.position.x != targetScript.length) 
		{
			if (obj_southeast.renderer.material.color == Color.green) 
			{
				neighbor_number = neighbor_number + 1;
			}
		}
		if (gameObject.transform.position.y != 0 && gameObject.transform.position.x != 0) 
		{
			if (obj_southwest.renderer.material.color == Color.green) 
			{
				neighbor_number = neighbor_number + 1;
			}
		}
		if (neighbor_number > upper_limit) 
		{
			alive = false;
		}
		if (neighbor_number < lower_limit) 
		{
			alive = false;
		}
		if (neighbor_number > lower_limit && neighbor_number < upper_limit) 
		{
			alive = true;
		}

		if (alive == true) 
		{
			gameObject.renderer.material.color = Color.green;
		}
		if (alive == false) 
		{
			gameObject.renderer.material.color = Color.gray;
		}
	}
}

To debug, first lets make sure there is indeed an object with that name existing. Not doubting you, just covering all the bases.

In the start function, put:

void Start(){
     obj_south = GameObject.Find("obj_south");
     if(obj_south)
          Debug.Log(obj_south + " does actually exist");
     else
          Debug.Log("No object found for obj_south");
}

Next,

Lets check that there is a renderer on the object.

For this, put an extra line in your start function below the bit we just typed, that looks like this.

if(obj_south.GetComponent<Renderer>())
Debug.Log("obj_south has a renderer");
else
Debug.Log("No renderer found for obj_south");