# Verification via the Wolfram Cloud

## Description

The optional module, `Graph::Undirected::Hamiltonicity::Wolfram`

lets you determine
the Hamiltonicity of a given undirected graph, by evaluating the graph in the
Wolfram Open Cloud, using a built-in function of the Wolfram Programming Language.
This feature is quite useful in cross-checking the result you get from the algorithm
implemented in this Perl distribution.

## Synopsis

```
use Graph::Undirected::Hamiltonicity::Wolfram;
if ( is_hamiltonian_per_wolfram( $g ) ) {
say "The graph contains a Hamiltonian Cycle.";
} else {
say "The graph does not contain a Hamiltonian Cycle.";
}
```

## Installation

**Step 1:** Go to the Wolfram Programming Lab.

**Step 2:** Create a Wolfram ID ( if you don't have one ).

**Step 3:** Sign in, and click "Create a New Notebook"

**Step 4:** In the Wolfram notebook, paste in the following code and evaluate it:

```
CloudDeploy[ APIFunction[ {"x" -> "String"}, ( Length[ FindHamiltonianCycle[ Graph[ ToExpression[ StringSplit[ StringReplace[ #x, "=" -> "<->" ], "," ]]], 1 ]] & ), "JSON"]]
```

**Step 5:** The output will be a cloud object with a URL. Copy just the URL.

```
CloudObject[https://www.wolframcloud.com/objects/194a2864-c60b-4925-9ec0-1c51c2b64984]
```

**Step 6:** Copy the `hamilton.ini`

file to your home directory.

```
cp hamilton.ini $HOME
```

**Step 7:** Edit the copy of `hamilton.ini`

you made in your home directory. ( `$HOME/hamilton.ini`

)

**Step 8:** Find the `[wolfram]`

section and paste in the URL copied from the Wolfram notebook:

Before:

```
[wolfram]
url =
```

After:

```
[wolfram]
url = https://www.wolframcloud.com/objects/194a2864-c60b-4925-9ec0-1c51c2b64984
```

## Notes

**1.** The Cloud Object you created in step 5, will expire after a month. You will then have to repeat steps 3-8.