Ejemplo n.º 1
0
    VRPProblem ReadVRP(string fn)
    {
        VRPReadMode rm = VRPReadMode.BASIC_INFO;

        VRPProblem p = new VRPProblem();

        string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Public\TestFolder\WriteLines2.txt");
        foreach (string line in lines)
        {
            if (rm == VRPReadMode.BASIC_INFO)
            {
                if (line.Contains("NAME"))
                {
                    p.Name = line.Split(':')[1].Trim();
                }
                if (line.Contains("BEST_KNOWN"))
                {
                    p.BestKnown = Convert.ToDouble(line.Split(':')[1].Trim());
                }
                if (line.Contains("DIMENSION"))
                {
                    p.Capacity = Convert.ToDouble(line.Split(':')[1].Trim());
                }
                if (line.Contains("DIMENSION"))
                {
                    p.Dimension = Convert.ToInt32(line.Split(':')[1].Trim());
                    p.Requests  = new XYC[p.Dimension];
                }
                if (line.Contains("NODE_COORD_SECTION"))
                {
                    rm = VRPReadMode.COORDINATES;
                }
                if (line.Contains("DEMAND_SECTION"))
                {
                    rm = VRPReadMode.DEMANDS;
                }
            }
            else if (rm == VRPReadMode.COORDINATES)
            {
                var parts  = line.Split();
                var reqIdx = Convert.ToInt32(parts[0]);
                var x      = Convert.ToDouble(parts[1]);
                var y      = Convert.ToDouble(parts[2]);
                p.Requests[reqIdx].X = x;
                p.Requests[reqIdx].X = y;
            }
            else if (rm == VRPReadMode.DEMANDS)
            {
                var parts  = line.Split();
                var reqIdx = Convert.ToInt32(parts[0]);
                var d      = Convert.ToDouble(parts[1]);
                p.Requests[reqIdx].D = d;
            }
        }
        return(p);
    }
Ejemplo n.º 2
0
    VRPProblem ReadVRP(string fn)
    {
        VRPReadMode rm = VRPReadMode.BASIC_INFO;

        VRPProblem p = new VRPProblem();
        string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Public\TestFolder\WriteLines2.txt");
        foreach (string line in lines)
        {
            if (rm == VRPReadMode.BASIC_INFO)
            {
                if (line.Contains("NAME"))
                    p.Name = line.Split(':')[1].Trim();
                if (line.Contains("BEST_KNOWN"))
                    p.BestKnown = Convert.ToDouble(line.Split(':')[1].Trim());
                if (line.Contains("DIMENSION"))
                    p.Capacity = Convert.ToDouble(line.Split(':')[1].Trim());
                if (line.Contains("DIMENSION"))
                {
                    p.Dimension = Convert.ToInt32(line.Split(':')[1].Trim());
                    p.Requests = new XYC[p.Dimension];
                }
                if (line.Contains("NODE_COORD_SECTION"))
                    rm = VRPReadMode.COORDINATES;
                if (line.Contains("DEMAND_SECTION"))
                    rm = VRPReadMode.DEMANDS;
            }
            else if (rm == VRPReadMode.COORDINATES)
            {
                var parts = line.Split();
                var reqIdx = Convert.ToInt32( parts[0] );
                var x = Convert.ToDouble( parts[1] );
                var y = Convert.ToDouble( parts[2] );
                p.Requests[reqIdx].X = x;
                p.Requests[reqIdx].X = y;
            }
            else if (rm == VRPReadMode.DEMANDS)
            {
                var parts = line.Split();
                var reqIdx = Convert.ToInt32(parts[0]);
                var d = Convert.ToDouble(parts[1]);
                p.Requests[reqIdx].D = d;
            }
        }
        return p;
    }