private void ZlepiajLitere(Graf <int> item)
        {
            List <int> P1, P2;
            float      ŚredniaWielkość = ObliczŚredniąWIelkość(item);

            item.ZnajdźPołączenia(out P1, out P2);
            if (P1.Count > 6)
            {
                return;
            }
            int   IlośćMożlwiości        = 1 << P1.Count;
            int   Stan                   = IlośćMożlwiości - 1;
            float NajwiekszePodobieństwo = int.MaxValue;
            List <ZdjecieZPozycją> NajlepiejDopasowane = new List <ZdjecieZPozycją>();

            for (int i = 0; i < IlośćMożlwiości; i++)
            {
                UstawGraf(P1, P2, Stan, i, item);
                item.CzyśćZaznaczenia();
                List <ZdjecieZPozycją> z = new List <ZdjecieZPozycją>();
                foreach (var SpójneObszary in item.ZnajdźObszary())
                {
                    z.Add(PobierzZdjecie(SpójneObszary));
                }
                double Podobieństwo;
                if (ŚredniaWielkość == 0)
                {
                    Podobieństwo = z.Average(d => d.NajbliszePodobieństwo);
                }
                else
                {
                    Podobieństwo = z.Average(d => d.NajbliszePodobieństwo / Matematyka.Podobność(ŚredniaWielkość, d.Obszar.Wielkośc()));
                }
                if (Podobieństwo < NajwiekszePodobieństwo)
                {
                    NajwiekszePodobieństwo = (float)Podobieństwo;
                    NajlepiejDopasowane    = z;
                }



                Stan = i;
            }
            foreach (var item2 in item.Listuj())
            {
                PaczkaGrafu pk = PaczkiDoGrafu[item2];
                pk.LinikaDoKrótrejNajlerzy.ListaZZdjeciami.Remove(pk.zp);
            }
            foreach (var item2 in NajlepiejDopasowane)
            {
                Liniki[0].Add(item2);
                item2.IlośćSąsiadów = item.Wielkość - 1;
            }
            item.Zaznacz();
        }
        private float ObliczŚredniąWIelkość(Graf <int> item)
        {
            HashSet <Linika> l = new HashSet <Linika>();

            foreach (var a in item.Listuj())
            {
                Linika linika = PaczkiDoGrafu[a].LinikaDoKrótrejNajlerzy;
                if (linika.ListaZZdjeciami.Count > MinimalnaWIelkoścLiniki)
                {
                    l.Add(linika);
                }
            }
            if (l.Count == 0)
            {
                return(0);
            }
            return(l.Average(D => D.ŚredniaWIelkość()));
        }