WEBVTT

00:00.000 --> 00:08.000
We can start with the next call.

00:08.000 --> 00:15.000
So actually it's going to talk about some of the open search tools that the end is

00:15.000 --> 00:19.000
in my writing for Magnostic.

00:19.000 --> 00:21.000
Thank you, Rosanto.

00:21.000 --> 00:22.000
Hi everyone.

00:22.000 --> 00:24.000
So my name is Arshit.

00:24.000 --> 00:28.000
I'm from India and I work with Kubrick as a quantum software engineer.

00:28.000 --> 00:32.000
And today I'm going to be talking about open source tools for platform,

00:32.000 --> 00:34.000
agnostic, quantum computing.

00:34.000 --> 00:35.000
That's a lot to take in.

00:35.000 --> 00:36.000
So we're with me.

00:36.000 --> 00:40.000
And it's going to be a little bit similar in the talk that we had just now,

00:40.000 --> 00:42.000
with QMAT, but a lot more than that.

00:42.000 --> 00:44.000
So let's get started.

00:44.000 --> 00:46.000
So the agenda is threefold.

00:46.000 --> 00:49.000
First, we're going to be talking what exactly is Kubrick.

00:49.000 --> 00:51.000
What are the motivations in why we exist?

00:51.000 --> 00:54.000
Then we're going to be diving into the open source tools,

00:54.000 --> 00:55.000
which we have read.

00:56.000 --> 00:58.000
The first and the foremost is the Kubrick SDK.

00:58.000 --> 01:00.000
In this, we have two components.

01:00.000 --> 01:03.000
The Kubrick runtime and the Kubrick transpiler,

01:03.000 --> 01:08.000
which enables users to develop platform agnostic algorithms.

01:08.000 --> 01:13.000
And then finally, I'm going to be talking about a relatively new tool.

01:13.000 --> 01:16.000
That's called piecasm, which is, you know,

01:16.000 --> 01:19.000
transformation analysis of quantum assembly language with Python.

01:19.000 --> 01:21.000
So let's get started.

01:21.000 --> 01:24.000
So first of all, let's understand why Kubrick.

01:24.000 --> 01:27.000
And imagine your user, and you're trying to get into quantum,

01:27.000 --> 01:29.000
or you're already in quantum, right?

01:29.000 --> 01:31.000
And think of your initial days.

01:31.000 --> 01:32.000
So what do you do?

01:32.000 --> 01:33.000
You learn a bunch of theory.

01:33.000 --> 01:37.000
You learn a bit of linear algebra or some quantum information signs.

01:37.000 --> 01:40.000
And then you want to actually run your quantum circuits,

01:40.000 --> 01:43.000
first on the simulator, and then on the hardware, right?

01:43.000 --> 01:45.000
How do you get access to that hardware?

01:45.000 --> 01:48.000
And let's say once you've learned a particular package,

01:48.000 --> 01:52.000
how do you, you know, run your circuits to different hardware, right?

01:52.000 --> 01:55.000
You know, the problem that are found are also face like,

01:55.000 --> 01:56.000
I would say, four years ago.

01:56.000 --> 01:58.000
And that is how Kubrick was born.

01:58.000 --> 02:01.000
To be a one-stop platform, enabling quantum computing,

02:01.000 --> 02:04.000
and not having as, you know, the last speaker said,

02:04.000 --> 02:07.000
vendor lock-in, right?

02:07.000 --> 02:10.000
So this is one feature that we have.

02:10.000 --> 02:12.000
That's called the Kubrick lab.

02:12.000 --> 02:15.000
What Kubrick lab provides is quantum software development

02:15.000 --> 02:16.000
in the cloud itself.

02:16.000 --> 02:20.000
And I'm going to be showing a quick demo after this slide.

02:20.000 --> 02:23.000
And you can, you know, pretty easily start working

02:23.000 --> 02:26.000
with any particular quantum computing package,

02:26.000 --> 02:30.000
like Kiskit or Amazon's bracket or Serk or Google Serk.

02:30.000 --> 02:34.000
And also use Kubrick SVK, which is our open source tool,

02:34.000 --> 02:38.000
to, you know, integrate your quantum jobs on different hardware.

02:38.000 --> 02:39.000
Okay?

02:39.000 --> 02:42.000
And let's have some moving pieces now.

02:42.000 --> 02:43.000
So this is a demo.

02:43.000 --> 02:47.000
This is, this is what you, you know,

02:47.000 --> 02:50.000
live at when you land at Kubrick.com.

02:50.000 --> 02:53.000
And whenever you click start now, this is our account page.

02:53.000 --> 02:56.000
This represents what kind of plan you have,

02:56.000 --> 02:58.000
how many credits you have.

02:58.000 --> 03:00.000
And for the purposes of this demo,

03:00.000 --> 03:02.000
I'm going to be talking about three services,

03:02.000 --> 03:06.000
quantum jobs, devices, and lab environment manager.

03:06.000 --> 03:07.000
Why?

03:07.000 --> 03:09.000
Because they use the open source tools,

03:09.000 --> 03:12.000
which I'm going to be talking about, post this demo.

03:12.000 --> 03:13.000
Okay?

03:13.000 --> 03:18.000
So first, let's, you know, talk about quantum jobs, right?

03:18.000 --> 03:21.000
So let's say you have any particular vendor,

03:21.000 --> 03:23.000
you want to execute your quantum circuit on.

03:23.000 --> 03:26.000
You can see that through this interface.

03:26.000 --> 03:28.000
This is called the quantum jobs interface.

03:28.000 --> 03:30.000
And you can click on any particular job,

03:30.000 --> 03:33.000
and see the details regarding how many Kubricks

03:33.000 --> 03:35.000
were present in that job, or, you know,

03:35.000 --> 03:38.000
what was the circuit depths,

03:38.000 --> 03:41.000
whether they were any measurements or not in that particular job.

03:41.000 --> 03:44.000
And the details about the provider on which this job was run.

03:44.000 --> 03:45.000
Okay?

03:45.000 --> 03:47.000
This is regarding quantum jobs.

03:47.000 --> 03:49.000
Then comes the devices.

03:49.000 --> 03:52.000
So we have a lot of integrations with different vendors,

03:52.000 --> 03:56.000
which provide their simulators and hardware through our platform.

03:56.000 --> 03:58.000
So for the sake of this example,

03:58.000 --> 04:00.000
I will, for the sake of this presentation,

04:00.000 --> 04:03.000
I'll take the example of AWS's state vector simulator.

04:03.000 --> 04:06.000
Here what you can do is that you can just,

04:06.000 --> 04:08.000
get some details about the device,

04:08.000 --> 04:12.000
and the computing, the cubits, and the availability of the device.

04:12.000 --> 04:14.000
And what is the form of access?

04:14.000 --> 04:18.000
So here it's bracket, that's the package, which AWS has developed.

04:18.000 --> 04:21.000
And next, we're going to be talking about the lab environment manager.

04:21.000 --> 04:25.000
That is present in the cubrid lab environment,

04:25.000 --> 04:28.000
which is launched right now.

04:28.000 --> 04:31.000
That is a feature which allows you to, you know,

04:31.000 --> 04:34.000
develop Python virtual environments directly in the cloud

04:34.000 --> 04:37.000
and persists them across your sessions.

04:37.000 --> 04:40.000
So this is the lab interface, and this is very much like Colab,

04:40.000 --> 04:43.000
but a lot more tuned towards quantum computing.

04:43.000 --> 04:44.000
Okay?

04:44.000 --> 04:46.000
This is the lab environment manager.

04:46.000 --> 04:49.000
You have a lot of environments pertaining to a user.

04:49.000 --> 04:51.000
And you have a lot of environments,

04:51.000 --> 04:54.000
which are publicly available for any user to install and work with.

04:54.000 --> 04:56.000
This is what I'm scrolling right now.

04:56.000 --> 04:59.000
Let's take an example of, let's say, Penny Lane.

04:59.000 --> 05:01.000
This is Zanadoos environment and we click Install.

05:01.000 --> 05:05.000
That will be available for any user in their personal environment,

05:05.000 --> 05:06.000
which you can see here.

05:06.000 --> 05:09.000
And you can just click on it, activate it, and there you go.

05:09.000 --> 05:14.000
You can start using your Jupiter notebooks right with this environment's kernel.

05:14.000 --> 05:15.000
Okay?

05:15.000 --> 05:20.000
I already have Cubid SDK installed, and we can just add the kernel for that particular environment.

05:20.000 --> 05:26.000
We can click on that notebook and run with all the good stuff present in that kernel for that notebook.

05:26.000 --> 05:31.000
So this was kind of setting the background for the tools.

05:31.000 --> 05:37.000
And the most important ones are Cubid SDK and Pycasm.

05:37.000 --> 05:41.000
And let's talk about Cubid SDK now.

05:41.000 --> 05:50.000
So as you saw that Cubid SDK is a tool, which allows users to not think about how they're going to do something.

05:50.000 --> 05:52.000
But mostly about what they want to do.

05:52.000 --> 05:55.000
Let's say a user wants to write a quantum program.

05:55.000 --> 05:59.000
They only think about what's going to be the algorithmic details,

05:59.000 --> 06:00.000
but not the implementation details.

06:00.000 --> 06:03.000
So that is like the core motivation of Cubid SDK.

06:03.000 --> 06:06.000
And yeah, it's available on Pyp.

06:06.000 --> 06:08.000
You can install it, you can want to be turned.

06:08.000 --> 06:10.000
So yeah.

06:10.000 --> 06:13.000
And the feature right now I'm going to be talking about is Cubid runtime.

06:13.000 --> 06:20.000
What this does is, you know, material for after we talk about what the problem it's solving.

06:20.000 --> 06:21.000
Right?

06:21.000 --> 06:26.000
Let's first imagine that you are a user and you have a high level programming language.

06:26.000 --> 06:30.000
And you want to execute your program on a quantum computer.

06:30.000 --> 06:31.000
How do you do that?

06:31.000 --> 06:33.000
Well, it's not very trivial.

06:33.000 --> 06:39.000
You need to, you know, go through converting a program into an IR or an intermediate representation.

06:39.000 --> 06:44.000
Go through the, you know, stuff of client side management authentication.

06:44.000 --> 06:45.000
So on and so forth.

06:45.000 --> 06:51.000
Then billing and then finally executing on the hardware and then getting back the results and transforming them.

06:51.000 --> 06:52.000
Right?

06:53.000 --> 06:55.000
This is not very easy.

06:55.000 --> 06:57.000
And this is why we have built Cubid runtime.

06:57.000 --> 07:00.000
What it does is that it will take your program.

07:00.000 --> 07:04.000
It will convert that to device specific constraints,

07:04.000 --> 07:07.000
such as the gate set of a device or what kind of topology you have.

07:07.000 --> 07:11.000
Then finally it will convert that to a quantum program IR,

07:11.000 --> 07:15.000
which can be opened for under assembly language or it can be,

07:15.000 --> 07:18.000
the LLVM IR that is the QIR representation.

07:18.000 --> 07:21.000
And then finally you have the client side authentication,

07:21.000 --> 07:25.000
which is built into Cubid, which interacts with the Cubid API on the backend.

07:25.000 --> 07:28.000
So this is, you know, about Cubid runtime.

07:28.000 --> 07:32.000
And now we will see another demo of Cubid runtime.

07:32.000 --> 07:35.000
This is just another condensed information.

07:35.000 --> 07:40.000
So, okay.

07:49.000 --> 07:51.000
All right.

07:51.000 --> 07:54.000
So I have a Jupyter notebook running locally.

07:54.000 --> 07:56.000
And just to highlight that this is all local.

07:56.000 --> 07:59.000
You can also prep install Cubid and start working on this notebook.

07:59.000 --> 08:00.000
Right?

08:00.000 --> 08:02.000
Given you have set it up correctly.

08:02.000 --> 08:04.000
So yeah, you can prep install Cubid.

08:04.000 --> 08:06.000
I'm not going to be doing that here.

08:06.000 --> 08:08.000
You can print the version.

08:08.000 --> 08:12.000
There are some extractions present here such as the provider or the device.

08:12.000 --> 08:14.000
You're trying to run your program on.

08:14.000 --> 08:19.000
Provider here is Cubid because we are hosting all of these simulators,

08:19.000 --> 08:21.000
which you are, you know, seeing here.

08:21.000 --> 08:22.000
Okay.

08:22.000 --> 08:25.000
And then we can choose for the sake of this demo,

08:25.000 --> 08:27.000
the AWS is straight vector simulator.

08:27.000 --> 08:31.000
And you can clearly see that the target specification,

08:31.000 --> 08:35.000
or the program type it expects is bracket,

08:35.000 --> 08:37.000
which has been developed by AWS.

08:37.000 --> 08:41.000
And for here, we're just going to be preparing a GFZ state.

08:41.000 --> 08:43.000
This is a very simple max million times in the state.

08:43.000 --> 08:48.000
And you will set a short.

08:48.000 --> 08:50.000
I mean, a key point to note here,

08:50.000 --> 08:52.000
we're going to be building in packages,

08:52.000 --> 08:54.000
which are not directly supported on AWS.

08:54.000 --> 08:57.000
Here we're building in search, which is a Google package.

08:57.000 --> 08:59.000
Post that will build and kiss it.

08:59.000 --> 09:02.000
And then send directly to the AWS simulator,

09:02.000 --> 09:06.000
so that we can, you know, see how good Cubid SDK is.

09:06.000 --> 09:09.000
This will take some time because obviously this is interacting

09:09.000 --> 09:14.000
with the actual AWS packet, but I will end here on the jobs.

09:14.000 --> 09:20.000
And just to explain a little bit,

09:20.000 --> 09:23.000
this is the simulator object.

09:23.000 --> 09:26.000
We run the circuit, and hey, we got results.

09:26.000 --> 09:27.000
Okay.

09:27.000 --> 09:30.000
And these are the probability of our results.

09:30.000 --> 09:33.000
Similar case is with the kiss kit,

09:33.000 --> 09:36.000
circuit, we again take the AWS simulator,

09:36.000 --> 09:39.000
run the kiss kit, circuit, get the results back, and display them.

09:39.000 --> 09:43.000
Okay, so this is just, you know, promoting the efficacy of Cubid,

09:43.000 --> 09:46.000
that we are actually using different packages to run

09:46.000 --> 09:49.000
circuits on different devices.

09:49.000 --> 09:52.000
Okay, getting back to the presentation.

10:06.000 --> 10:13.000
All right.

10:13.000 --> 10:17.000
So yeah, as you saw that this enables agnostic quantum development.

10:17.000 --> 10:21.000
You can code in any package and execute on any backend with Cubid.

10:21.000 --> 10:24.000
And you can also see our runtime user guide, which we have on docs.

10:24.000 --> 10:26.000
We currently integrate with kiss kit,

10:26.000 --> 10:29.000
a Microsoft Azure, then AWS, OQC,

10:29.000 --> 10:32.000
IonQ, they're also other providers as Cubera,

10:32.000 --> 10:34.000
and any C, which are integrated,

10:35.000 --> 10:37.000
but these are one of the foremost.

10:37.000 --> 10:40.000
And yeah, this was the demo for runtime.

10:40.000 --> 10:42.000
Now let's go behind the scenes.

10:42.000 --> 10:43.000
How do we do that?

10:43.000 --> 10:46.000
So we have something called a Cubid Transpiler,

10:46.000 --> 10:49.000
which detects and makes your circuits

10:49.000 --> 10:52.000
run-able on a quantum device, right?

10:52.000 --> 10:54.000
Let's dive into the details of that.

10:54.000 --> 10:57.000
It allows you to convert one package to another,

10:57.000 --> 11:01.000
transform your, you know, program to device specific requirements,

11:01.000 --> 11:05.000
and then finally also enables access to any optimizations that you have

11:05.000 --> 11:07.000
in a particular package, right?

11:07.000 --> 11:10.000
Because that's integrated with our SDK.

11:10.000 --> 11:12.000
The model is similar to a graph.

11:12.000 --> 11:15.000
I think most of you are familiar with the graphs in the redesigns.

11:15.000 --> 11:19.000
Every single node we have is a quantum computing package,

11:19.000 --> 11:24.000
and an edge to another package is a conversion path.

11:24.000 --> 11:26.000
So let's say we choose search,

11:26.000 --> 11:29.000
and you want to convert to, let's say, kiss kit.

11:29.000 --> 11:31.000
We can go through search, bracket, kiss kit,

11:31.000 --> 11:34.000
or we can choose to cancel and do to kiss kit.

11:34.000 --> 11:36.000
So this is our Transpiler model.

11:36.000 --> 11:38.000
This is our works behind the scenes.

11:38.000 --> 11:42.000
And a test, do ensure that there is unitary equivalence,

11:42.000 --> 11:46.000
or basically there's no loss between converting one particular circuit

11:46.000 --> 11:48.000
from one package into another,

11:48.000 --> 11:51.000
and we have a very robust unit test for that.

11:51.000 --> 11:53.000
And you can easily execute as we saw a kiss kit

11:53.000 --> 11:56.000
so we can get on an Amazon back.

11:56.000 --> 12:01.000
So you can also see code here, which is present in our bit of repo.

12:01.000 --> 12:06.000
And this is like the example for the conversions.

12:06.000 --> 12:10.000
Let's say you take kiss kit, which is IBM's quantum computing package.

12:10.000 --> 12:12.000
You call Cubrid or Transpile on it.

12:12.000 --> 12:14.000
You take the circuit, you take the target,

12:14.000 --> 12:16.000
and then you can, you know, Transpiler,

12:16.000 --> 12:17.000
circuit to let's say AWS,

12:17.000 --> 12:21.000
search, open gasm, penny lane, or anything else.

12:21.000 --> 12:23.000
Again, this is our demo node book,

12:23.000 --> 12:27.000
which you can, you know, see to just see this in action.

12:27.000 --> 12:29.000
So flag that.

12:29.000 --> 12:32.000
Now, finally, we also have a pretty vibrant community,

12:32.000 --> 12:36.000
and we have a lot of issues and help required in Cubrid SDK,

12:36.000 --> 12:38.000
and other open source tools.

12:38.000 --> 12:41.000
And we also participate in Unitary Hack,

12:41.000 --> 12:43.000
in which contributors can actually, you know,

12:43.000 --> 12:48.000
submit PRs to different issues that we've registered for the Unitary Hack.

12:48.000 --> 12:51.000
And currently, we also have part of the QOSF mentorship program,

12:51.000 --> 12:54.000
which is a quantum open source foundation,

12:54.000 --> 12:57.000
where there are different cohorts for different mentees

12:57.000 --> 13:00.000
to participate in and develop cool projects.

13:00.000 --> 13:01.000
So, yeah.

13:01.000 --> 13:03.000
And now, let's talk about PyCasm.

13:03.000 --> 13:07.000
So, PyCasm is a tool, which we have recently developed

13:07.000 --> 13:11.000
for, you know, open gasm program transformation and analysis.

13:11.000 --> 13:13.000
And this is also a PayPal installable.

13:13.000 --> 13:15.000
You can, you know, play around with it.

13:15.000 --> 13:18.000
You don't even require any kind of, you know, access from Cubrid

13:18.000 --> 13:20.000
to interface with it.

13:20.000 --> 13:22.000
So, let's think about motivations first.

13:22.000 --> 13:25.000
And for those of you who don't know, open gasm

13:25.000 --> 13:27.000
or open quantum assembly language,

13:27.000 --> 13:30.000
is one of the most popular IRs in quantum.

13:30.000 --> 13:32.000
And that the effort has been, you know,

13:32.000 --> 13:35.000
undergoing with IBM lot.

13:35.000 --> 13:38.000
And gasm version 3.x, which was released, you know,

13:38.000 --> 13:41.000
in recent years, has a very extensive grammar.

13:41.000 --> 13:44.000
So, it is almost like Python, if you see it.

13:44.000 --> 13:47.000
And there are tools with support,

13:47.000 --> 13:49.000
type check-in, and semantic analysis.

13:49.000 --> 13:51.000
But there is not a tool with support,

13:51.000 --> 13:53.000
comprehensive semantic analysis.

13:53.000 --> 13:56.000
So, for example, if you see here,

13:56.000 --> 13:58.000
this is an open gasm code segment.

13:58.000 --> 14:00.000
You can see there are functions involved.

14:00.000 --> 14:02.000
There are Cubrid declarations involved.

14:02.000 --> 14:03.000
There are loops involved.

14:03.000 --> 14:06.000
Then there are, you know, types involved.

14:06.000 --> 14:09.000
How do we actually make this open gasm program,

14:09.000 --> 14:11.000
runnable on a quantum device?

14:11.000 --> 14:13.000
Because those devices just support, you know,

14:13.000 --> 14:14.000
let's say the Clifford set.

14:14.000 --> 14:16.000
Or let's say the RZ plus Cx set.

14:16.000 --> 14:17.000
So, something like that.

14:17.000 --> 14:19.000
Sorry, RZ plus Cx.

14:19.000 --> 14:21.000
So, this is the main motivation.

14:21.000 --> 14:25.000
And currently, we have extensive support for each of these features,

14:25.000 --> 14:28.000
which are, you know, present on this, and more.

14:28.000 --> 14:32.000
And a feature which I'd like to highlight is program

14:32.000 --> 14:34.000
unrolling and validation.

14:34.000 --> 14:37.000
So, by unrolling here, I mean, let's say,

14:37.000 --> 14:39.000
we have a very large program,

14:39.000 --> 14:42.000
and we want to decompose it down into sequential instructions,

14:42.000 --> 14:44.000
which a quantum computer can execute.

14:45.000 --> 14:46.000
That is what unrolling is.

14:46.000 --> 14:49.000
And we also have some support for transformation analysis,

14:49.000 --> 14:52.000
wherein you can, you know, plug in your quantum program,

14:52.000 --> 14:53.000
the open gasm program.

14:53.000 --> 14:55.000
Then, you know, start analyzing, like,

14:55.000 --> 14:57.000
how many number of Cubrids should we have,

14:57.000 --> 14:59.000
what's the depths of the program?

14:59.000 --> 15:02.000
Do we have barriers or measurements or so on and so forth?

15:04.000 --> 15:06.000
This is the complete directory,

15:06.000 --> 15:08.000
and just spit out errors if there are n.

15:08.000 --> 15:10.000
So, that was about pikasm.

15:11.000 --> 15:14.000
And these are the references.

15:14.000 --> 15:17.000
These are, you will have to access the slide

15:17.000 --> 15:18.000
because these are links.

15:18.000 --> 15:21.000
It didn't add the full URL fair.

15:21.000 --> 15:25.000
And these are the contact information.

15:25.000 --> 15:27.000
Thank you.

15:27.000 --> 15:37.000
Thank you.

15:37.000 --> 15:40.000
Any questions?

15:40.000 --> 15:47.000
Actually, actually, I have a Q and I'll see you next week.

15:47.000 --> 15:48.000
Yeah.

15:48.000 --> 15:49.000
Yeah.

15:49.000 --> 15:51.000
Yeah.

15:51.000 --> 16:00.000
So, initially, what we came from was a hub and spokes model.

16:00.000 --> 16:02.000
Oh, yeah, sorry.

16:02.000 --> 16:06.000
So, he's asked that the transpiler,

16:06.000 --> 16:09.000
why is the transpiler model going on?

16:09.000 --> 16:10.000
Yes.

16:10.000 --> 16:14.000
So, initially, what we came from was a hub and spokes model.

16:14.000 --> 16:16.000
Oh, yeah, sorry.

16:16.000 --> 16:19.000
So, he's asked that the transpiler,

16:19.000 --> 16:21.000
why is the transpiler model the way it is?

16:21.000 --> 16:24.000
And like, it might be that there's a lot of work

16:24.000 --> 16:26.000
which has been put into it and it can be

16:26.000 --> 16:28.000
probably simplified, right?

16:28.000 --> 16:29.000
From not wrong.

16:29.000 --> 16:31.000
So, initially, what we had was a hub and spokes model.

16:31.000 --> 16:34.000
Where the center there was chasm and every, you know,

16:34.000 --> 16:37.000
every provider went through chasm and then

16:37.000 --> 16:38.000
through the other package.

16:38.000 --> 16:40.000
Something like a bicycle wheel, right?

16:40.000 --> 16:41.000
Yes, folks.

16:41.000 --> 16:44.000
But what we found that our native converters

16:44.000 --> 16:47.000
couldn't actually match those speed of conversions,

16:47.000 --> 16:49.000
which was present in direct converter.

16:49.000 --> 16:53.000
So, for example, let's take the example of, let's say

16:53.000 --> 16:54.000
bracket to cascade, right?

16:54.000 --> 16:58.000
So, if there is a package which directly converts

16:58.000 --> 17:01.000
bracket to cascade and back and back,

17:01.000 --> 17:04.000
then we couldn't actually use that speed or, you know,

17:04.000 --> 17:06.000
their functionality.

17:06.000 --> 17:08.000
So, what we tried to do is that combine, you know,

17:08.000 --> 17:12.000
the best of both worlds and develop a graph-based model.

17:12.000 --> 17:15.000
And this is not complete because the edges also have weights.

17:15.000 --> 17:18.000
So, if the, you know, if the, if we can really not exactly

17:18.000 --> 17:21.000
what we do, is that we try to find out decomposers

17:21.000 --> 17:24.000
in the current package, decompose the program,

17:24.000 --> 17:26.000
and then try to convert, you know,

17:26.000 --> 17:29.000
one-to-one map from the source to target.

17:29.000 --> 17:31.000
And that occurs loss.

17:31.000 --> 17:33.000
So, that means the edges are actually more weighted

17:33.000 --> 17:34.000
if we do not have direct converter.

17:34.000 --> 17:36.000
So, something like that.

17:36.000 --> 17:37.000
Thank you.

17:37.000 --> 17:40.000
Any other questions?

17:40.000 --> 17:43.000
Any other questions?

17:43.000 --> 17:44.000
Any other questions?

17:44.000 --> 17:45.000
Any other questions?

17:45.000 --> 17:46.000
Any other questions?

17:46.000 --> 17:48.000
Any other questions?

17:48.000 --> 17:50.000
Any one more.

17:50.000 --> 17:52.000
Any one more question?

17:52.000 --> 17:53.000
Any one more thing?

17:53.000 --> 17:54.000
Any other questions?

17:54.000 --> 18:02.000
Any other questions?

18:02.000 --> 18:04.000
Any other questions?

18:04.000 --> 18:07.000
Any other questions?

18:07.000 --> 18:08.000
.

18:08.000 --> 18:09.000
.

18:09.000 --> 18:10.000
.

18:10.000 --> 18:11.000
.

18:11.000 --> 18:12.000
.

18:12.000 --> 18:13.000
.

18:13.000 --> 18:14.000
.

18:14.000 --> 18:15.000
.

18:15.000 --> 18:16.000
.

18:16.000 --> 18:17.000
.

18:17.000 --> 18:20.000
Yeah, you can use that because.

18:20.000 --> 18:21.000
.

18:21.000 --> 18:22.000
Yeah.

18:22.000 --> 18:23.000
.

18:23.000 --> 18:25.000
So as Andrew has said, can we directly use the

18:25.000 --> 18:26.000
.

18:26.000 --> 18:27.000
.

18:27.000 --> 18:28.000
.

18:28.000 --> 18:29.000
.

18:29.000 --> 18:30.000
.

18:30.000 --> 18:31.000
.

18:31.000 --> 18:33.000
.

18:33.000 --> 18:34.000
.

18:34.000 --> 18:35.000
.

18:35.000 --> 18:36.000
.

18:36.000 --> 18:37.000
.

18:37.000 --> 18:38.000
.

18:38.000 --> 18:39.000
.

18:39.000 --> 18:40.000
..

18:40.000 --> 18:41.000
.

18:41.000 --> 18:42.000
.

18:42.000 --> 18:43.000
Yeah.

18:43.000 --> 18:44.000
.

18:44.000 --> 18:46.000
.

18:46.000 --> 18:47.000
.

18:47.000 --> 18:48.000
.

18:48.000 --> 18:50.000
.

18:50.000 --> 18:51.000
.

18:51.000 --> 18:52.000
.

18:52.000 --> 18:54.000
.

18:54.000 --> 18:55.000
.

18:55.000 --> 18:56.000
.

18:56.000 --> 18:58.000
.

18:58.000 --> 19:02.000
.

