public static Map read(String filename) throws IOException {
        List<Integer> generationIdx = new ArrayList<>();
        List<Integer> time = new ArrayList<>();
        List<Double> fitness = new ArrayList<>();
        double fr = -1d;
        double wr = -1d;
        double bestFitness = 0d;
        int generation = 0;

        BufferedReader in = new BufferedReader(new FileReader(filename));
        while (in.ready()) {
            String s = in.readLine();
            //if (s.startsWith("2."))  generationIdx.add(Integer.valueOf(s.substring(s.indexOf(" ")).trim()));
            // парсим время
            if (s.startsWith("Exec time:")) {
                String[] minSec = s.substring(11).trim().replaceAll("m", "").replaceAll("sec", "").split(" ");
                int total = Integer.valueOf(minSec[0]) * 60 + Integer.valueOf(minSec[1]);
                time.add(total);
            }
            
            // парсим пары значений фитнес поколение и выбираем запоминаем лучий фитнес и поколение на котором он появился
            if (s.length() > 2 && s.charAt(1) == '.') {
                String[] arr = s.split(" ");
                double fit = Double.valueOf(arr[0]);
                int gen = Integer.valueOf(arr[1]);
                if (fit > bestFitness) {
                    bestFitness = fit;
                    generation = gen;
                }
            }
            //if (s.startsWith("Fitness"))  fitness.add(Double.valueOf(s.substring(s.indexOf("=") + 1).trim()));
            if (s.startsWith("Mutate free rate")) fr = Double.valueOf(s.substring(s.indexOf(":") + 1).trim());
            if (s.startsWith("Mutate waste rate")) wr = Double.valueOf(s.substring(s.indexOf(":") + 1).trim());
        }
        in.close();
        generationIdx.add(generation);
        fitness.add(bestFitness);

        Map map = new HashMap<>();
        map.put("gen", generationIdx);
        map.put("time", time);
        map.put("fitness", fitness);
        map.put("fr", fr);
        map.put("wr", wr);
        return map;
    }