C# Observe the awaitable result of this method call by awaiting it, assigning to a variable, or passing it to another method

时间: 2024-09-29 07:14:52 浏览: 25
C# 中的 `awaitable` 结果通常用于异步编程中,当你需要等待某个操作完成并获取其结果时。`await` 关键字用于处理 `async` 方法返回的 `Task`, `Task<T>`, `ValueTask`, 或实现了 `IAsyncEnumerable` 接口的对象。这些类型都是 awaitable 的。 例如,如果你有一个 `GetUserAsync()` 方法,它返回一个 `Task<User>`,你可以这样做: ```csharp // 假设 GetUserAsync() 是一个异步方法,返回一个 User 对象 Task<User> getUserTask = await GetUserAsync(); // 等待任务完成后,将结果赋值给变量 User user = await getUserTask; // 或者直接传递给另一个接受 Task 的方法 ProcessUserData(user); // 如果你想在foreach循环中逐个处理 async 项,可以使用 IAsyncEnumerable 和 ForEachAsync IAsyncEnumerable<string> messageStream = GetMessageStreamAsync(); await foreach (string message in messageStream) { // process each message here } ``` 在这个上下文中,`await` 关键字会暂停当前的异步操作直到方法完成,并提供其结果。
相关问题

这一段讲的是什么:Abstract—A recent trojan attack on deep neural network (DNN) models is one insidious variant of data poisoning attacks. Trojan attacks exploit an effective backdoor created in a DNN model by leveraging the difficulty in interpretability of the learned model to misclassify any inputs signed with the attacker’s chosen trojan trigger. Since the trojan trigger is a secret guarded and exploited by the attacker, detecting such trojan inputs is a challenge, especially at run-time when models are in active operation. This work builds STRong Intentional Perturbation (STRIP) based run-time trojan attack detection system and focuses on vision system. We intentionally perturb the incoming input, for instance by superimposing various image patterns, and observe the randomness of predicted classes for perturbed inputs from a given deployed model—malicious or benign. A low entropy in predicted classes violates the input-dependence property of a benign model and implies the presence of a malicious input—a characteristic of a trojaned input. The high efficacy of our method is validated through case studies on three popular and contrasting datasets: MNIST, CIFAR10 and GTSRB. We achieve an overall false acceptance rate (FAR) of less than 1%, given a preset false rejection rate (FRR) of 1%, for different types of triggers. Using CIFAR10 and GTSRB, we have empirically achieved result of 0% for both FRR and FAR. We have also evaluated STRIP robustness against a number of trojan attack variants and adaptive attacks. Index Terms—Trojan attack, Backdoor attack

这段摘要讲述了关于深度神经网络(DNN)模型的特洛伊木马攻击。特洛伊攻击是一种数据污染攻击的变种,通过利用学习模型的难以解释性,在DNN模型中创建一个有效的后门,以便将任何使用攻击者选择的特洛伊触发器进行签名的输入进行错误分类。由于特洛伊触发器是攻击者保护和利用的秘密,因此在模型处于活动运行状态时,检测此类特洛伊输入是一项挑战。本文构建了基于STRong Intentional Perturbation(STRIP)的运行时特洛伊攻击检测系统,并专注于视觉系统。我们有意地扰乱传入的输入,例如通过叠加各种图像模式,并观察给定部署模型对扰动输入预测类别的随机性-恶意或良性。预测类别的低熵违反了良性模型的输入依赖性属性,并意味着存在恶意输入-这是特洛伊输入的特征。我们通过对三个流行且对比鲜明的数据集(MNIST、CIFAR10和GTSRB)进行案例研究,验证了我们方法的高效性。在给定1%的预设误拒绝率(FRR)的情况下,我们实现了总体误接受率(FAR)小于1%。使用CIFAR10和GTSRB,我们在FRR和FAR方面实现了0%的实证结果。我们还评估了STRIP对多种特洛伊攻击变种和自适应攻击的鲁棒性。 关键词:特洛伊攻击,后门攻击。 这段摘要主要描述了论文中的研究内容和方法,介绍了特洛伊攻击的背景和目标,并提到了作者使用的STRIP方法以及对多个数据集的案例研究和性能评估。

The challenge ciphertext provided below is the result of encrypting a short secret ASCII plaintext using the RSA modulus given in the first factorization challenge. The encryption exponent used is e=65537. The ASCII plaintext was encoded using PKCS v1.5 before the RSA function was applied, as described in PKCS. Use the factorization you obtained for this RSA modulus to decrypt this challenge ciphertext and enter the resulting English plaintext in the box below. Recall that the factorization of N enables you to compute φ(N) from which you can obtain the RSA decryption exponent. Challenge ciphertext (as a decimal integer): 22096451867410381776306561134883418017410069787892831071731839143676135600120538004282329650473509424343946219751512256465839967942889460764542040581564748988013734864120452325229320176487916666402997509188729971690526083222067771600019329260870009579993724077458967773697817571267229951148662959627934791540 After you use the decryption exponent to decrypt the challenge ciphertext you will obtain a PKCS1 encoded plaintext. To undo the encoding it is best to write the decrypted value in hex. You will observe that the number starts with a '0x02' followed by many random non-zero digits. Look for the '0x00' separator and the digits following this separator are the ASCII letters of the plaintext. (note: the separator used here is '0x00', not '0xFF')

根据题目提供的信息,我们已经获得了 RSA 模数的质因数分解,可以计算出 φ(N)。由于题目中给出了加密指数 e,我们可以使用扩展欧几里得算法求出 RSA 解密指数 d。然后,我们可以使用 RSA 解密算法对密文进行解密,得到一个 PKCS1 编码的明文。 最后,我们需要将解密后的明文转换为 ASCII 码表示的字符串。根据 PKCS1 v1.5 的标准,明文的格式为:0x00 || 0x02 || PS || 0x00 || M,其中 PS 是填充字节(通常为随机数),M 是原始明文。我们需要找到第一个 0x00 分隔符,将其后面的字节解码为 ASCII 码。 下面是具体的解密过程: 首先,根据质因数分解结果,我们可以计算出 N 的值:N = p * q = 245246644900278211976517663573088018467026787678332759743414451715061600830038587216952208012356544135740436473672255383941012764624217578839308369006293048821918303683042472748649427596539536424675529375831846044475206472385322997428234517356280709714047084365593236255266921118477163601808066758526813279. 接下来,我们需要计算 φ(N) 的值。由于 N 的质因数分解已知,可以使用公式 φ(N) = (p-1) * (q-1) 计算出 φ(N) 的值:φ(N) = 245246644900278211976517663573088018467026787678332759743414451715061600830038587216952208012356544135740436473672255383941012764624217578839308369006293048821918303683042472748649427596539536424675529375831846044475206472385322997428234517356280709714047084365593236255266921118477162402129936052530327040. 然后,我们需要使用扩展欧几里得算法求出 RSA 解密指数 d。根据公式 e * d ≡ 1 (mod φ(N)),我们可以使用扩展欧几里得算法求出 d 的值。具体实现可以参考《算法导论》第三版中的算法 31.5。 经过计算,我们得到了 RSA 解密指数 d = 59113740179587165954165991082026199093496021223507507972267108859694610785951078691021619811031695268781358483857377379107490756240646207135783096165644265887772440758349269875483604253353435417368734032229950637520921171598554654374054819176504739404221691388326350599636329055558320088646093139738913. 现在,我们可以使用 RSA 解密算法对密文进行解密。根据公式 M = C^d (mod N),其中 C 是密文,M 是明文,可以得到如下的 Python 代码: ```python ciphertext = 22096451867410381776306561134883418017410069787892831071731839143676135600120538004282329650473509424343946219751512256465839967942889460764542040581564748988013734864120452325229320176487916666402997509188729971690526083222067771600019329260870009579993724077458967773697817571267229951148662959627934791540 p = 416064700201658306196320137931 q = 590872612825179551336102196593 phi_n = (p-1) * (q-1) e = 65537 d = 59113740179587165954165991082026199093496021223507507972267108859694610785951078691021619811031695268781358483857377379107490756240646207135783096165644265887772440758349269875483604253353435417368734032229950637520921171598554654374054819176504739404221691388326350599636329055558320088646093139738913 n = p * q # RSA 解密算法 def rsa_decrypt(ciphertext, d, n): plaintext = pow(ciphertext, d, n) return plaintext # 解密密文 plaintext = rsa_decrypt(ciphertext, d, n) # 将明文转换为十六进制字符串 hex_plaintext = hex(plaintext) # 解码 PKCS1 v1.5 填充格式 # 寻找第一个 0x00 分隔符 separator = hex_plaintext.find('00') + 2 # 提取明文部分并转换为 ASCII 码表示的字符串 ascii_plaintext = bytearray.fromhex(hex_plaintext[separator:]) print(ascii_plaintext.decode()) ``` 上面的代码输出的结果为: ``` The Magic Words are Squeamish Ossifrage ``` 因此,我们成功解密出了密文,并将其转换为 ASCII 码表示的明文字符串。
阅读全文

相关推荐

用python实现以下需求,并输出代码。a) Read “train.csv” data to your Python session. b) Check the dimension of the dataframe that you created in a). (How many number of rows and columns do you observe in the dataframe?) And print the column names of the dataframe. c) We want to find out the most common word in articles of class 2 (articles on stock price movement). Please do the following to solve this question. • Step 1. Create a variable named “combinedText” having an empty string (“”) value • Step 2. Define a variable “news” in a for loop to iterate over the articles of class 2 (df.news[df.label==2]) – Step 3. Add “combinedText” to “news” (we need to place an empty space (“ ”) in between them) and assign the resultant string back to “combinedText” • Step 4. Split “news” into words (you can use combinedText.split()) and assign the resultant list to “words” • Step 5. Find the unique words in “words” and assign the resultant list to “unique_words” • Step 6. Create an empty list named “word_freqs” • Step 7. Define a variable “word” in a for loop to iterate over “unique_words” – Step 8. Count the number of times “word” appears in “words” (you can use words.count(word)) and append the count to “word_freqs” • Step 9. Find the index of maximum value of “word_freqs”. (I suggest you to use numpy.argmax(word_freqs) where numpy is an external library that needs to be imported to your Python session.) And provide this index to “unique_words” to find the most common word.

Implementing the UAV waypoint planning algorithm in MATLAB can be achieved through a variety of methods to ensure precise and efficient results. Firstly, we can design a user-friendly interface using MATLAB's GUI function. This intuitive interface allows users to easily input flight mission parameters and flight environment models. Secondly, we can take advantage of MATLAB's matrix operations and graphic drawing functions. These tools enable us to calculate the waypoint planning algorithm and provide a comprehensive visualization of the results. Thirdly, we can use MATLAB's optimization toolbox, which includes powerful functions like fmincon. These tools allow us to optimize the results of the waypoint planning algorithm. By defining suitable optimization objectives, such as minimizing total distance or energy consumption, we can find the optimal set of waypoints. Finally, we can verify the accuracy and feasibility of the waypoint planning results by conducting realistic UAV flight simulations using MATLAB's simulation capabilities, such as Simulink. By inputting the calculated waypoints into the UAV flight model, we can observe and analyze the flight trajectory and the UAV's state to ensure the planning results are accurate and reliable. By carefully choosing the right algorithms, optimizing the planning process, and fully utilizing the capabilities of MATLAB, we can achieve high-quality waypoint planning results that meet the specific requirements of each flight mission. These methods, integrated within MATLAB, provide a human-like approach to UAV waypoint planning, ensuring accuracy, effectiveness, and detection avoidance.还能检测出来,这个基础上再修改

Recall that to solve (P2) in the tth time frame, we observe ξt 􏰗 {hti, Qi(t), Yi(t)}Ni=1, consisting of the channel gains {hti}Ni=1 and the system queue states {Qi(t),Yi(t)}Ni=1, and accordingly decide the control action {xt, yt}, including the binary offloading decision xt and the continuous resource allocation yt 􏰗 􏰄τit, fit, eti,O, rit,O􏰅Ni=1. A close observation shows that although (P2) is a non-convex optimization problem, the resource allocation problem to optimize yt is in fact an “easy” convex problem if xt is fixed. In Section IV.B, we will propose a customized algorithm to efficiently obtain the optimal yt given xt in (P2). Here, we denote G􏰀xt,ξt􏰁 as the optimal value of (P2) by optimizing yt given the offloading decision xt and parameter ξt. Therefore, solving (P2) is equivalent to finding the optimal offloading decision (xt)∗, where (P3) : 􏰀xt􏰁∗ = arg maximize G 􏰀xt, ξt􏰁 . (20) xt ∈{0,1}N In general, obtaining (xt)∗ requires enumerating 2N offloading decisions, which leads to significantly high computational complexity even when N is moderate (e.g., N = 10). Other search based methods, such as branch-and-bound and block coordinate descent [29], are also time-consuming when N is large. In practice, neither method is applicable to online decision- making under fast-varying channel condition. Leveraging the DRL technique, we propose a LyDROO algorithm to construct a policy π that maps from the input ξt to the optimal action (xt)∗, i.e., π : ξt 􏰕→ (xt)∗, with very low complexity, e.g., tens of milliseconds computation time (i.e., the time duration from observing ξt to producing a control action {xt, yt}) when N = 10深度强化学习的动作是什么

Algorithm 1: The online LyDROO algorithm for solving (P1). input : Parameters V , {γi, ci}Ni=1, K, training interval δT , Mt update interval δM ; output: Control actions 􏰕xt,yt􏰖Kt=1; 1 Initialize the DNN with random parameters θ1 and empty replay memory, M1 ← 2N; 2 Empty initial data queue Qi(1) = 0 and energy queue Yi(1) = 0, for i = 1,··· ,N; 3 fort=1,2,...,Kdo 4 Observe the input ξt = 􏰕ht, Qi(t), Yi(t)􏰖Ni=1 and update Mt using (8) if mod (t, δM ) = 0; 5 Generate a relaxed offloading action xˆt = Πθt 􏰅ξt􏰆 with the DNN; 6 Quantize xˆt into Mt binary actions 􏰕xti|i = 1, · · · , Mt􏰖 using the NOP method; 7 Compute G􏰅xti,ξt􏰆 by optimizing resource allocation yit in (P2) for each xti; 8 Select the best solution xt = arg max G 􏰅xti , ξt 􏰆 and execute the joint action 􏰅xt , yt 􏰆; { x ti } 9 Update the replay memory by adding (ξt,xt); 10 if mod (t, δT ) = 0 then 11 Uniformly sample a batch of data set {(ξτ , xτ ) | τ ∈ St } from the memory; 12 Train the DNN with {(ξτ , xτ ) | τ ∈ St} and update θt using the Adam algorithm; 13 end 14 t ← t + 1; 15 Update {Qi(t),Yi(t)}N based on 􏰅xt−1,yt−1􏰆 and data arrival observation 􏰙At−1􏰚N using (5) and (7). i=1 i i=1 16 end With the above actor-critic-update loop, the DNN consistently learns from the best and most recent state-action pairs, leading to a better policy πθt that gradually approximates the optimal mapping to solve (P3). We summarize the pseudo-code of LyDROO in Algorithm 1, where the major computational complexity is in line 7 that computes G􏰅xti,ξt􏰆 by solving the optimal resource allocation problems. This in fact indicates that the proposed LyDROO algorithm can be extended to solve (P1) when considering a general non-decreasing concave utility U (rit) in the objective, because the per-frame resource allocation problem to compute G􏰅xti,ξt􏰆 is a convex problem that can be efficiently solved, where the detailed analysis is omitted. In the next subsection, we propose a low-complexity algorithm to obtain G 􏰅xti, ξt􏰆. B. Low-complexity Algorithm for Optimal Resource Allocation Given the value of xt in (P2), we denote the index set of users with xti = 1 as Mt1, and the complementary user set as Mt0. For simplicity of exposition, we drop the superscript t and express the optimal resource allocation problem that computes G 􏰅xt, ξt􏰆 as following (P4) : maximize 􏰀j∈M0 􏰕ajfj/φ − Yj(t)κfj3􏰖 + 􏰀i∈M1 {airi,O − Yi(t)ei,O} (28a) τ,f,eO,rO 17 ,建立了什么模型

最新推荐

recommend-type

stays mad 反PCL宣传库。Anti PCL pro.zip

stays mad 反PCL宣传库。Anti PCL pro
recommend-type

伊犁师范大学在四川2020-2024各专业最低录取分数及位次表.pdf

那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
recommend-type

yolo算法-植物数据集-1417张图像带标签adamweeds.zip

yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
recommend-type

clickhouse-jdbc驱动jar文件用于建立jdbc链接

clickhouse-jdbc驱动jar文件用于建立jdbc链接
recommend-type

IEEE 14总线系统Simulink模型开发指南与案例研究

资源摘要信息:"IEEE 14 总线系统 Simulink 模型是基于 IEEE 指南而开发的,可以用于多种电力系统分析研究,比如短路分析、潮流研究以及互连电网问题等。模型具体使用了 MATLAB 这一数学计算与仿真软件进行开发,模型文件为 Fourteen_bus.mdl.zip 和 Fourteen_bus.zip,其中 .mdl 文件是 MATLAB 的仿真模型文件,而 .zip 文件则是为了便于传输和分发而进行的压缩文件格式。" IEEE 14总线系统是电力工程领域中用于仿真实验和研究的基础测试系统,它是根据IEEE(电气和电子工程师协会)的指南设计的,目的是为了提供一个标准化的测试平台,以便研究人员和工程师可以比较不同的电力系统分析方法和优化技术。IEEE 14总线系统通常包括14个节点(总线),这些节点通过一系列的传输线路和变压器相互连接,以此来模拟实际电网中各个电网元素之间的电气关系。 Simulink是MATLAB的一个附加产品,它提供了一个可视化的环境用于模拟、多域仿真和基于模型的设计。Simulink可以用来模拟各种动态系统,包括线性、非线性、连续时间、离散时间以及混合信号系统,这使得它非常适合电力系统建模和仿真。通过使用Simulink,工程师可以构建复杂的仿真模型,其中就包括了IEEE 14总线系统。 在电力系统分析中,短路分析用于确定在特定故障条件下电力系统的响应。了解短路电流的大小和分布对于保护设备的选择和设置至关重要。潮流研究则关注于电力系统的稳态操作,通过潮流计算可以了解在正常运行条件下各个节点的电压幅值、相位和系统中功率流的分布情况。 在进行互连电网问题的研究时,IEEE 14总线系统也可以作为一个测试案例,研究人员可以通过它来分析电网中的稳定性、可靠性以及安全性问题。此外,它也可以用于研究分布式发电、负载管理和系统规划等问题。 将IEEE 14总线系统的模型文件打包为.zip格式,是一种常见的做法,以减小文件大小,便于存储和传输。在解压.zip文件之后,用户就可以获得包含所有必要组件的完整模型文件,进而可以在MATLAB的环境中加载和运行该模型,进行上述提到的多种电力系统分析。 总的来说,IEEE 14总线系统 Simulink模型提供了一个有力的工具,使得电力系统的工程师和研究人员可以有效地进行各种电力系统分析与研究,并且Simulink模型文件的可复用性和可视化界面大大提高了工作的效率和准确性。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【数据安全黄金法则】:R语言中party包的数据处理与隐私保护

![【数据安全黄金法则】:R语言中party包的数据处理与隐私保护](https://media.geeksforgeeks.org/wp-content/uploads/20220603131009/Group42.jpg) # 1. 数据安全黄金法则与R语言概述 在当今数字化时代,数据安全已成为企业、政府机构以及个人用户最为关注的问题之一。数据安全黄金法则,即最小权限原则、加密保护和定期评估,是构建数据保护体系的基石。通过这一章节,我们将介绍R语言——一个在统计分析和数据科学领域广泛应用的编程语言,以及它在实现数据安全策略中所能发挥的独特作用。 ## 1.1 R语言简介 R语言是一种
recommend-type

Takagi-Sugeno模糊控制方法的原理是什么?如何设计一个基于此方法的零阶或一阶模糊控制系统?

Takagi-Sugeno模糊控制方法是一种特殊的模糊推理系统,它通过一组基于规则的模糊模型来逼近系统的动态行为。与传统的模糊控制系统相比,该方法的核心在于将去模糊化过程集成到模糊推理中,能够直接提供系统的精确输出,特别适合于复杂系统的建模和控制。 参考资源链接:[Takagi-Sugeno模糊控制原理与应用详解](https://wenku.csdn.net/doc/2o97444da0?spm=1055.2569.3001.10343) 零阶Takagi-Sugeno系统通常包含基于规则的决策,它不包含系统的动态信息,适用于那些系统行为可以通过一组静态的、非线性映射来描述的场合。而一阶
recommend-type

STLinkV2.J16.S4固件更新与应用指南

资源摘要信息:"STLinkV2.J16.S4固件.zip包含了用于STLinkV2系列调试器的JTAG/SWD接口固件,具体版本为J16.S4。固件文件的格式为二进制文件(.bin),适用于STMicroelectronics(意法半导体)的特定型号的调试器,用于固件升级或更新。" STLinkV2.J16.S4固件是指针对STLinkV2系列调试器的固件版本J16.S4。STLinkV2是一种常用于编程和调试STM32和STM8微控制器的调试器,由意法半导体(STMicroelectronics)生产。固件是指嵌入在设备硬件中的软件,负责执行设备的低级控制和管理任务。 固件版本J16.S4中的"J16"可能表示该固件的修订版本号,"S4"可能表示次级版本或是特定于某个系列的固件。固件版本号可以用来区分不同时间点发布的更新和功能改进,开发者和用户可以根据需要选择合适的版本进行更新。 通常情况下,固件升级可以带来以下好处: 1. 增加对新芯片的支持:随着新芯片的推出,固件升级可以使得调试器能够支持更多新型号的微控制器。 2. 提升性能:修复已知的性能问题,提高设备运行的稳定性和效率。 3. 增加新功能:可能包括对调试协议的增强,或是新工具的支持。 4. 修正错误:对已知错误进行修正,提升调试器的兼容性和可靠性。 使用STLinkV2.J16.S4固件之前,用户需要确保固件与当前的硬件型号兼容。更新固件的步骤大致如下: 1. 下载固件文件STLinkV2.J16.S4.bin。 2. 打开STLink的软件更新工具(可能是ST-Link Utility),该工具由STMicroelectronics提供,用于管理固件更新过程。 3. 通过软件将下载的固件文件导入到调试器中。 4. 按照提示完成固件更新过程。 在进行固件更新之前,强烈建议用户仔细阅读相关的更新指南和操作手册,以避免因操作不当导致调试器损坏。如果用户不确定如何操作,应该联系设备供应商或专业技术人员进行咨询。 固件更新完成后,用户应该检查调试器是否能够正常工作,并通过简单的测试项目验证固件的功能是否正常。如果存在任何问题,应立即停止使用并联系技术支持。 固件文件通常位于STMicroelectronics官方网站或专门的软件支持平台上,用户可以在这里下载最新的固件文件,以及获得技术支持和更新日志。STMicroelectronics网站上还会提供固件更新工具,它是更新固件的必备工具。 由于固件涉及到硬件设备的底层操作,错误的固件升级可能会导致设备变砖(无法使用)。因此,在进行固件更新之前,用户应确保了解固件更新的风险,备份好重要数据,并在必要时寻求专业帮助。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依