7 votos

¿Existen 33 copias disjuntas de 2K3,3(K5,5C10)2K3,3(K5,5C10) en K11,11K11,11 ?

Pregunta : ¿Existen 33 borde copias disjuntas de H:=2K3,3(K5,5C10)H:=2K3,3(K5,5C10) en K11,11K11,11 ?

Este es un dibujo de HH :

$2K_{3,3} \cup (K_{5,5} \setminus C_{10})$

Estoy trabajando en un problema de investigación de cuadrados latinos e intento que funcione una construcción. Si funcionara, daría una solución a este problema. Sólo que no consigo que funcione fácilmente. Tal vez lo anterior no existe, y mi construcción no funcionará en este caso.

  • Vemos HH es regular con grado 33 y los grados de los vértices en K11,11K11,11 est 1111 así que no hay conflicto.
  • HH tiene 3333 bordes mientras K11,11K11,11 tiene 121121 bordes, así que no hay choque ahí.

5voto

Misha Puntos 1723

Ya que he resuelto el otro problema vinculado, he pensado que podría probar con el recocido simulado.

La respuesta también es sí; de hecho, aquí podemos encontrar 33 copias disjuntas de 2K3,3(K5,5P10)2K3,3(K5,5P10) . Añadí la arista extra para intentar que el problema fuera un poco más limitado y que la solución fuera más bonita, pero no estoy seguro del efecto que tuvo.

La solución que he encontrado está más abajo:

enter image description here

Aquí está mi código de recocido simulado (puede tomar algunos intentos antes de encontrar una solución de energía cero):

edges[{perm1_, perm2_}] :=
  Join[
   Tuples[{perm1[[1 ;; 3]], perm2[[1 ;; 3]]}],
   Tuples[{perm1[[4 ;; 6]], perm2[[4 ;; 6]]}],
   Complement[
    Tuples[{perm1[[7 ;; 11]], perm2[[7 ;; 11]]}],
    Table[{perm1[[i]], perm2[[i]]}, {i, 7, 11}],
    Table[{perm1[[i]], perm2[[i + 1]]}, {i, 7, 10}]]];
value[state_] := 102 - Length[Union @@ (edges /@ state)];
randomPerm[] := {RandomSample[Range[11]], RandomSample[Range[11]]}
newState[] := {{Range[11], Range[11]}, randomPerm[], randomPerm[]};
randomSwitch[state_] := 
 Module[{h = RandomInteger[{2, 3}], i = RandomInteger[{1, 2}], j, k, 
   copy = state},
  {j, k} = RandomSample[Range[11], 2];
  copy[[h, i, {j, k}]] = Reverse[copy[[h, i, {j, k}]]];
  Return[copy];
  ]

currentState = bestState = newState[];
currentEnergy = bestEnergy = value[currentState];
temp = 1;
While[Exp[-1/temp] > 1/1000,
 Do[
  nextState = randomSwitch[currentState];
  nextEnergy = value[nextState];
  If[nextEnergy < bestEnergy, bestState = nextState; 
   bestEnergy = nextEnergy];
  prob = Exp[-((nextEnergy - currentEnergy)/temp)];
  If[RandomReal[] < prob, currentState = nextState; 
   currentEnergy = nextEnergy];
  , {3000}];
 If[bestEnergy == 0, Break[]];
 temp *= 0.99; Print[{temp, currentEnergy}]
 ]
Print["Done ", bestEnergy];

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X