title: How to solve this linear programing problem?
body: <p>I'm not so good at linear programing so I'm posting this problem here.
  Hope somebody can point me out to the right direction. 
  It is not homework problem so don't misunderstand.</p>
  
  <p>I have a matrix 5x5 <strong>(25 nodes)</strong>. Distance between each node and its adjacent nodes (or neighbor nodes) is <strong>1 unit</strong>. A node can be in 1 of 2 conditions: <strong>cache</strong> or <strong>access</strong>. If a node <strong>'i'</strong> is a cache node, an access nodes <strong>'j'</strong> can be able to access it with a cost of <strong>Dij x Aij</strong> <em>(Access Cost)</em>. Dij is Manhattan distance between node i and j. Aij is access frequency from node i to j. </p>
  
  <p>In order to become a cache node i, it needs to cache from an existing cache node k with a cost of <strong>Dik x C</strong> where C is a Integer constant. <em>(Cache Cost)</em> . C is called caching frequency.</p>
  
  <p>A is provided as an 25x25 matrix containing all integers that shows access frequency between any pair of node i and j. D is provided as an 25x25 matrix containing all Manhattan distances between any pair of node i and j.</p>
  
  <p>Assume there is 1 cache node in the matrix, find out the <strong>set of other cache nodes and access nodes</strong> such that the total cost will be minimized. 
  <strong><em>Total Cost = Total Cache Cost + Total Access Cost</em> .</strong> </p>